cpcahil@virtech.uucp (Conor P. Cahill) (11/05/90)
Welcome to the comp.unix.sysv386 newsgroup. This newsgroup (actually the former comp.unix.i386 newsgroup which was renamed to this group) was founded to perpetuate discussions of the various unix systems running on the Intel 80386 architecture. This article contains the answers to some Frequently Asked Questions often seen in comp.unix.sysv386. Before posting a question to this newsgroup, PLEASE read through this posting, the Frequently Asked Questions posting in comp.unix.questions, and finally the various postings in news.announce.newusers. Last Modified: $Id: freq.ques,v 1.5 90/10/01 23:10:04 cpcahil Exp $ This article includes answers to: 1. What is this group for? 2. Which Unix should I buy? 3. Is there a BSD port for the 386 available anywhere? 4. What hardware works with brand X Unix and/or X11 5. How do I rewind or retension a cartridge tape? 6. How do I get a second serial port working? 7. How do I get fast serial line throughput with stock asynch ports? 8. Is there a port of X11 R3/4 available for whatever? 9. What are good intelligent multi-port serial card solutions? 10. Where do I get troff from? 11. Why doesn't vi work on large files? 12. How do I increase my ulimit? 13. How do you set up a port for both dial-in and dial-out access? 14. How do I setup a global environment variable that even gets set in the /etc/rc*/* scripts. 15. How do I get more than 8 virtual terminals to work on the console? 16. Why do I get the error "ps: unlink() error" every once in a while? 17. How do I set up more than 4 partitions on the disk drive 18. Why do I run out of inodes on some filesystems when I know I don't have that many files? 19. What is the minimum hardware for running Unix on a 386? 20. Will a caching controller be a good investment? 21. How many users can I run on my 386? 22. What is the bandwidth of an AT Bus? 23. Can Unix make use of memory in 16 bit AT bus slots? 24. How do I fix the error "Out of DOS Inodes" ? 25. Where can I get the K-Shell (aka ksh)? Before I start on the answers, I will state that there is NO GUARANTEE as to the correctness and/or appropriateness of these answers. If you intend to try one, BE SURE TO HAVE A BACKUP of your system first. My current system is Interactive's ISC UNIX 2.2. I have tested most of the responses on this system. If you find that another system requires a different response, please send me mail explaining what is required on your system (you might also want to tell me the OS and version). 1. What is this group for? This group was formed to discuss the various implementations of UNIX on the Intel 386 architecture. This includes SCO Unix, 386/ix, ISC UNIX, ESIX, Dell, Bell Tech (now Intel) Unix, Microport Unix, and, of course, AT&T and any others that I have forgotten. Since no vendor intends to make a 486 specific version of their OS, the use of the various UNIX products on the i486 will also be discussed. 2. Which Unix should I buy? This is a hard question. Few people have access to all of the available Unix implementations and without that access it is hard to be able to recommend any one over the other. You should consider the following factors in making your decision: 1. price 2. compatibility with existing software 3. compatibility with other operating systems 4. ease of use/control (administration menus) 5. performance You must decide which of those factors is more important to you. Most, if not all, application packages developed for one UNIX will run on one of the others. If you find one that does not, blast the developers because there is no reason for them to use any vendor specific code in their applications (and, IMHO it was a real stupid decision on their part). 3. Is there a binary BSD port for the 386 available anywhere? No. However, System V Release 4.0 will have many BSDisms including symbolic links, job control, BSD file system, sockets (implemented on top of streams). It will also contain the SunOS memory mapped files, the Korn shell, and many other nifty things. These are now starting to ship (usually beta releases) to end-users by Intel, Microport, and UnixHOUSE. I haven't seen these releases, nor heard any reports from those that have recieved them. One thing that should be noted here is that the System V R4 release has MAJOR changes over the R3 releases and probably won't be stable for a while. If you want a stable system, I would suggest that you continue to use a R3 until the second release of R4 systems (6-9 mos or so). BSD 4.4 will support the 386 architecture as a base system. This means that vendors will have a base BSD system that could be used to make a BSD binary release for this architecture. There are several reasons why this probably won't occur: 1. SVR4 will be enough BSD to satisfy most people 2. BSD kernel would have to be modified to support the 386 ABI or else it would be closed out of a major portion of the 386 market. 3. This is a brand new port and it can be expect that there will be significant problems with the stability of any new product. This puts it around 2 or 3 years behind the other 386 Unixs in this respect. Of course, this does not mean that you will never see BSD4.4 on a PC (since you will probably see it if you are somehow connected with a university that gets BSD source). It just means that there probably wont be a commercial binary release available to the general public. The other possibility is MACH. MACH is 4.3BSD compatible and has the 386 as one of it's target environments, but since it includes much of the BSD kernel, it still requires a standard BSD licensing (which is actually a requirement for an AT&T version 7 license). At least one company (Mt Xinu) has announced that they will support (and distribute) the MACH source code (assuming you have the appropriate license) but there have been no announcements about commercial binary distributions. 4. What hardware works with brand X Unix and/or X11 The correct answer to this is a recommendation to call the distributor of the X11 that you intend to buy. The list of devices changes all the time and attempting to maintain a list here would be ludicrous. 5. How do I rewind or retension a cartridge tape? This depends upon the OS and tape device. The standard at&t distribution includes the tapecntl program (it is even documented in the 386/ix manuals), but most of the 386 unix products do not provide it. SCO UNIX has the "tape" program. The next place to look is the tape driver manufacturer. Archive does provide a "ctape" program which can perform this function. If your OS manufacturer doesn't provided it and your tape manufacturer doesn't provide it, you need to home grow it yourself. 6. How do I get a second serial port working? SCO Unix and Xenix come pre-configured to work with two serial port devices. AT&T Unix auto-configures the number of serial ports. The rest of the Unix offerings do not and must be re-configured to turn on the second serial port. The asy file in /etc/conf/sdevice.d contains the kernel configuration information for the standard asynchronous ports. The file should look something like: asy Y 1 7 1 .... asy N 1 7 1 .... This shows that the first asy is enabled, while the second is disabled (the N in column 2). Change this file to: asy Y 2 7 1 .... asy Y 2 7 1 .... and rebuild the kernel using kconfig or /etc/conf/bin/idbuild as appropriate for your system. Be sure to check the interrupt number and i/o port addresses to ensure they are correct and don't conflict with other devices. See sdevice(4) for more info. Note that the change from a 1 to a 2 in column 3 enables the modem control ports which can be used for uugetty. 7. How do I get fast serial line throughput with stock asynch ports? The stock serial ports usually will drop characters when run at high speeds with incomming data. The best way to fix this is to add the "FAS" driver to your system. (FAS stands for Final Asynch Solution). This driver (version 2.07) was posted to comp.unix.sysv386 in September of 1990. The Readme for the FAS driver suggests that you also replace the 16450 uart chips on your asynch card with 16550s (I think the cost runs around $20). The 16550s provide a 16 byte FIFO which allows operation at high speeds without loosing characters. SCO Unix, ESIX, and ISC UNIX are all reputed to support the 16550 in FIFO mode, so you probably can make this change without having to change the drivers. See your OS documentation for more info. 8. Is there a port of X11 R3/4 available for whatever? X11R3 is available from all of the 386 UNIX distributors. There are no releases fully based upon X11R4 yet. 9. What are good intelligent multi-port serial card solutions? This is yet another religous issue. The following cards are available for AT bus systems. Note that the cards are listed in alphabetical order and that this should not be taken as a recommendation of any one card over the others. Bell Tech (now Intell) BT has three serial port solutions: ICC, ACE, and HUB. The ICC card looses data at incomming speeds > 19200. It locks up about once or twice a week, but is easily restarted since BT provides a program that can reset the card without rebooting the system. For normal terminal operation the card is satisfactory. Price was around $1500 when I bought it a couple of years ago. The ACE card is reported to be "bad beyond belief" with hanging problems caused by timing problems on the card. The HUB is a non-intelligent card that is "rock solid" and will provide 6 ports. However, since it is non-intelligent it will place a load on the system. Computone Computone provides a series of serial port solutions. I have no experience/pricing info on these cards. Digiboard Digiboard provides a series of serial port solutions. I have no experience/pricing info on these cards. Equinox Equinox has two serial port solutions: the Megaport 12, and Megaport 24. Each board is reputed to be capable of running all ports at full 38400 simultaneously. The 24 port cards runs around $1200. Installation is a snap, no jumpers to set, no interrupts required for the board. The board can be installed to use memory between 640K and 1 MB for communications between the board and the system. The board runs fine. Input/output port sharing is supported. Maxpeed Maxpeed has an 8 port card that will run any of the ports at speeds up to 38.4K. The card retails for 795, but is usually available at $500 to $550. I lost data when receiving data as speeds > 9600 baud. VPIX did not run correctly on my wyse 60's. I contacted customer support and got the response "it works fine on other machines". Other than the vpix problem I had this board provides good support for 8 terminals/printers at a low price. Specialix Specialix provides a series of serial port solutions. I have no experience/pricing info on these cards. Consensys Consensys has two serial port solutions in their POWERPORTS line. Each POWERPORTS intelligent main card supports up to 8 ports and can optionally accept an 8-port daughtercard. Each main card takes a 16-bit slot; the daughters don't require backplane access, but they do consume a slot cover. Each port is supposed to be able to handle 38.4, but there can be problems when driving Trailblazers from a daughter port. They also provide a multiple-session-per-terminal feature. You can drive up to 8 independent sessions from each physical terminal, toggling between sessions via control keys. The only downside is that you must go through a two-minute reconfiguration of the ports software if you switch terminal types on a port, since the card must load the appropriate termcap/terminfo. They also provide software for transparent printing to a printer attached to an aux port on one of the terminals. List prices range from $850 to $2,000 depending upon port and board RAM configurations. 10. Where do I get troff from? You can but the Documenters Workbench package from your Unix distributor, or a substitute package from a third party venor. The problem with the standard packages is that they do not support most of the currently available printers in troff mode. The third party packages seem to fill this niche quite well. These include: Eroff $795 SoftQuad Publishing ??? Jetroff $69 (personal)/$119 (commercial) Psroff $0 I have only used Eroff and it works quite well. I have heard good words about SoftQuad and Jetroff. Psroff was posted to comp.sources.unix late last year. 11. Why doesn't vi work on large files? There are two possible problems. The first problem may be that you are running into a ULIMIT problem. See the discussion under question 12 to figure out how to change/correct it. If this is not the probem, you may be running into a bug/feature of some VIs. The problem is that there are compiled in limits as to the number of lines in the data file. This problem is known to exist in the following Unix packages: AT&T System V Rel 3.2 Bell Technologies System V Rel 3.2 (was ok in 3.1) 12. How do I increase my ulimit? For those of you who don't know, the ulimit is the limit in the number of blocks that can be written to a file. This is intended to be a mechanism to stop a run-away process from eating up all the disk space available on your system. Both SCO Unix and SCO Xenix start out with a ulimit of 2097152 which means that you probably won't have a problem with the ulimit on these operating systems. However, if you have one of the AT&T derived operating systems, this limit will usually default to 2048 or 4096 and it has a hard limit of 12288. This can be unacceptable for systems that will have moderate to large database files and will therefore need to be increased. 1. If your desired limit is > 12288(6MB): Edit /etc/conf/cf.d/mtune to change the following line: ULIMIT 3072 2048 12288 to: ULIMIT 3072 2048 xxxxx where xxxxx is the limit you desire. 2. Edit /etc/conf/cf.d/stune to add/change the following line: ULIMIT xxxxx where xxxxx is the limit you desire. Note that this step can be performed in the kernel configuration software (i.e.: kconfig for 386/ix). 3. Edit /etc/default/login to delete the ULIMIT line. 4. Rebuild the kernel and reboot. 13. How do you set up a port for both dial-in and dial-out access? There are two ways to do this. Most intelligent boards provide two devices for every port: one with and one without modem controls. The modem control ports are used for getty, while the corresponding non-modem control lines are used for cu, uucp, kermit, etc. This is the easiest mechanism to configure and use (provided the device driver works properly). The SCO and ESIX systems and the FAS driver provide modem control ports which can be used in the same manner. The second solution is to use the uugetty software. uugetty is a replacement for getty that uses uucp/cu locks to control access to the port. In order to work properly, the port must have modem control support. 386/ix and ESIX have support for the modem control on the serial ports, but does not configure these devices automatically. You must mannually create the ports using the following commands: For 386/ix: mknod /dev/ttym0 c 3 16 mknod /dev/ttym1 c 3 17 For ESIX: mknod /dev/ttyM0 c 3 128 mknod /dev/ttyM1 c 3 129 A better way to do this would be to modify the /etc/conf/node.d/asy file so that it creates the modem control ports. 14. How do I setup a global environment variable that is set for all programs/shells (including the /etc/rc*/* scripts? /etc/init reads the /etc/TIMEZONE file at start up time. The first 5 or so variables in this file are placed into the global envionment for all processes started by init (this includes the rc scripts, cron scripts, etc). In addition many OS scripts will "source" this file. 15. How do I get more than 8 virtual terminals to work on the console? SCO provides 10-12 MultiScreens(TM, I believe). Depends on the keyboard and how much memory is available. This is configured using the "configure" script. Interactive (and probably the other 386 Unix ports) come set up to use up to 8 VTs while the driver will support up to 15. To make the changes to allow the use of more than 8 do the following: Assuming you want new_max number of vt's (new_max must be <= 15) you can do the following.... a. Modify the NKDVTTY line in /etc/conf/cf.d/mtune to look like: NKDVTTY 8 8 new_max b. Add the following entry to /etc/conf/cf.d/stune: NKDVTTY new_max c. reconfigure the kernel d. add new devices to /dev. The device names and numbers should be as follows: Major device number: Value in 6th column of the "kd" entry in /etc/conf/cf.d/mdevice file. (On my system it is a 5). Minor device numbers are generated using the following mechanism: /dev entries Minor Device Number ------------ -------------------------- vt00 - vt07 (vt number) * 32) vt08 - vt14 (vt number - 8) * 32) + 16 where vt number is the two digits in the device name e. Add the appropriate entries to /etc/conf/cf.d/init.base f. If you want to see "VT#" on the login prompt for each VT, you must add entries to /etc/gettydefs for each vt. See the entry for VT02 for an example. g. reboot the system 16. Why do I get the error "ps: unlink() error" every once in a while? This error is caused by the ps program being unable to remove the /etc/ps_data file. This is usually a permissions problem on /etc or /bin/ps. The files and/or directories should be set with the following modes: drwxrwxr-x 20 root sys 3968 Apr 29 08:36 /etc -r-xr-sr-x 1 root sys 21472 May 22 1989 /bin/ps In english: /bin/ps must be mode 2xxx (set-gid) /bin/ps must have the same group as /etc (usually sys) /etc must be group writable 17. How do I set up more than 4 unix partitions on the disk drive Under 386/ix (and Esix) a single "fdisk" partition can contain up to 16 unix partitions (including swap, alternates, and reserved). However, the default disk configuration software will only set up up to 4 partitions for use as file systems. This can be bypassed using the following manual procedure: This is slightly different if you are talking about the boot drive as opposed to the second drive. For the boot drive, use the installation software to set up the root (and /usr, if you are combining them) partition as you need it to be. Then place the rest of your disk into the last partition. For the second drive, use the system administration shell to set up the disk and set up the first partition as you want it to end up. Place the rest of the disk into a single partition. The rest of this applies to either disk. I will show you the steps required to add 3 partitions on the first drive. a. Make a backup of your system!!! b. Make sure you made a backup of your system!!! c. modify the /etc/inittab so that your system boots up into single user mode. To do this you change the initdefault line to be something like: is:s:initdefault: Note the 's' between the first set of colons. d. reboot the system e. Look at the /etc/partitions file and determine the name of the big partition you created. For my system this was: usr2: partition = 3, start = 129808, size = 1187914, tag = USR, perm = VALID Since we want to break that partition up into smaller partitions, we need to delete it from the disk. the remainder of the disk. The following command is used: /etc/mkpart -p usr2 disk0 The "disk0" comes from the first line in the /etc/partitions file which contains the header information for the disk drive. If you are working on the second disk drive you will find a second device stanza header just like the one for disk0: somewhere in the middle of the file. When you run mkpart you will probably get some message saying that your changes won't take effect until you rebbot. This is ok. You don't need to reboot yet. f. Now you must edit the /etc/partitions file to set up the partition stanzas for your new partitions and delete the stanza for the /usr2 partition. If your /usr is not part of your root, you might want to mount /usr so that you can edit the files with vi. I added the following entries: a: partition = 3, start = 129808, size = 243600, tag = USR, perm = VALID b: partition = 4, start = 373408, size = 311978, tag = USR, perm = VALID c: partition = 5, start = 685386, size = 469768, tag = USR, perm = VALID d: partition = 6, start = 1155154, size = 162568, tag = USR, perm = VALID If some partitions already exist (like alternates or reserved) you must skip these and add your entries with partition numbers above the existing partitions. If you do add entries > partition 7, you must mknod the extra disk devices as follows: mknod /dev/dsk/0s8 b 0 8 mknod /dev/dsk/0s9 b 0 9 mknod /dev/dsk/0s10 b 0 10 mknod /dev/rdsk/0s8 c 0 8 mknod /dev/rdsk/0s9 c 0 9 mknod /dev/rdsk/0s10 c 0 10 The key parts of these entries are the label, partition number, start, and size. Be sure that your values do not collide and that the start of each successive partition is equal to the summation of the start of the current partition and it's size. g. Now to make all of the new partitions run the following commands: /etc/mkpart -P a disk0 /etc/mkpart -P b disk0 /etc/mkpart -P c disk0 /etc/mkpart -P d disk0 h. reboot the computer. Use the command "uadmin 2 0" to halt the system from single user mode. i. Make the file systems for each of the partitions: mkfs /dev/rdsk/0s3 243600 mkfs /dev/rdsk/0s4 311978 mkfs /dev/rdsk/0s5 468768 mkfs /dev/rdsk/0s6 162568:63000 Note that since the /d partition is to be my news partition I have overridden the default number of inodes created on the filesystem. j. Label the file systems: labelit /dev/rdsk/0s3 a disk0 labelit /dev/rdsk/0s4 b disk0 labelit /dev/rdsk/0s5 c disk0 labelit /dev/rdsk/0s6 d disk0 k. Modify /etc/fstab. Delete the entry for /usr2 and add entries for the new file systems. My new /etc/fstab file looks like: /dev/dsk/0s3 /a /dev/dsk/0s4 /b /dev/dsk/0s5 /c /dev/dsk/0s6 /d l. Make the mount points: mkdir /a /b /c m. If desired, change the /etc/inittab file initdefault entry back to what it was before. n. run "telinit 2" or "init 2" (or 3 for those of you with a network) All done. 18. Why do I run out of inodes on some filesystems when I know I don't have that many files? It's a known bug. Corrected in AT&T's 3.2.1 etc..., ISC 2.2, and in some binary patches, previously posted here, for Microport 3.0e and ISC 2.0 (and Microport SV/AT). If you have it, write hate mail to your supplier's expensive QA department... It has been known for years. 19. What is the minimum hardware for running Unix on a 386? A 386SX, 4 MB RAM, 40MB Disk, monochrome adaptor and monitor. You can have this for little over $1000 mail order nowadays. Using RLL is advisable, and does not cost you more. With Xenix, you can live with as little as 2MB. You will need additional space for any packages that you wish to install (especially the development system and X window packages). 20. Will a caching controller be a good investment? The question is not easy to answer. Some believe that you'd do better by just adding the same memory to central memory and expand the buffer cache. On many machines that are already at the limit of 16 MB this cannot be done and so the caching controller becomes a good option. WARNING: Caching controllers that are not write-through must be protected by a UPS or you could find your system horribly trashed when power is lost during heavy disk i/o. 21. How many users can I run on my 386? On a suitably configured (read: multiple fast discs, ESDI or SCSI controller, many MBytes of RAM), quite a lot, depending on many factors. At least a dozen. As many as as three dozen doing light sw developement or similar things. 22. What is the bandwidth of an AT Bus? Over 5 MBytes per second. As an IO-memory bus, that's still plenty. Most peripherals don't go over 1 MByte per second. As a CPU-memory bus, no way. 23. Can Unix make use of memory in 16 bit AT bus slots? Yes, but the slowdown is really impressive. Don't do it. When you buy your machine, make sure that you can put in 1MBit chips, and that you can stuff at least 8MBytes on the motherboard or the 32 bit memory board without buying anything extra, and that you can go all the way to 16 MBytes (or what you see as your maximum) without throwing away any chips that are already installed. 24. How do I fix the error "Out of DOS Inodes" ? This error message is telling you that the kernel driver for the DOS file system is out of inodes. This configuration parameter is NDOSINODE, but it is not in the default setup for 386/ix. To fix the problem do the following: 1. Run /etc/kconfig 2. Select "configure a kernel" 3. Select add tunable parameters 4. Specify NDOSINODE 5. Specify 500 It will tell you NDOSINODE is a new parameter and ask you for the minimum, maximum and default. Acceptable numbers are: 100, 1000, 200, respectively. To avoid kernel compilation warnings about NDOSINODE being re-defined you sould edit the /etc/conf/pack.d/dos/space.c file and move the line: #define NDOSINODE 200 /* DOS-FSS inodes array */ to be after the #include of config.h. You should also add a #ifndef NDOSINODE before that line and a #endif after it. So that section of the file will now look like: #define MINSCTRSHFT 9 /* Minimum sector shift */ #define MAXSCTRSHFT 10 /* Maximun sector shift */ #define NDOSFILSYS 5 /* DOS-FSS superblocks array */ #include "config.h" /* for overriding above parameters */ #ifndef NDOSINODE #define NDOSINODE 200 /* DOS-FSS inodes array */ #endif /* NDOSINODE */ unsigned char minsctrshft = MINSCTRSHFT; 25. Where can I get the K-Shell (aka ksh)? There are several sources where one can obtain a working ksh for 386 based systems. These include the following: * get source from the AT&T toolchest (approx $3,000 for a full site license) * get the MKS trilogy (approx $130) which includes a home-grown substitute ksh. * get gnu-BASH which has lots of the functionality and is free. * get the KSH from Aspen Technologies At least one of the System V R3 releases (namely Microport) included a ksh. The base port of System V R4 includes the ksh as one of its standard shell, so if you wait a bit, it will be part of the base system. ---------------------------------------------------------------------------- If you have suggestions or corrections for any of these answers, please send them to ...!uunet!virtech!cpcahil. -- Conor P. Cahill (703)430-9247 Virtual Technologies, Inc., uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160 Sterling, VA 22170
cpcahil@virtech.uucp (Conor P. Cahill) (02/03/91)
Welcome to the comp.unix.sysv386 newsgroup. This newsgroup (actually the former comp.unix.i386 newsgroup which was renamed to this group) was founded to perpetuate discussions of the various unix systems running on the Intel 80386 architecture. This article contains the answers to some Frequently Asked Questions often seen in comp.unix.sysv386. Before posting a question to this newsgroup, PLEASE read through this posting, the Frequently Asked Questions posting in comp.unix.questions, and finally the various postings in news.announce.newusers. Last Modified: $Id: freq.ques,v 1.6 91/02/03 10:30:15 cpcahil Exp $ This article includes answers to: 1. What is this group for? 2. Which Unix should I buy? 3. Is there a BSD port for the 386 available anywhere? 4. What hardware works with brand X Unix and/or X11 5. How do I rewind or retension a cartridge tape? 6. How do I get a second serial port working? 7. How do I get fast serial line throughput with stock asynch ports? 8. Is there a port of X11 R3/4 available for whatever? 9. What are good intelligent multi-port serial card solutions? 10. Where do I get troff from? 11. Why doesn't vi work on large files? 12. How do I increase my ulimit? 13. How do you set up a port for both dial-in and dial-out access? 14. How do I setup a global environment variable that even gets set in the /etc/rc*/* scripts. 15. How do I get more than 8 virtual terminals to work on the console? 16. Why do I get the error "ps: unlink() error" every once in a while? 17. How do I set up more than 4 partitions on the disk drive 18. Why do I run out of inodes on some filesystems when I know I don't have that many files? 19. What is the minimum hardware for running Unix on a 386? 20. Will a caching controller be a good investment? 21. How many users can I run on my 386? 22. What is the bandwidth of an AT Bus? 23. Can Unix make use of memory in 16 bit AT bus slots? 24. How do I fix the error "Out of DOS Inodes" ? 25. Where can I get the K-Shell (aka ksh)? Before I start on the answers, I will state that there is NO GUARANTEE as to the correctness and/or appropriateness of these answers. If you intend to try one, BE SURE TO HAVE A BACKUP of your system first. My current system is Interactive's ISC UNIX 2.2. I have tested most of the responses on this system. If you find that another system requires a different response, please send me mail explaining what is required on your system (you might also want to tell me the OS and version). 1. What is this group for? This group was formed to discuss the various implementations of UNIX on the Intel 386 architecture. This includes SCO Unix, 386/ix, ISC UNIX, ESIX, Dell, Bell Tech (now Intel) Unix, Microport Unix, UHC Unix and, of course, AT&T and any others that I have forgotten. Since no vendor intends to make a 486 specific version of their OS, the use of the various UNIX products on the i486 will also be discussed. 2. Which Unix should I buy? This is a hard question. Few people have access to all of the available Unix implementations and without that access it is hard to be able to recommend any one over the other. You should consider the following factors in making your decision: 1. price 2. compatibility with existing software 3. compatibility with other operating systems 4. ease of use/control (administration menus) 5. performance You must decide which of those factors is more important to you. Most, if not all, application packages developed for one UNIX will run on one of the others. If you find one that does not, blast the developers because there is no reason for them to use any vendor specific code in their applications (and, IMHO it was a real stupid decision on their part). However, System V Release 4 (SVR4) binaries will not run on System V Release * (where * is less than 4.0) systems. 3. Is there a binary BSD port for the 386 available anywhere? No. However, SVR4 has many BSDisms including symbolic links, job control, BSD file system, sockets (implemented on top of streams). It will also contain the SunOS memory mapped files, the Korn shell, and many other nifty things. SVR4 is currently shipping from Microport, UHC, and DELL. Intell had been shipping SVR4, but has handed its UNIX marketing efforts over to ISC. ISC has announced that it will begin shipping SVR4 in April. SCO has no plans to ship a SVR4 product, but "will include SVR4 features in its SVR3.2 product." One thing that should be noted here is that the System V R4 release has MAJOR changes over the R3 releases and won't be stable for a while. If you want a stable system, I would suggest that you continue to use SVR3.2 until SVR4 stablizes (another 6mos to a year). BSD 4.4 will support the 386 architecture as a base system. This means that vendors will have a base BSD system that could be used to make a BSD binary release for this architecture. There are several reasons why this probably won't occur: 1. SVR4 will be enough BSD to satisfy most people 2. BSD kernel would have to be modified to support the 386 ABI or else it would be closed out of a major portion of the 386 market. 3. This is a brand new port and it can be expect that there will be significant problems with the stability of any new product. This puts it around 2 or 3 years behind the other 386 Unixs in this respect. Of course, this does not mean that you will never see BSD4.4 on a PC (since you will probably see it if you are somehow connected with a university that gets BSD source). It just means that there probably wont be a commercial binary release available to the general public. The other possibility is MACH. MACH is 4.3BSD compatible and has the 386 as one of it's target environments, but since it includes much of the BSD kernel, it still requires a standard BSD licensing (which is actually a requirement for an AT&T version 7 license). At least one company (Mt Xinu) has announced that they will support (and distribute) the MACH source code (assuming you have the appropriate license) AND has announced the availability of a binary product based upon the same. Support for various PC devices is somewhat limited. 4. What hardware works with brand X Unix and/or X11 The correct answer to this is a recommendation to call the distributor of the X11 that you intend to buy. The list of devices changes all the time and attempting to maintain a list here would be ludicrous. 5. How do I rewind or retension a cartridge tape? This depends upon the OS and tape device. The standard at&t distribution includes the tapecntl program (it is even documented in the 386/ix manuals), but most of the 386 unix products do not provide it. SCO UNIX has the "tape" program. The next place to look is the tape driver manufacturer. Archive does provide a "ctape" program which can perform this function. If your OS manufacturer doesn't provided it and your tape manufacturer doesn't provide it, you need to home grow it yourself. 6. How do I get a second serial port working? SCO Unix and Xenix come pre-configured to work with two serial port devices. AT&T Unix auto-configures the number of serial ports. The rest of the Unix offerings do not and must be re-configured to turn on the second serial port. The asy file in /etc/conf/sdevice.d contains the kernel configuration information for the standard asynchronous ports. The file should look something like: asy Y 1 7 1 .... asy N 1 7 1 .... This shows that the first asy is enabled, while the second is disabled (the N in column 2). Change this file to: asy Y 2 7 1 .... asy Y 2 7 1 .... and rebuild the kernel using kconfig or /etc/conf/bin/idbuild as appropriate for your system. Be sure to check the interrupt number and i/o port addresses to ensure they are correct and don't conflict with other devices. See sdevice(4) for more info. Note that the change from a 1 to a 2 in column 3 enables the modem control ports which can be used for uugetty. 7. How do I get fast serial line throughput with stock asynch ports? The stock serial ports usually will drop characters when run at high speeds with incomming data. The best way to fix this is to add the "FAS" driver to your system. (FAS stands for Final Asynch Solution). This driver (version 2.07) was posted to comp.unix.sysv386 in September of 1990. The Readme for the FAS driver suggests that you also replace the 16450 uart chips on your asynch card with 16550s (I think the cost runs around $20). The 16550s provide a 16 byte FIFO which allows operation at high speeds without loosing characters. SCO Unix, ESIX, and ISC UNIX are all reputed to support the 16550 in FIFO mode, so you probably can make this change without having to change the drivers. See your OS documentation for more info. 8. Is there a port of X11 R3/4 available for whatever? X11R3 is available from all of the 386 UNIX distributors. Thomas Roell has ported X11R4 to the 80386 architecture and has posted patches to enable it to run with a variety of VGA based boards. All you need is the X11R4 distribution from MIT, Roell's patches and voila you get X11R4. For sources to the X11R4 sources you can see the FAQ posting in comp.windows.x. I have heard very good reports on the performance of this server from the many people that have used it, so if you need X or want X11R4, you should check this out. This stuff is available from the following sites: ftp: flop.informatik.tu-muenchen.de in /pub/i386/X11R4 uucp: speed: TB+/PEP phone: 512-346-2339 system: bigtex login: nuucp (no password) files: /usr3/X11r4/i386.server/README /usr3/X11r4/i386.server/X386.man /usr3/X11r4/i386.server/Xserver.tar.Z uucp: system: zok (connection info available in the FAQ posting to comp.windows.x) 9. What are good intelligent multi-port serial card solutions? This is yet another religous issue. The following cards are available for AT bus systems. Note that the cards are listed in alphabetical order and that this should not be taken as a recommendation of any one card over the others. Bell Tech (now Intell) BT has three serial port solutions: ICC, ACE, and HUB. The ICC card looses data at incomming speeds > 19200. It locks up about once or twice a week, but is easily restarted since BT provides a program that can reset the card without rebooting the system. For normal terminal operation the card is satisfactory. Price was around $1500 when I bought it a couple of years ago. The ACE card is reported to be "bad beyond belief" with hanging problems caused by timing problems on the card. The HUB is a non-intelligent card that is "rock solid" and will provide 6 ports. However, since it is non-intelligent it will place a load on the system. Computone Computone provides a series of serial port solutions. I have no experience/pricing info on these cards. Digiboard Digiboard provides a series of serial port solutions. I have no experience/pricing info on these cards. Equinox Equinox has several serial port solutions including 12, 24 and 96 ports in a single slot. Each board is reputed to be capable of running ALL ports at full speed (38400 baud) simultaneously with no loss of data. The 24 port card runs around $1200. Installation is a snap, no jumpers to set, no interrupts required for the board. The board can be installed to use memory between 640K and 1 MB for communications between the board and the system. The board runs fine. Input/output port sharing is supported. Maxpeed Maxpeed has 8 and 16 port cards that will run any of the ports at speeds up to 38.4K. The 8 port card retails for 795, but is usually available at $500 to $550. I lost data when receiving data as speeds > 9600 baud. VPIX did not run correctly on my wyse 60's. I contacted customer support and got the response "it works fine on other machines". Other than the vpix problem I had this board provides good support for 8 terminals/printers at a low price. Specialix Specialix provides a series of serial port solutions. I have no experience/pricing info on these cards. Consensys Consensys has two serial port solutions in their POWERPORTS line. Each POWERPORTS intelligent main card supports up to 8 ports and can optionally accept an 8-port daughtercard. Each main card takes a 16-bit slot; the daughters don't require backplane access, but they do consume a slot cover. Each port is supposed to be able to handle 38.4, but there can be problems when driving Trailblazers from a daughter port. They also provide a multiple-session-per-terminal feature. You can drive up to 8 independent sessions from each physical terminal, toggling between sessions via control keys. The only downside is that you must go through a two-minute reconfiguration of the ports software if you switch terminal types on a port, since the card must load the appropriate termcap/terminfo. They also provide software for transparent printing to a printer attached to an aux port on one of the terminals. List prices range from $850 to $2,000 depending upon port and board RAM configurations. 10. Where do I get troff from? You can but the Documenters Workbench package from your Unix distributor, or a substitute package from a third party venor. The problem with the standard packages is that they do not support most of the currently available printers in troff mode. The third party packages seem to fill this niche quite well. These include: Eroff $795 SoftQuad Publishing ??? Jetroff $69 (personal)/$119 (commercial) Psroff $0 I have only used Eroff and it works quite well. I have heard good words about SoftQuad and Jetroff. Psroff was posted to comp.sources.unix late last year. 11. Why doesn't vi work on large files? There are two possible problems. The first problem may be that you are running into a ULIMIT problem. See the discussion under question 12 to figure out how to change/correct it. If this is not the probem, you may be running into a bug/feature of some VIs. The problem is that there are compiled in limits as to the number of lines in the data file. This problem is known to exist in the following Unix packages: AT&T System V Rel 3.2 Bell Technologies System V Rel 3.2 (was ok in 3.1) 12. How do I increase my ulimit? For those of you who don't know, the ulimit is the limit in the number of blocks that can be written to a file. This is intended to be a mechanism to stop a run-away process from eating up all the disk space available on your system. Both SCO Unix and SCO Xenix start out with a ulimit of 2097152 which means that you probably won't have a problem with the ulimit on these operating systems. However, if you have one of the AT&T derived operating systems, this limit will usually default to 2048 or 4096 and it has a hard limit of 12288. This can be unacceptable for systems that will have moderate to large database files and will therefore need to be increased. This solution also applies to the various SVR4 products. 1. If your desired limit is > 12288(6MB): Edit /etc/conf/cf.d/mtune to change the following line: ULIMIT 3072 2048 12288 to: ULIMIT 3072 2048 xxxxx where xxxxx is the limit you desire. 2. Edit /etc/conf/cf.d/stune to add/change the following line: ULIMIT xxxxx where xxxxx is the limit you desire. Note that this step can be performed in the kernel configuration software (i.e.: kconfig for 386/ix). 3. Edit /etc/default/login to delete the ULIMIT line. 4. Rebuild the kernel and reboot. 13. How do you set up a port for both dial-in and dial-out access? There are two ways to do this. Most intelligent boards provide two devices for every port: one with and one without modem controls. The modem control ports are used for getty, while the corresponding non-modem control lines are used for cu, uucp, kermit, etc. This is the easiest mechanism to configure and use (provided the device driver works properly). The SCO and ESIX systems and the FAS driver provide modem control ports which can be used in the same manner. The second solution is to use the uugetty software. uugetty is a replacement for getty that uses uucp/cu locks to control access to the port. In order to work properly, the port must have modem control support. 386/ix and ESIX have support for the modem control on the serial ports, but does not configure these devices automatically. You must mannually create the ports using the following commands: For 386/ix: mknod /dev/ttym0 c 3 16 mknod /dev/ttym1 c 3 17 For ESIX: mknod /dev/ttyM0 c 3 128 mknod /dev/ttyM1 c 3 129 A better way to do this would be to modify the /etc/conf/node.d/asy file so that it creates the modem control ports. 14. How do I setup a global environment variable that is set for all programs/shells (including the /etc/rc*/* scripts? /etc/init reads the /etc/TIMEZONE file at start up time. The first 5 or so variables in this file are placed into the global envionment for all processes started by init (this includes the rc scripts, cron scripts, etc). In addition many OS scripts will "source" this file. 15. How do I get more than 8 virtual terminals to work on the console? SCO provides 10-12 MultiScreens(TM, I believe). Depends on the keyboard and how much memory is available. This is configured using the "configure" script. Interactive (and probably the other 386 Unix ports) come set up to use up to 8 VTs while the driver will support up to 15. To make the changes to allow the use of more than 8 do the following: Assuming you want new_max number of vt's (new_max must be <= 15) you can do the following.... a. Modify the NKDVTTY line in /etc/conf/cf.d/mtune to look like: NKDVTTY 8 8 new_max b. Add the following entry to /etc/conf/cf.d/stune: NKDVTTY new_max c. reconfigure the kernel d. add new devices to /dev. The device names and numbers should be as follows: Major device number: Value in 6th column of the "kd" entry in /etc/conf/cf.d/mdevice file. (On my system it is a 5). Minor device numbers are generated using the following mechanism: /dev entries Minor Device Number ------------ -------------------------- vt00 - vt07 (vt number) * 32) vt08 - vt14 (vt number - 8) * 32) + 16 where vt number is the two digits in the device name e. Add the appropriate entries to /etc/conf/cf.d/init.base f. If you want to see "VT#" on the login prompt for each VT, you must add entries to /etc/gettydefs for each vt. See the entry for VT02 for an example. g. reboot the system 16. Why do I get the error "ps: unlink() error" every once in a while? This error is caused by the ps program being unable to remove the /etc/ps_data file. This is usually a permissions problem on /etc or /bin/ps. The files and/or directories should be set with the following modes: drwxrwxr-x 20 root sys 3968 Apr 29 08:36 /etc -r-xr-sr-x 1 root sys 21472 May 22 1989 /bin/ps In english: /bin/ps must be mode 2xxx (set-gid) /bin/ps must have the same group as /etc (usually sys) /etc must be group writable 17. How do I set up more than 4 unix partitions on the disk drive Under 386/ix (and Esix) a single "fdisk" partition can contain up to 16 unix partitions (including swap, alternates, and reserved). However, the default disk configuration software will only set up up to 4 partitions for use as file systems. This can be bypassed using the following manual procedure: This is slightly different if you are talking about the boot drive as opposed to the second drive. For the boot drive, use the installation software to set up the root (and /usr, if you are combining them) partition as you need it to be. Then place the rest of your disk into the last partition. For the second drive, use the system administration shell to set up the disk and set up the first partition as you want it to end up. Place the rest of the disk into a single partition. The rest of this applies to either disk. I will show you the steps required to add 3 partitions on the first drive. a. Make a backup of your system!!! b. Make sure you made a backup of your system!!! c. modify the /etc/inittab so that your system boots up into single user mode. To do this you change the initdefault line to be something like: is:s:initdefault: Note the 's' between the first set of colons. d. reboot the system e. Look at the /etc/partitions file and determine the name of the big partition you created. For my system this was: usr2: partition = 3, start = 129808, size = 1187914, tag = USR, perm = VALID Since we want to break that partition up into smaller partitions, we need to delete it from the disk. the remainder of the disk. The following command is used: /etc/mkpart -p usr2 disk0 The "disk0" comes from the first line in the /etc/partitions file which contains the header information for the disk drive. If you are working on the second disk drive you will find a second device stanza header just like the one for disk0: somewhere in the middle of the file. When you run mkpart you will probably get some message saying that your changes won't take effect until you rebbot. This is ok. You don't need to reboot yet. f. Now you must edit the /etc/partitions file to set up the partition stanzas for your new partitions and delete the stanza for the /usr2 partition. If your /usr is not part of your root, you might want to mount /usr so that you can edit the files with vi. I added the following entries: a: partition = 3, start = 129808, size = 243600, tag = USR, perm = VALID b: partition = 4, start = 373408, size = 311978, tag = USR, perm = VALID c: partition = 5, start = 685386, size = 469768, tag = USR, perm = VALID d: partition = 6, start = 1155154, size = 162568, tag = USR, perm = VALID If some partitions already exist (like alternates or reserved) you must skip these and add your entries with partition numbers above the existing partitions. If you do add entries > partition 7, you must mknod the extra disk devices as follows: mknod /dev/dsk/0s8 b 0 8 mknod /dev/dsk/0s9 b 0 9 mknod /dev/dsk/0s10 b 0 10 mknod /dev/rdsk/0s8 c 0 8 mknod /dev/rdsk/0s9 c 0 9 mknod /dev/rdsk/0s10 c 0 10 The key parts of these entries are the label, partition number, start, and size. Be sure that your values do not collide and that the start of each successive partition is equal to the summation of the start of the current partition and it's size. g. Now to make all of the new partitions run the following commands: /etc/mkpart -P a disk0 /etc/mkpart -P b disk0 /etc/mkpart -P c disk0 /etc/mkpart -P d disk0 h. reboot the computer. Use the command "uadmin 2 0" to halt the system from single user mode. i. Make the file systems for each of the partitions: mkfs /dev/rdsk/0s3 243600 mkfs /dev/rdsk/0s4 311978 mkfs /dev/rdsk/0s5 468768 mkfs /dev/rdsk/0s6 162568:63000 Note that since the /d partition is to be my news partition I have overridden the default number of inodes created on the filesystem. j. Label the file systems: labelit /dev/rdsk/0s3 a disk0 labelit /dev/rdsk/0s4 b disk0 labelit /dev/rdsk/0s5 c disk0 labelit /dev/rdsk/0s6 d disk0 k. Modify /etc/fstab. Delete the entry for /usr2 and add entries for the new file systems. My new /etc/fstab file looks like: /dev/dsk/0s3 /a /dev/dsk/0s4 /b /dev/dsk/0s5 /c /dev/dsk/0s6 /d l. Make the mount points: mkdir /a /b /c m. If desired, change the /etc/inittab file initdefault entry back to what it was before. n. run "telinit 2" or "init 2" (or 3 for those of you with a network) All done. 18. Why do I run out of inodes on some filesystems when I know I don't have that many files? It's a known bug that is most often manifested by running bnews for news processing (Cnews doesn't seem to cause the problem - we have been running Cnews for over a year with a full newsfeed and have never seen the problem). Binary patches have been posted to this group for several of the SVR3 OSs. It is not know if the problem still exists in the SVR4 products. If you have it, write hate mail to your supplier's expensive QA department... It has been known for years. 19. What is the minimum hardware for running Unix on a 386? A 386SX, 4 MB RAM, 40MB Disk, monochrome adaptor and monitor. You can have this for less than $1000 mail order nowadays. Using RLL is advisable, and does not cost you more. With Xenix, you can live with as little as 2MB. You will need additional space for any packages that you wish to install (especially the development system and X window packages). 20. Will a caching controller be a good investment? The question is not easy to answer. Some believe that you'd do better by just adding the same memory to central memory and expand the buffer cache. On many machines that are already at the limit of 16 MB this cannot be done and so the caching controller becomes a good option. WARNING: Caching controllers that are not write-through must be protected by a UPS or you could find your system horribly trashed when power is lost during heavy disk i/o. 21. How many users can I run on my 386? On a suitably configured (read: multiple fast discs, ESDI or SCSI controller, many MBytes of RAM), quite a lot, depending on many factors. At least a dozen. As many as as three dozen doing light sw developement or similar things. 22. What is the bandwidth of an AT Bus? Over 5 MBytes per second. As an IO-memory bus, that's still plenty. Most peripherals don't go over 1 MByte per second. As a CPU-memory bus, no way. 23. Can Unix make use of memory in 16 bit AT bus slots? Yes, but the slowdown is really impressive. Don't do it. When you buy your machine, make sure that you can put in 1MBit chips, and that you can stuff at least 8MBytes on the motherboard or the 32 bit memory board without buying anything extra, and that you can go all the way to 16 MBytes (or what you see as your maximum) without throwing away any chips that are already installed. 24. How do I fix the error "Out of DOS Inodes" ? This error message is telling you that the kernel driver for the DOS file system is out of inodes. This configuration parameter is NDOSINODE, but it is not in the default setup for 386/ix. To fix the problem do the following: 1. Run /etc/kconfig 2. Select "configure a kernel" 3. Select add tunable parameters 4. Specify NDOSINODE 5. Specify 500 It will tell you NDOSINODE is a new parameter and ask you for the minimum, maximum and default. Acceptable numbers are: 100, 1000, 200, respectively. To avoid kernel compilation warnings about NDOSINODE being re-defined you sould edit the /etc/conf/pack.d/dos/space.c file and move the line: #define NDOSINODE 200 /* DOS-FSS inodes array */ to be after the #include of config.h. You should also add a #ifndef NDOSINODE before that line and a #endif after it. So that section of the file will now look like: #define MINSCTRSHFT 9 /* Minimum sector shift */ #define MAXSCTRSHFT 10 /* Maximun sector shift */ #define NDOSFILSYS 5 /* DOS-FSS superblocks array */ #include "config.h" /* for overriding above parameters */ #ifndef NDOSINODE #define NDOSINODE 200 /* DOS-FSS inodes array */ #endif /* NDOSINODE */ unsigned char minsctrshft = MINSCTRSHFT; 25. Where can I get the K-Shell (aka ksh)? There are several sources where one can obtain a working ksh for 386 based systems. These include the following: * get source from the AT&T toolchest (approx $3,000 for a full site license) * get the MKS trilogy (approx $130) which includes a home-grown substitute ksh. * get gnu-BASH which has lots of the functionality and is free. * get the KSH from Aspen Technologies At least one of the System V R3 releases (namely Microport) included a ksh. The base port of System V R4 includes the ksh as one of its standard shell, so if you wait a bit, it will be part of the base system. ---------------------------------------------------------------------------- If you have suggestions or corrections for any of these answers, please send them to ...!uunet!virtech!cpcahil. -- Conor P. Cahill (703)430-9247 Virtual Technologies, Inc. uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160 Sterling, VA 22170
cpcahil@virtech.uucp (Conor P. Cahill) (03/11/91)
Welcome to the comp.unix.sysv386 newsgroup. This newsgroup (actually the
former comp.unix.i386 newsgroup which was renamed to this group) was founded
to perpetuate discussions of the various unix systems running on the
Intel 80386 architecture.
This article contains the answers to some Frequently Asked Questions
often seen in comp.unix.sysv386.
Before posting a question to this newsgroup, PLEASE read through this
posting, the Frequently Asked Questions posting in comp.unix.questions,
and finally the various postings in news.announce.newusers.
Last Modified: $Id: freq.ques,v 1.7 91/03/10 20:21:40 cpcahil Exp $
This article includes answers to:
1. What is this group for?
2. Which Unix should I buy?
3. Is there a BSD port for the 386 available anywhere?
4. What hardware works with brand X Unix and/or X11
5. How do I rewind or retension a cartridge tape?
6. How do I get a second serial port working?
7. How do I get fast serial line throughput with stock asynch ports?
8. Is there a port of X11 R3/4 available for whatever?
9. What are good intelligent multi-port serial card solutions?
10. Where do I get troff from?
11. Why doesn't vi work on large files?
12. How do I increase my ulimit?
13. How do you set up a port for both dial-in and dial-out access?
14. How do I setup a global environment variable that even gets set
in the /etc/rc*/* scripts.
15. How do I get more than 8 virtual terminals to work on the console?
16. Why do I get the error "ps: unlink() error" every once in a while?
17. How do I set up more than 4 partitions on the disk drive
18. Why do I run out of inodes on some filesystems when I know I don't
have that many files?
19. What is the minimum hardware for running Unix on a 386?
20. Will a caching controller be a good investment?
21. How many users can I run on my 386?
22. What is the bandwidth of an AT Bus?
23. Can Unix make use of memory in 16 bit AT bus slots?
24. How do I fix the error "Out of DOS Inodes" ?
25. Where can I get the K-Shell (aka ksh)?
26. What dos-under-unix product will work with ESIX?
27. How do I correctly configure the various STREAMS parameters?
Before I start on the answers, I will state that there is NO GUARANTEE as
to the correctness and/or appropriateness of these answers. If you intend
to try one, BE SURE TO HAVE A BACKUP of your system first.
My current system is Interactive's ISC UNIX 2.2. I have tested
most of the responses on this system. If you find that another system
requires a different response, please send me mail explaining what is
required on your system (you might also want to tell me the OS and version).
1. What is this group for?
This group was formed to discuss the various implementations of UNIX
on the Intel 386 architecture. This includes SCO Unix, 386/ix,
ISC UNIX, ESIX, Dell, Bell Tech (now Intel) Unix, Microport Unix,
UHC Unix and, of course, AT&T and any others that I have forgotten.
Since no vendor intends to make a 486 specific version of their OS,
the use of the various UNIX products on the i486 will also be
discussed.
2. Which Unix should I buy?
This is a hard question. Few people have access to all of the
available Unix implementations and without that access it is
hard to be able to recommend any one over the other. You should
consider the following factors in making your decision:
1. price
2. compatibility with existing software
3. compatibility with other operating systems
4. ease of use/control (administration menus)
5. performance
You must decide which of those factors is more important to you.
Most, if not all, application packages developed for one UNIX will
run on one of the others. If you find one that does not, blast the
developers because there is no reason for them to use any vendor
specific code in their applications (and, IMHO it was a real stupid
decision on their part).
Contact information for the various OS manufacturers:
PRODUCT VENDOR Phone contact (sales)
---------------------- ---------------------- ---------------------
AT&T UNIX AT&T ???
DELL UNIX (SVR3&4) DELL Computer Corp 800-426-5150
ESIX Everex 415-683-2068
ISC UNIX (SVR3) Interactive Systems ???
Mach Mt Xinu ???
Microport UNIX (SVR3&4) Microport ???
SCO UNIX & Xenix Santa Cruz Operation 800-726-8649
UHC UNIX (SVR4) UHC 713-782-2700
3. Is there a binary BSD port for the 386 available anywhere?
No. However, SVR4 has many BSDisms including symbolic links, job
control, BSD file system, sockets (implemented on top of streams).
It will also contain the SunOS memory mapped files, the Korn shell,
and many other nifty things.
SVR4 is currently shipping from Microport, UHC, and DELL. Intell
had been shipping SVR4, but has handed its UNIX marketing efforts
over to ISC. ISC has announced that it will begin shipping SVR4
in April. SCO has no plans to ship a SVR4 product, but "will include
SVR4 features in its SVR3.2 product."
One thing that should be noted here is that the System V R4 release
has MAJOR changes over the R3 releases and won't be stable for a while.
If you want a stable system, I would suggest that you continue to use
SVR3.2 until SVR4 stablizes (another 6mos to a year).
BSD 4.4 will support the 386 architecture as a base system. This
means that vendors will have a base BSD system that could be used
to make a BSD binary release for this architecture. There are
several reasons why this probably won't occur:
1. SVR4 will be enough BSD to satisfy most people
2. BSD kernel would have to be modified to support the
386 ABI or else it would be closed out of a major
portion of the 386 market.
3. This is a brand new port and it can be expect that
there will be significant problems with the stability
of any new product. This puts it around 2 or 3 years
behind the other 386 Unixs in this respect.
Of course, this does not mean that you will never see BSD4.4 on
a PC (since you will probably see it if you are somehow connected
with a university that gets BSD source). It just means that there
probably wont be a commercial binary release available to the
general public.
The other possibility is MACH. MACH is 4.3BSD compatible and has
the 386 as one of its target environments, but since it includes
much of the BSD kernel, it still requires a standard BSD licensing
(which is actually a requirement for an AT&T version 7 license).
At least one company (Mt Xinu) has announced that they will support
(and distribute) the MACH source code (assuming you have the
appropriate license) AND has announced the availability of a binary
product based upon the same. Support for various PC devices is
somewhat limited and they (Mt Xinu) see this as a developers
product, not an end-user product.
4. What hardware works with brand X Unix and/or X11
The correct answer to this is a recommendation to call the
distributor of the X11 that you intend to buy. The list of
devices changes all the time and attempting to maintain a list
here would be ludicrous.
5. How do I rewind or retension a cartridge tape?
This depends upon the OS and tape device. The standard at&t
distribution includes the tapecntl program (it is even documented
in the 386/ix manuals), but most of the 386 unix products do not
provide it. SCO UNIX has the "tape" program.
The next place to look is the tape driver manufacturer. Archive
does provide a "ctape" program which can perform this function.
If your OS manufacturer doesn't provided it and your tape
manufacturer doesn't provide it, you need to home grow it yourself.
6. How do I get a second serial port working?
SCO Unix and Xenix come pre-configured to work with two serial port
devices. AT&T Unix auto-configures the number of serial ports.
The rest of the Unix offerings do not and must be re-configured to
turn on the second serial port.
The asy file in /etc/conf/sdevice.d contains the kernel configuration
information for the standard asynchronous ports. The file should
look something like:
asy Y 1 7 1 ....
asy N 1 7 1 ....
This shows that the first asy is enabled, while the second is
disabled (the N in column 2). Change this file to:
asy Y 2 7 1 ....
asy Y 2 7 1 ....
and rebuild the kernel using kconfig or /etc/conf/bin/idbuild as
appropriate for your system. Be sure to check the interrupt number
and i/o port addresses to ensure they are correct and don't conflict
with other devices. See sdevice(4) for more info.
Note that the change from a 1 to a 2 in column 3 enables the modem
control ports which can be used for uugetty.
7. How do I get fast serial line throughput with stock asynch ports?
The stock serial ports usually will drop characters when run at
high speeds with incomming data. The best way to fix this is to
add the "FAS" driver to your system. (FAS stands for Final
Asynch Solution). This driver (version 2.07) was posted to
comp.unix.sysv386 in September of 1990.
The Readme for the FAS driver suggests that you also replace the
16450 uart chips on your asynch card with 16550s (I think the
cost runs around $20). The 16550s provide a 16 byte FIFO which
allows operation at high speeds without loosing characters.
SCO Unix, ESIX, and ISC UNIX are all reputed to support the 16550
in FIFO mode, so you probably can make this change without having
to change the drivers. See your OS documentation for more info.
8. Is there a port of X11 R3/4 available for whatever?
X11R3 is available from all of the 386 UNIX distributors.
Thomas Roell has ported X11R4 to the 80386 architecture and has
posted patches to enable it to run with a variety of VGA based
boards. All you need is the X11R4 distribution from MIT, Roell's
patches and voila you get X11R4. For sources to the X11R4 sources
you can see the FAQ posting in comp.windows.x.
I have heard very good reports on the performance of this server
from the many people that have used it, so if you need X or
want X11R4, you should check this out.
This stuff is available from the following sites:
ftp: flop.informatik.tu-muenchen.de in /pub/i386/X11R4
uucp: speed: TB+/PEP phone: 512-346-2339
system: bigtex
login: nuucp (no password)
files: /usr3/X11r4/i386.server/README
/usr3/X11r4/i386.server/X386.man
/usr3/X11r4/i386.server/Xserver.tar.Z
uucp: system: zok (connection info available in the
FAQ posting to comp.windows.x)
9. What are good intelligent multi-port serial card solutions?
This is yet another religous issue. The following cards are
available for AT bus systems. Note that the cards are listed
in alphabetical order and that this should not be taken as a
recommendation of any one card over the others.
Bell Tech (now Intel)
BT had three serial port solutions: ICC, ACE, and HUB.
Intel is no longer selling these cards (they stopped
taking orders on 1 Jan 91).
Computone
Computone provides a series of serial port solutions. I
have no experience/pricing info on these cards.
Digiboard
Digiboard provides a series of serial port solutions. I
have no experience/pricing info on these cards.
Equinox
Equinox has several serial port solutions including 12, 24
and 96 ports in a single slot. Each board is reputed to be
capable of running ALL ports at full speed (38400 baud)
simultaneously with no loss of data. The 24 port card runs
around $1200. Installation is a snap, no jumpers to
set, no interrupts required for the board. The board
can be installed to use memory between 640K and 1 MB for
communications between the board and the system.
The board runs fine. Input/output port sharing is supported.
Maxpeed
Maxpeed has 8 and 16 port cards that will run any of the ports
at speeds up to 38.4K. The 8 port card retails for 795, but is
usually available at $500 to $550. I lost data when
receiving data as speeds > 9600 baud. VPIX did not
run correctly on my wyse 60's. I contacted customer
support and got the response "it works fine on other
machines".
Other than the vpix problem I had this board provides
good support for 8 terminals/printers at a low price.
Specialix
Specialix provides a series of serial port solutions. I
have no experience/pricing info on these cards.
Consensys
Consensys has two serial port solutions in their POWERPORTS
line. Each POWERPORTS intelligent main card supports up to
8 ports and can optionally accept an 8-port daughtercard.
Each main card takes a 16-bit slot; the daughters don't
require backplane access, but they do consume a slot cover.
Each port is supposed to be able to handle 38.4, but there
can be problems when driving Trailblazers from a daughter
port.
They also provide a multiple-session-per-terminal feature.
You can drive up to 8 independent sessions from each physical
terminal, toggling between sessions via control keys.
The only downside is that you must go through a two-minute
reconfiguration of the ports software if you switch terminal
types on a port, since the card must load the appropriate
termcap/terminfo. They also provide software for transparent
printing to a printer attached to an aux port on one of the
terminals.
List prices range from $850 to $2,000 depending upon port
and board RAM configurations.
10. Where do I get troff from?
You can but the Documenters Workbench package from your
Unix distributor, or a substitute package from a third party
venor. A second option is to obtain GROFF (which is free and
available at your local GNU repository).
The problem with the standard packages is that they do not support
most of the currently available printers in troff mode.
The third party packages seem to fill this niche quite well.
These include:
Eroff $795 (415-964-2200)
SoftQuad Publishing $995 (800-387-2777)
Jetroff $69 (personal)/$119 (commercial)
Psroff $0
I have only used Eroff and it works quite well. I have heard good
words about SoftQuad and Jetroff. Psroff was posted to
comp.sources.unix late last year.
11. Why doesn't vi work on large files?
There are two possible problems. The first problem may be
that you are running into a ULIMIT problem. See the discussion
under question 12 to figure out how to change/correct it.
If this is not the probem, you may be running into a bug/feature
of some VIs. The problem is that there are compiled in limits
as to the number of lines in the data file.
This problem is known to exist in the following Unix packages:
AT&T System V Rel 3.2
Bell Technologies System V Rel 3.2 (was ok in 3.1)
12. How do I increase my ulimit?
For those of you who don't know, the ulimit is the limit in the
number of blocks that can be written to a file. This is intended
to be a mechanism to stop a run-away process from eating up all the
disk space available on your system.
Both SCO Unix and SCO Xenix start out with a ulimit of 2097152 which
means that you probably won't have a problem with the ulimit on
these operating systems. However, if you have one of the AT&T
derived operating systems, this limit will usually default to
2048 or 4096 and it has a hard limit of 12288. This can be
unacceptable for systems that will have moderate to large database
files and will therefore need to be increased.
This solution also applies to the various SVR4 products.
1. If your desired limit is > 12288(6MB):
Edit /etc/conf/cf.d/mtune to change the following line:
ULIMIT 3072 2048 12288
to:
ULIMIT 3072 2048 xxxxx
where xxxxx is the limit you desire.
2. Edit /etc/conf/cf.d/stune to add/change the following line:
ULIMIT xxxxx
where xxxxx is the limit you desire. Note that this step can
be performed in the kernel configuration software (i.e.: kconfig
for 386/ix).
3. Edit /etc/default/login to delete the ULIMIT line.
4. Rebuild the kernel and reboot.
13. How do you set up a port for both dial-in and dial-out access?
There are two ways to do this. Most intelligent boards provide
two devices for every port: one with and one without modem
controls. The modem control ports are used for getty, while
the corresponding non-modem control lines are used for cu,
uucp, kermit, etc. This is the easiest mechanism to configure
and use (provided the device driver works properly).
The SCO and ESIX systems and the FAS driver provide modem control
ports which can be used in the same manner.
The second solution is to use the uugetty software. uugetty
is a replacement for getty that uses uucp/cu locks to control
access to the port. In order to work properly, the port must
have modem control support.
386/ix and ESIX have support for the modem control on the serial
ports, but does not configure these devices automatically. You
must mannually create the ports using the following commands:
For 386/ix:
mknod /dev/ttym0 c 3 16
mknod /dev/ttym1 c 3 17
For ESIX:
mknod /dev/ttyM0 c 3 128
mknod /dev/ttyM1 c 3 129
A better way to do this would be to modify the /etc/conf/node.d/asy
file so that it creates the modem control ports.
14. How do I setup a global environment variable that is set for
all programs/shells (including the /etc/rc*/* scripts?
/etc/init reads the /etc/TIMEZONE file at start up time. The
first 5 or so variables in this file are placed into the global
envionment for all processes started by init (this includes the
rc scripts, cron scripts, etc). In addition many OS scripts
will "source" this file.
15. How do I get more than 8 virtual terminals to work on the console?
SCO provides 10-12 MultiScreens(TM, I believe). Depends on the
keyboard and how much memory is available. This is configured
using the "configure" script.
Interactive (and probably the other 386 Unix ports) come set up to
use up to 8 VTs while the driver will support up to 15. To make
the changes to allow the use of more than 8 do the following:
Assuming you want new_max number of vt's (new_max must be <= 15) you can
do the following....
a. Modify the NKDVTTY line in /etc/conf/cf.d/mtune to look like:
NKDVTTY 8 8 new_max
b. Add the following entry to /etc/conf/cf.d/stune:
NKDVTTY new_max
c. reconfigure the kernel
d. add new devices to /dev. The device names and numbers should be as
follows:
Major device number: Value in 6th column of the "kd" entry in
/etc/conf/cf.d/mdevice file. (On my system
it is a 5).
Minor device numbers are generated using the following mechanism:
/dev entries Minor Device Number
------------ --------------------------
vt00 - vt07 (vt number) * 32)
vt08 - vt14 (vt number - 8) * 32) + 16
where vt number is the two digits in the device name
e. Add the appropriate entries to /etc/conf/cf.d/init.base
f. If you want to see "VT#" on the login prompt for each VT, you must
add entries to /etc/gettydefs for each vt. See the entry for VT02
for an example.
g. reboot the system
16. Why do I get the error "ps: unlink() error" every once in a while?
This error is caused by the ps program being unable to remove
the /etc/ps_data file. This is usually a permissions problem
on /etc or /bin/ps. The files and/or directories should
be set with the following modes:
drwxrwxr-x 20 root sys 3968 Apr 29 08:36 /etc
-r-xr-sr-x 1 root sys 21472 May 22 1989 /bin/ps
In english:
/bin/ps must be mode 2xxx (set-gid)
/bin/ps must have the same group as /etc (usually sys)
/etc must be group writable
17. How do I set up more than 4 unix partitions on the disk drive
Under 386/ix (and Esix) a single "fdisk" partition can contain
up to 16 unix partitions (including swap, alternates, and reserved).
However, the default disk configuration software will only set up
up to 4 partitions for use as file systems.
For ISC UNIX (version 2.2 and above), the installation software
will allow you to specify a full range of partitions. SCO UNIX
has a similar capability in its divvy software.
For those running 386/ix the problem can be bypassed
using the following manual procedure:
This is slightly different if you are talking about the
boot drive as opposed to the second drive.
For the boot drive, use the installation software to set up
the root (and /usr, if you are combining them) partition as
you need it to be. Then place the rest of your disk into
the last partition.
For the second drive, use the system administration shell
to set up the disk and set up the first partition as you
want it to end up. Place the rest of the disk into a single
partition.
The rest of this applies to either disk. I will show you the
steps required to add 3 partitions on the first drive.
a. Make a backup of your system!!!
b. Make sure you made a backup of your system!!!
c. modify the /etc/inittab so that your system boots up into
single user mode. To do this you change the initdefault
line to be something like:
is:s:initdefault:
Note the 's' between the first set of colons.
d. reboot the system
e. Look at the /etc/partitions file and determine the name
of the big partition you created. For my system this was:
usr2:
partition = 3, start = 129808, size = 1187914,
tag = USR, perm = VALID
Since we want to break that partition up into smaller
partitions, we need to delete it from the disk.
the remainder of the disk. The following command is used:
/etc/mkpart -p usr2 disk0
The "disk0" comes from the first line in the /etc/partitions
file which contains the header information for the disk drive. If
you are working on the second disk drive you will find a second
device stanza header just like the one for disk0: somewhere in
the middle of the file.
When you run mkpart you will probably get some message saying
that your changes won't take effect until you rebbot. This is
ok. You don't need to reboot yet.
f. Now you must edit the /etc/partitions file to set up the
partition stanzas for your new partitions and delete the
stanza for the /usr2 partition. If your /usr is not part of
your root, you might want to mount /usr so that you can
edit the files with vi. I added the following entries:
a:
partition = 3, start = 129808, size = 243600,
tag = USR, perm = VALID
b:
partition = 4, start = 373408, size = 311978,
tag = USR, perm = VALID
c:
partition = 5, start = 685386, size = 469768,
tag = USR, perm = VALID
d:
partition = 6, start = 1155154, size = 162568,
tag = USR, perm = VALID
If some partitions already exist (like alternates or
reserved) you must skip these and add your entries with
partition numbers above the existing partitions. If
you do add entries > partition 7, you must mknod the
extra disk devices as follows:
mknod /dev/dsk/0s8 b 0 8
mknod /dev/dsk/0s9 b 0 9
mknod /dev/dsk/0s10 b 0 10
mknod /dev/rdsk/0s8 c 0 8
mknod /dev/rdsk/0s9 c 0 9
mknod /dev/rdsk/0s10 c 0 10
The key parts of these entries are the label, partition
number, start, and size. Be sure that your values do not
collide and that the start of each successive partition is
equal to the summation of the start of the current partition
and its size.
g. Now to make all of the new partitions run the following
commands:
/etc/mkpart -P a disk0
/etc/mkpart -P b disk0
/etc/mkpart -P c disk0
/etc/mkpart -P d disk0
h. reboot the computer. Use the command "uadmin 2 0" to
halt the system from single user mode.
i. Make the file systems for each of the partitions:
mkfs /dev/rdsk/0s3 243600
mkfs /dev/rdsk/0s4 311978
mkfs /dev/rdsk/0s5 468768
mkfs /dev/rdsk/0s6 162568:63000
Note that since the /d partition is to be my news partition
I have overridden the default number of inodes created on
the filesystem.
j. Label the file systems:
labelit /dev/rdsk/0s3 a disk0
labelit /dev/rdsk/0s4 b disk0
labelit /dev/rdsk/0s5 c disk0
labelit /dev/rdsk/0s6 d disk0
k. Modify /etc/fstab. Delete the entry for /usr2 and add
entries for the new file systems. My new /etc/fstab file
looks like:
/dev/dsk/0s3 /a
/dev/dsk/0s4 /b
/dev/dsk/0s5 /c
/dev/dsk/0s6 /d
l. Make the mount points:
mkdir /a /b /c
m. If desired, change the /etc/inittab file initdefault
entry back to what it was before.
n. run "telinit 2" or "init 2" (or 3 for those of you
with a network)
o. Make a lost and found directory and create some empty slots
(for fsck to use when fixing the file system) for each partition.
I usually run something like the following:
for i in a b c d
do
mkdir /$i/lost+found
cd /$i/lost+found
for j in 1 2 3 4 5 6 7 8 9
do
for k in 1 2 3 4 5 6 7 8 9
do
> $j$k
done
done
rm /$i/lost+found/[1-9][1-9]
done
All done.
18. Why do I run out of inodes on some filesystems when I know I don't
have that many files?
It's a known bug that is most often manifested by running
bnews for news processing (Cnews doesn't seem to cause the
problem - we have been running Cnews for over a year with a
full newsfeed and have never seen the problem). Binary patches
have been posted to this group for several of the SVR3 OSs.
It is not know if the problem still exists in the SVR4 products.
If you have it, write hate mail to your supplier's expensive QA
department... It has been known for years.
19. What is the minimum hardware for running Unix on a 386?
A 386SX, 4 MB RAM, 40MB Disk, monochrome adaptor and monitor.
You can have this for less than $1000 mail order nowadays.
Using RLL is advisable, and does not cost you more.
With Xenix, you can live with as little as 2MB.
You will need additional space for any packages that you wish
to install (especially the development system and X window
packages).
20. Will a caching controller be a good investment?
The question is not easy to answer. Some believe that
you'd do better by just adding the same memory to central
memory and expand the buffer cache. On many machines that are
already at the limit of 16 MB this cannot be done and so
the caching controller becomes a good option.
WARNING: Caching controllers that are not write-through must
be protected by a UPS or you could find your system horribly
trashed when power is lost during heavy disk i/o.
21. How many users can I run on my 386?
On a suitably configured (read: multiple fast discs, ESDI
or SCSI controller, many MBytes of RAM), quite a lot,
depending on many factors. At least a dozen. As many as
as three dozen doing light sw developement or similar things.
22. What is the bandwidth of an AT Bus?
Over 5 MBytes per second. As an IO-memory bus, that's still
plenty. Most peripherals don't go over 1 MByte per second.
As a CPU-memory bus, no way.
23. Can Unix make use of memory in 16 bit AT bus slots?
Yes, but the slowdown is really significant. (for two
reasons: 1. each 32 bit word access will require two bus
cycles to obtain since the bus is only 16 bits wide and 2) the
bus usually only runs at 8MHZ compared to at least 16MHZ for
the standard memory bus. Don't do it.
When you buy your machine, make sure that you can put in
1MBit chips, and that you can stuff at least 8MBytes on
the motherboard or the 32 bit memory board without buying
anything extra, and that you can go all the way to 16 MBytes
(or what you see as your maximum) without throwing away
any chips that are already installed.
24. How do I fix the error "Out of DOS Inodes" ?
This error message is telling you that the kernel driver for
the DOS file system is out of inodes. This configuration parameter
is NDOSINODE, but it is not in the default setup for 386/ix. To
fix the problem do the following:
1. Run /etc/kconfig
2. Select "configure a kernel"
3. Select add tunable parameters
4. Specify NDOSINODE
5. Specify 500
It will tell you NDOSINODE is a new parameter and ask you for
the minimum, maximum and default. Acceptable numbers are: 100,
1000, 200, respectively.
To avoid kernel compilation warnings about NDOSINODE being
re-defined you sould edit the /etc/conf/pack.d/dos/space.c file
and move the line:
#define NDOSINODE 200 /* DOS-FSS inodes array */
to be after the #include of config.h. You should also add a #ifndef
NDOSINODE before that line and a #endif after it.
So that section of the file will now look like:
#define MINSCTRSHFT 9 /* Minimum sector shift */
#define MAXSCTRSHFT 10 /* Maximun sector shift */
#define NDOSFILSYS 5 /* DOS-FSS superblocks array */
#include "config.h" /* for overriding above parameters */
#ifndef NDOSINODE
#define NDOSINODE 200 /* DOS-FSS inodes array */
#endif /* NDOSINODE */
unsigned char minsctrshft = MINSCTRSHFT;
25. Where can I get the K-Shell (aka ksh)?
There are several sources where one can obtain a working ksh for 386
based systems. These include the following:
* get source from the AT&T toolchest (approx $3,000 for a full
site license)
* get the MKS trilogy (approx $130) which includes a home-grown
substitute ksh.
* get gnu-BASH which has lots of the functionality and is free.
* get the KSH from Aspen Technologies
Both Microport and SCO UNIX (starting with 3.2v2) ship a ksh with
the standard OS. The base port of System V R4 includes the ksh as
one of its standard shell, so if you wait a bit, it will be part
of the base system.
26. What dos-under-unix product will work with ESIX?
ESIX does not include a dos-under-unix product. However, ISC's
release of VPIX can be installed an run under ESIX.
27. How do I correctly configure the various STREAMS parameters?
The "STREAMS" subsystem provides a mechanism for inter-process
communications both within the same system and across various
networks between different systems. In the standard OS, pieces like
X-windows, TCP/IP, NFS, FTP all use STREAMS for communication
purposes. That is why it is important that you correctly configure
the tunable parameters dealing with STREAMS.
Those parameters include: data blocks, queues, and streams. The
System administration guide will explain what these parameters are,
but it doesn't explain how to select good values for these parameters.
To configure these parameters you need to let you system run for
a while, then run "netstat -m". The output will look similar to
the following:
alloc inuse total max fail
streams: 512 75 639 76 0
queues: 2048 422 3722 428 0
mblocks: 4440 243 2277566 1158 0
dblocks: 3552 243 1975582 1032 0
dblock class:
0 ( 4) 512 0 47624 4 0
1 ( 16) 1024 34 243812 241 0
2 ( 64) 1024 22 1503769 679 0
3 ( 128) 512 179 73310 194 0
4 ( 256) 256 0 24425 4 0
5 ( 512) 128 8 50889 15 0
6 (1024) 32 0 30378 12 0
7 (2048) 32 0 1373 17 0
8 (4096) 32 0 2 1 0
In looking at this output, the key factors are alloc, max, and
fail. The ideal is to keep the alloc numbers approx 20% higher
than your max (which will keep fails at zero). Of course, the
numbers represented under max an fail columns are only since
the last time you rebooted, so you should keep track of the
highest values you have seen.
Once you determine the correct values for your system, you can
use idtune or kconfig to change the parameters (or edit the
/etc/conf/cf.d/stune file), rebuild the kernel and see how
things improve.
----------------------------------------------------------------------------
If you have suggestions or corrections for any of these answers, please send
them to ...!uunet!virtech!cpcahil.
--
Conor P. Cahill (703)430-9247 Virtual Technologies, Inc.
uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160
Sterling, VA 22170
cpcahil@virtech.uucp (Conor P. Cahill) (05/06/91)
Welcome to the comp.unix.sysv386 newsgroup. This newsgroup (actually the
former comp.unix.i386 newsgroup which was renamed to this group) was founded
to perpetuate discussions of the various unix systems running on the
Intel 80386 architecture.
This article contains the answers to some Frequently Asked Questions
often seen in comp.unix.sysv386.
Before posting a question to this newsgroup, PLEASE read through this
posting, the Frequently Asked Questions posting in comp.unix.questions,
and finally the various postings in news.announce.newusers.
Last Modified: $Id: freq.ques,v 1.9 91/05/05 22:42:42 cpcahil Exp $
This article includes answers to:
1. What is this group for?
2. Which Unix should I buy?
3. Is there a BSD port for the 386 available anywhere?
4. What hardware works with brand X Unix and/or X11
5. How do I rewind or retension a cartridge tape?
6. How do I get a second serial port working?
7. How do I get fast serial line throughput with stock asynch ports?
8. Is there a port of X11 R3/4 available for whatever?
9. What are good intelligent multi-port serial card solutions?
10. Where do I get troff from?
11. Why doesn't vi work on large files?
12. Why can't I create a file larger than 2MB (was: How do I
increase my ulimit)?
13. How do you set up a port for both dial-in and dial-out access?
14. How do I setup a global environment variable that even gets set
in the /etc/rc*/* scripts.
15. How do I get more than 8 virtual terminals to work on the console?
16. Why do I get the error "ps: unlink() error" every once in a while?
17. How do I set up more than 4 partitions on the disk drive
18. Why do I run out of inodes on some filesystems when I know I don't
have that many files?
19. What is the minimum hardware for running Unix on a 386?
20. Will a caching controller be a good investment?
21. How many users can I run on my 386?
22. What is the bandwidth of an AT Bus?
23. Can Unix make use of memory in 16 bit AT bus slots?
24. How do I fix the error "Out of DOS Inodes" ?
25. Where can I get the K-Shell (aka ksh)?
26. What dos-under-unix product will work with ESIX?
27. How do I correctly configure the various STREAMS parameters?
Before I start on the answers, I will state that there is NO GUARANTEE as
to the correctness and/or appropriateness of these answers. If you intend
to try one, BE SURE TO HAVE A BACKUP of your system first.
My current system is Interactive's ISC UNIX 2.2. I have tested
most of the responses on this system. If you find that another system
requires a different response, please send me mail explaining what is
required on your system (you might also want to tell me the OS and version).
1. What is this group for?
This group was formed to discuss the various implementations of UNIX
on the Intel 386 architecture. This includes SCO Unix, 386/ix,
ISC UNIX, ESIX, Dell, Bell Tech (now Intel) Unix, Microport Unix,
UHC Unix and, of course, AT&T and any others that I have forgotten.
Since no vendor intends to make a 486 specific version of their OS,
the use of the various UNIX products on the i486 will also be
discussed.
2. Which Unix should I buy?
This is a hard question. Few people have access to all of the
available Unix implementations and without that access it is
hard to be able to recommend any one over the other. You should
consider the following factors in making your decision:
1. price
2. compatibility with existing software
3. compatibility with other operating systems
4. ease of use/control (administration menus)
5. performance
You must decide which of those factors is more important to you.
Most, if not all, application packages developed for one UNIX will
run on one of the others. If you find one that does not, blast the
developers because there is no reason for them to use any vendor
specific code in their applications (and, IMHO it was a real stupid
decision on their part).
Contact information for the various OS manufacturers:
PRODUCT VENDOR Phone contact (sales)
---------------------- ---------------------- ---------------------
AT&T UNIX AT&T ???
DELL UNIX (SVR3&4) DELL Computer Corp 800-426-5150
ESIX Everex 415-683-2068
ISC UNIX (SVR3) Interactive Systems ???
Mach Mt Xinu ???
Microport UNIX (SVR3&4) Microport ???
SCO UNIX & Xenix Santa Cruz Operation 800-726-8649
UHC UNIX (SVR4) UHC 713-782-2700
3. Is there a binary BSD port for the 386 available anywhere?
No. However, SVR4 has many BSDisms including symbolic links, job
control, BSD file system, sockets (implemented on top of streams).
It will also contain the SunOS memory mapped files, the Korn shell,
and many other nifty things.
SVR4 is currently shipping from Microport, UHC, and DELL. Intell
had been shipping SVR4, but has handed its UNIX marketing efforts
over to ISC. ISC has announced that it will begin shipping SVR4
in April. SCO has no plans to ship a SVR4 product, but "will include
SVR4 features in its SVR3.2 product."
One thing that should be noted here is that the System V R4 release
has MAJOR changes over the R3 releases and won't be stable for a while.
If you want a stable system, I would suggest that you continue to use
SVR3.2 until SVR4 stablizes (another 6mos to a year).
BSD 4.4 will support the 386 architecture as a base system. This
means that vendors will have a base BSD system that could be used
to make a BSD binary release for this architecture. There are
several reasons why this probably won't occur:
1. SVR4 will be enough BSD to satisfy most people
2. BSD kernel would have to be modified to support the
386 ABI or else it would be closed out of a major
portion of the 386 market.
3. This is a brand new port and it can be expect that
there will be significant problems with the stability
of any new product. This puts it around 2 or 3 years
behind the other 386 Unixs in this respect.
Of course, this does not mean that you will never see BSD4.4 on
a PC (since you will probably see it if you are somehow connected
with a university that gets BSD source). It just means that there
probably wont be a commercial binary release available to the
general public.
The other possibility is MACH. MACH is 4.3BSD compatible and has
the 386 as one of its target environments, but since it includes
much of the BSD kernel, it still requires a standard BSD licensing
(which is actually a requirement for an AT&T version 7 license).
At least one company (Mt Xinu) has announced that they will support
(and distribute) the MACH source code (assuming you have the
appropriate license) AND has announced the availability of a binary
product based upon the same. Support for various PC devices is
somewhat limited and they (Mt Xinu) see this as a developers
product, not an end-user product.
4. What hardware works with brand X Unix and/or X11
The correct answer to this is a recommendation to call the
distributor of the X11 that you intend to buy. The list of
devices changes all the time and attempting to maintain a list
here would be ludicrous.
5. How do I rewind or retension a cartridge tape?
This depends upon the OS and tape device. The standard at&t
distribution includes the tapecntl program (it is even documented
in the 386/ix manuals), but most of the 386 unix products do not
provide it. SCO UNIX has the "tape" program.
The next place to look is the tape driver manufacturer. Archive
does provide a "ctape" program which can perform this function.
If your OS manufacturer doesn't provided it and your tape
manufacturer doesn't provide it, you need to home grow it yourself.
6. How do I get a second serial port working?
SCO Unix and Xenix come pre-configured to work with two serial port
devices. AT&T Unix auto-configures the number of serial ports.
The rest of the Unix offerings do not and must be re-configured to
turn on the second serial port.
The asy file in /etc/conf/sdevice.d contains the kernel configuration
information for the standard asynchronous ports. The file should
look something like:
asy Y 1 7 1 ....
asy N 1 7 1 ....
This shows that the first asy is enabled, while the second is
disabled (the N in column 2). Change this file to:
asy Y 2 7 1 ....
asy Y 2 7 1 ....
and rebuild the kernel using kconfig or /etc/conf/bin/idbuild as
appropriate for your system. Be sure to check the interrupt number
and i/o port addresses to ensure they are correct and don't conflict
with other devices. See sdevice(4) for more info.
Note that the change from a 1 to a 2 in column 3 enables the modem
control ports which can be used for uugetty.
7. How do I get fast serial line throughput with stock asynch ports?
The stock serial ports usually will drop characters when run at
high speeds with incomming data. The best way to fix this is to
add the "FAS" driver to your system. (FAS stands for Final
Asynch Solution). The current version of this driver is 2.08.
The Readme for the FAS driver suggests that you also replace the
16450 uart chips on your asynch card with 16550s (I think the
cost runs around $20). The 16550s provide a 16 byte FIFO which
allows operation at high speeds without loosing characters.
SCO Unix, ESIX, and ISC UNIX are all reputed to support the 16550
in FIFO mode, so you probably can make this change without having
to change the drivers. See your OS documentation for more info.
8. Is there a port of X11 R3/4 available for whatever?
X11R3 is available from all of the 386 UNIX distributors.
X11R4 is *usually* available from the System VR4 vendors.
X11R4 is also available as a third party product from MetroLink.
MetroLink's port has support for several high performance cards in
addition to the standard range of VGA cards.
X11R4, as ported by Thomas Roell, is freely redistributable and
supports a wide variety of VGA boards. All you need is the X11R4
distribution from MIT, Roell's patches and voila you get X11R4. For
sources to the X11R4 sources you can see the FAQ posting in
comp.windows.x.
I have heard very good reports on the performance of this server
from the many people that have used it, so if you need X or
want X11R4, you should check this out.
This stuff is available from the following sites:
ftp: flop.informatik.tu-muenchen.de in /pub/i386/X11R4
uucp: speed: TB+/PEP phone: 512-346-2339
system: bigtex
login: nuucp (no password)
files: /usr3/X11r4/i386.server/README
/usr3/X11r4/i386.server/X386.man
/usr3/X11r4/i386.server/Xserver.tar.Z
uucp: system: zok (connection info available in the
FAQ posting to comp.windows.x)
9. What are good intelligent multi-port serial card solutions?
This is yet another religous issue. The following cards are
available for AT bus systems. Note that the cards are listed
in alphabetical order and that this should not be taken as a
recommendation of any one card over the others.
Computone
Computone provides a series of serial port solutions. I
have no experience/pricing info on these cards.
Digiboard
Digiboard provides a series of serial port solutions. I
have no experience/pricing info on these cards.
Equinox
Equinox has several serial port solutions including 12, 24
and 96 ports in a single slot. Each board is reputed to be
capable of running ALL ports at full speed (38400 baud)
simultaneously with no loss of data. The 24 port card runs
around $1200. Installation is a snap, no jumpers to
set, no interrupts required for the board. The board
can be installed to use memory between 640K and 1 MB for
communications between the board and the system.
The board runs fine. Input/output port sharing is supported.
Maxpeed
Maxpeed has 8 and 16 port cards that will run any of the ports
at speeds up to 38.4K. The 8 port card retails for 795, but is
usually available at $500 to $550. I lost data when
receiving data as speeds > 9600 baud. VPIX did not
run correctly on my wyse 60's. I contacted customer
support and got the response "it works fine on other
machines".
Other than the vpix problem I had this board provides
good support for 8 terminals/printers at a low price.
Specialix
Specialix provides a series of serial port solutions. I
have no experience/pricing info on these cards.
Consensys
Consensys has two serial port solutions in their POWERPORTS
line. Each POWERPORTS intelligent main card supports up to
8 ports and can optionally accept an 8-port daughtercard.
Each main card takes a 16-bit slot; the daughters don't
require backplane access, but they do consume a slot cover.
Each port is supposed to be able to handle 38.4, but there
can be problems when driving Trailblazers from a daughter
port.
They also provide a multiple-session-per-terminal feature.
You can drive up to 8 independent sessions from each physical
terminal, toggling between sessions via control keys.
The only downside is that you must go through a two-minute
reconfiguration of the ports software if you switch terminal
types on a port, since the card must load the appropriate
termcap/terminfo. They also provide software for transparent
printing to a printer attached to an aux port on one of the
terminals.
List prices range from $850 to $2,000 depending upon port
and board RAM configurations.
10. Where do I get troff from?
You can but the Documenters Workbench package from your
Unix distributor, or a substitute package from a third party
venor. A second option is to obtain GROFF (which is free and
available at your local GNU repository).
The problem with the standard packages is that they do not support
most of the currently available printers in troff mode.
The third party packages seem to fill this niche quite well.
These include:
Eroff $795 (415-964-2200)
SoftQuad Publishing $995 (800-387-2777)
Jetroff $69 (personal)/$119 (commercial)
Psroff $0
I have only used Eroff and it works quite well. I have heard good
words about SoftQuad and Jetroff. Psroff was posted to
comp.sources.unix late last year.
11. Why doesn't vi work on large files?
There are two possible problems. The first problem may be
that you are running into a ULIMIT problem. See the discussion
under question 12 to figure out how to change/correct it.
If this is not the probem, you may be running into a bug/feature
of some VIs. The problem is that there are compiled in limits
as to the number of lines in the data file.
This problem is known to exist in the following Unix packages:
AT&T System V Rel 3.2
Bell Technologies System V Rel 3.2 (was ok in 3.1)
12. Why can't I create a file larger than 2MB (was: How do I increase my
ulimit)?
For those of you who don't know, the ulimit is the limit in the
number of blocks that can be written to a file. This is intended
to be a mechanism to stop a run-away process from eating up all the
disk space available on your system.
For UNIX versions prior to SVR4:
Both SCO Unix and SCO Xenix start out with a ulimit of 2097152 which
means that you probably won't have a problem with the ulimit on
these operating systems. However, if you have one of the AT&T
derived operating systems, this limit will usually default to
2048 or 4096 and it has a hard limit of 12288. This can be
unacceptable for systems that will have moderate to large database
files and will therefore need to be increased.
1. If your desired limit is > 12288(6MB):
Edit /etc/conf/cf.d/mtune to change the following line:
ULIMIT 3072 2048 12288
to:
ULIMIT 3072 2048 xxxxx
where xxxxx is the limit you desire.
2. Edit /etc/conf/cf.d/stune to add/change the following line:
ULIMIT xxxxx
where xxxxx is the limit you desire. Note that this step can
be performed in the kernel configuration software (i.e.: kconfig
for 386/ix).
3. Edit /etc/default/login to delete the ULIMIT line.
4. Rebuild the kernel and reboot.
For System VR4 and above:
While the ULIMIT parameter is still present (even in the
/etc/default/login file), it is not the real limitor. The
reql variables are: SFSZLIM and HFSZLIM.
SFSZLIM is the default setting for all programs
HFSZLIM is the maximum setting of SFSZLIM (i.e. the
largest value you can raise SFSZLIM to).
Note that the units for these variables is different from ULIMIT.
Instead of blocks, the units is bytes, so to allow 11MB you need
to specify something like 11534336.
In versions of SVR4 prior to release 3.0, if the SFSZLIM is
increased by a user and that user subsequently runs a setuid program,
the kernel resets the SFSZLIM for the exec'd program and any of its
children. Starting with release 3.0, this will only happen if the
SFSZLIM had been lowered.
13. How do you set up a port for both dial-in and dial-out access?
There are two ways to do this. Most intelligent boards provide
two devices for every port: one with and one without modem
controls. The modem control ports are used for getty, while
the corresponding non-modem control lines are used for cu,
uucp, kermit, etc. This is the easiest mechanism to configure
and use (provided the device driver works properly).
The SCO and ESIX systems and the FAS driver provide modem control
ports which can be used in the same manner.
The second solution is to use the uugetty software. uugetty
is a replacement for getty that uses uucp/cu locks to control
access to the port. In order to work properly, the port must
have modem control support.
386/ix and ESIX have support for the modem control on the serial
ports, but does not configure these devices automatically. You
must mannually create the ports using the following commands:
For 386/ix:
mknod /dev/ttym0 c 3 16
mknod /dev/ttym1 c 3 17
For ESIX:
mknod /dev/ttyM0 c 3 128
mknod /dev/ttyM1 c 3 129
A better way to do this would be to modify the /etc/conf/node.d/asy
file so that it creates the modem control ports.
14. How do I setup a global environment variable that is set for
all programs/shells (including the /etc/rc*/* scripts?
There are two ways to do this, depending upon your OS.
For SCO UNIX (starting with version 3.2v2, I believe), you use the
file /etc/initscript. All environment variables and running of
various environment related utilities (like ulimit, umask, etc)
should be in this file. The only exception is the setting of the
TZ variable, which still should be in /etc/TIMEZONE (for compatibility
with other existing software). Note that /etc/initscript does not
have the same 5 variable limit that is present for the TIMEZONE
file.
Note the warning below about changing /etc/TIMEZONE, since it also
applies to this file.
For all of the other UNIX systems:
/etc/init reads the /etc/TIMEZONE file at start up time. The
first 5 or so variables in this file are placed into the global
environment for all processes started by init (this includes the
rc scripts, cron scripts, etc). In addition many OS scripts
will "source" this file.
NOTE: when modifying the /etc/TIMEZONE file be very careful. An
invalid entry could cause all of the gettys initiated by init to
fail. This doesn't happen until the next time you reboot and by
then you may forget what you changed.
15. How do I get more than 8 virtual terminals to work on the console?
SCO provides 10-12 MultiScreens(TM, I believe). Depends on the
keyboard and how much memory is available. This is configured
using the "configure" script.
Interactive (and probably the other 386 Unix ports) come set up to
use up to 8 VTs while the driver will support up to 15. To make
the changes to allow the use of more than 8 do the following:
Assuming you want new_max number of vt's (new_max must be <= 15) you can
do the following....
a. Modify the NKDVTTY line in /etc/conf/cf.d/mtune to look like:
NKDVTTY 8 8 new_max
b. Add the following entry to /etc/conf/cf.d/stune:
NKDVTTY new_max
c. reconfigure the kernel
d. add new devices to /dev. The device names and numbers should be as
follows:
Major device number: Value in 6th column of the "kd" entry in
/etc/conf/cf.d/mdevice file. (On my system
it is a 5).
Minor device numbers are generated using the following mechanism:
/dev entries Minor Device Number
------------ --------------------------
vt00 - vt07 (vt number) * 32)
vt08 - vt14 (vt number - 8) * 32) + 16
where vt number is the two digits in the device name
e. Add the appropriate entries to /etc/conf/cf.d/init.base
f. If you want to see "VT#" on the login prompt for each VT, you must
add entries to /etc/gettydefs for each vt. See the entry for VT02
for an example.
g. reboot the system
16. Why do I get the error "ps: unlink() error" every once in a while?
This error is caused by the ps program being unable to remove
the /etc/ps_data file. This is usually a permissions problem
on /etc or /bin/ps. The files and/or directories should
be set with the following modes:
drwxrwxr-x 20 root sys 3968 Apr 29 08:36 /etc
-r-xr-sr-x 1 root sys 21472 May 22 1989 /bin/ps
In english:
/bin/ps must be mode 2xxx (set-gid)
/bin/ps must have the same group as /etc (usually sys)
/etc must be group writable
17. How do I set up more than 4 unix partitions on the disk drive
Under 386/ix (and Esix) a single "fdisk" partition can contain
up to 16 unix partitions (including swap, alternates, and reserved).
However, the default disk configuration software will only set up
up to 4 partitions for use as file systems.
For ISC UNIX (version 2.2 and above), the installation software
will allow you to specify a full range of partitions. SCO UNIX
has a similar capability in its divvy software.
For those running 386/ix the problem can be bypassed
using the following manual procedure:
This is slightly different if you are talking about the
boot drive as opposed to the second drive.
For the boot drive, use the installation software to set up
the root (and /usr, if you are combining them) partition as
you need it to be. Then place the rest of your disk into
the last partition.
For the second drive, use the system administration shell
to set up the disk and set up the first partition as you
want it to end up. Place the rest of the disk into a single
partition.
The rest of this applies to either disk. I will show you the
steps required to add 3 partitions on the first drive.
a. Make a backup of your system!!!
b. Make sure you made a backup of your system!!!
c. modify the /etc/inittab so that your system boots up into
single user mode. To do this you change the initdefault
line to be something like:
is:s:initdefault:
Note the 's' between the first set of colons.
d. reboot the system
e. Look at the /etc/partitions file and determine the name
of the big partition you created. For my system this was:
usr2:
partition = 3, start = 129808, size = 1187914,
tag = USR, perm = VALID
Since we want to break that partition up into smaller
partitions, we need to delete it from the disk.
the remainder of the disk. The following command is used:
/etc/mkpart -p usr2 disk0
The "disk0" comes from the first line in the /etc/partitions
file which contains the header information for the disk drive. If
you are working on the second disk drive you will find a second
device stanza header just like the one for disk0: somewhere in
the middle of the file.
When you run mkpart you will probably get some message saying
that your changes won't take effect until you rebbot. This is
ok. You don't need to reboot yet.
f. Now you must edit the /etc/partitions file to set up the
partition stanzas for your new partitions and delete the
stanza for the /usr2 partition. If your /usr is not part of
your root, you might want to mount /usr so that you can
edit the files with vi. I added the following entries:
a:
partition = 3, start = 129808, size = 243600,
tag = USR, perm = VALID
b:
partition = 4, start = 373408, size = 311978,
tag = USR, perm = VALID
c:
partition = 5, start = 685386, size = 469768,
tag = USR, perm = VALID
d:
partition = 6, start = 1155154, size = 162568,
tag = USR, perm = VALID
If some partitions already exist (like alternates or
reserved) you must skip these and add your entries with
partition numbers above the existing partitions. If
you do add entries > partition 7, you must mknod the
extra disk devices as follows:
mknod /dev/dsk/0s8 b 0 8
mknod /dev/dsk/0s9 b 0 9
mknod /dev/dsk/0s10 b 0 10
mknod /dev/rdsk/0s8 c 0 8
mknod /dev/rdsk/0s9 c 0 9
mknod /dev/rdsk/0s10 c 0 10
The key parts of these entries are the label, partition
number, start, and size. Be sure that your values do not
collide and that the start of each successive partition is
equal to the summation of the start of the current partition
and its size.
g. Now to make all of the new partitions run the following
commands:
/etc/mkpart -P a disk0
/etc/mkpart -P b disk0
/etc/mkpart -P c disk0
/etc/mkpart -P d disk0
h. reboot the computer. Use the command "uadmin 2 0" to
halt the system from single user mode.
i. Make the file systems for each of the partitions:
mkfs /dev/rdsk/0s3 243600
mkfs /dev/rdsk/0s4 311978
mkfs /dev/rdsk/0s5 468768
mkfs /dev/rdsk/0s6 162568:63000
Note that since the /d partition is to be my news partition
I have overridden the default number of inodes created on
the filesystem.
j. Label the file systems:
labelit /dev/rdsk/0s3 a disk0
labelit /dev/rdsk/0s4 b disk0
labelit /dev/rdsk/0s5 c disk0
labelit /dev/rdsk/0s6 d disk0
k. Modify /etc/fstab. Delete the entry for /usr2 and add
entries for the new file systems. My new /etc/fstab file
looks like:
/dev/dsk/0s3 /a
/dev/dsk/0s4 /b
/dev/dsk/0s5 /c
/dev/dsk/0s6 /d
l. Make the mount points:
mkdir /a /b /c
m. If desired, change the /etc/inittab file initdefault
entry back to what it was before.
n. run "telinit 2" or "init 2" (or 3 for those of you
with a network)
o. Make a lost and found directory and create some empty slots
(for fsck to use when fixing the file system) for each partition.
I usually run something like the following:
for i in a b c d
do
mkdir /$i/lost+found
cd /$i/lost+found
for j in 1 2 3 4 5 6 7 8 9
do
for k in 1 2 3 4 5 6 7 8 9
do
> $j$k
done
done
rm /$i/lost+found/[1-9][1-9]
done
All done.
18. Why do I run out of inodes on some filesystems when I know I don't
have that many files?
It's a known bug that is most often manifested by running
bnews for news processing (Cnews doesn't seem to cause the
problem - we have been running Cnews for over a year with a
full newsfeed and have never seen the problem). Binary patches
have been posted to this group for several of the SVR3 OSs.
It is not know if the problem still exists in the SVR4 products.
If you have it, write hate mail to your supplier's expensive QA
department... It has been known for years.
19. What is the minimum hardware for running Unix on a 386?
A 386SX, 4 MB RAM, 40MB Disk, monochrome adaptor and monitor.
You can have this for less than $1000 mail order nowadays.
Using RLL is advisable, and does not cost you more.
With Xenix, you can live with as little as 2MB.
You will need additional space for any packages that you wish
to install (especially the development system and X window
packages).
20. Will a caching controller be a good investment?
The question is not easy to answer. Some believe that
you'd do better by just adding the same memory to central
memory and expand the buffer cache. On many machines that are
already at the limit of 16 MB this cannot be done and so
the caching controller becomes a good option.
WARNING: Caching controllers that are not write-through must
be protected by a UPS or you could find your system horribly
trashed when power is lost during heavy disk i/o.
21. How many users can I run on my 386?
On a suitably configured (read: multiple fast discs, ESDI
or SCSI controller, many MBytes of RAM), quite a lot,
depending on many factors. At least a dozen. As many as
as three dozen doing light sw developement or similar things.
22. What is the bandwidth of an AT Bus?
Over 5 MBytes per second. As an IO-memory bus, that's still
plenty. Most peripherals don't go over 1 MByte per second.
As a CPU-memory bus, no way.
23. Can Unix make use of memory in 16 bit AT bus slots?
Yes, but the slowdown is really significant. (for two
reasons: 1. each 32 bit word access will require two bus
cycles to obtain since the bus is only 16 bits wide and 2) the
bus usually only runs at 8MHZ compared to at least 16MHZ for
the standard memory bus. Don't do it.
When you buy your machine, make sure that you can put in
1MBit chips, and that you can stuff at least 8MBytes on
the motherboard or the 32 bit memory board without buying
anything extra, and that you can go all the way to 16 MBytes
(or what you see as your maximum) without throwing away
any chips that are already installed.
24. How do I fix the error "Out of DOS Inodes" ?
This error message is telling you that the kernel driver for
the DOS file system is out of inodes. This configuration parameter
is NDOSINODE, but it is not in the default setup for 386/ix. To
fix the problem do the following:
1. Run /etc/kconfig
2. Select "configure a kernel"
3. Select add tunable parameters
4. Specify NDOSINODE
5. Specify 500
It will tell you NDOSINODE is a new parameter and ask you for
the minimum, maximum and default. Acceptable numbers are: 100,
1000, 200, respectively.
To avoid kernel compilation warnings about NDOSINODE being
re-defined you sould edit the /etc/conf/pack.d/dos/space.c file
and move the line:
#define NDOSINODE 200 /* DOS-FSS inodes array */
to be after the #include of config.h. You should also add a #ifndef
NDOSINODE before that line and a #endif after it.
So that section of the file will now look like:
#define MINSCTRSHFT 9 /* Minimum sector shift */
#define MAXSCTRSHFT 10 /* Maximun sector shift */
#define NDOSFILSYS 5 /* DOS-FSS superblocks array */
#include "config.h" /* for overriding above parameters */
#ifndef NDOSINODE
#define NDOSINODE 200 /* DOS-FSS inodes array */
#endif /* NDOSINODE */
unsigned char minsctrshft = MINSCTRSHFT;
25. Where can I get the K-Shell (aka ksh)?
There are several sources where one can obtain a working ksh for 386
based systems. These include the following:
* get source from the AT&T toolchest (approx $3,000 for a full
site license)
* get the MKS trilogy (approx $130) which includes a home-grown
substitute ksh.
* get gnu-BASH which has lots of the functionality and is free.
* get the KSH from Aspen Technologies
Both Microport and SCO UNIX (starting with 3.2v2) ship a ksh with
the standard OS. The base port of System V R4 includes the ksh as
one of its standard shell, so if you wait a bit, it will be part
of the base system.
26. What dos-under-unix product will work with ESIX?
ESIX does not include a dos-under-unix product. However, ISC's
release of VPIX can be installed an run under ESIX.
27. How do I correctly configure the various STREAMS parameters?
The "STREAMS" subsystem provides a mechanism for inter-process
communications both within the same system and across various
networks between different systems. In the standard OS, pieces like
X-windows, TCP/IP, NFS, FTP all use STREAMS for communication
purposes. That is why it is important that you correctly configure
the tunable parameters dealing with STREAMS.
Those parameters include: data blocks, queues, and streams. The
System administration guide will explain what these parameters are,
but it doesn't explain how to select good values for these parameters.
To configure these parameters you need to let you system run for
a while, then run crash(1M) and enter 'strstat' (On ISC UNIX you can
get the same info much faster with "netstat -m"). For Xenix, similar
information is available from sw command. The crash(1M) output will
look similar to the following (Note that I have cut out some unneeded
columns to get it to fit):
ITEM CONFIG ALLOC TOTAL MAX FAIL
streams 512 49 582 75 0
queues 2048 276 1686 420 0
message blocks 4440 145 19817 272 0
dblock totals 3552 145 92323 272 0
dblock 4 512 0 59276 4 0
dblock 16 1024 14 24306 37 0
dblock 64 1024 10 96447 34 0
dblock 128 512 113 45760 196 0
dblock 256 256 0 25491 3 0
dblock 512 128 8 27522 12 0
dblock 1024 32 0 5303 3 0
dblock 2048 32 0 8218 7 0
dblock 4096 32 0 0 0 0
In looking at this output, the key factors are CONFIG, MAX, and
FAIL. The ideal is to keep the CONFIG numbers approx 20% higher
than your MAX (which will keep FAILs at zero). Of course, the
numbers represented under max an fail columns are only since
the last time you rebooted, so you should keep track of the
highest values you have seen.
Once you determine the correct values for your system, you can
use idtune or kconfig to change the parameters (or edit the
/etc/conf/cf.d/stune file), rebuild the kernel and see how
things improve.
----------------------------------------------------------------------------
If you have suggestions or corrections for any of these answers, please send
them to ...!uunet!virtech!cpcahil.
--
Conor P. Cahill (703)430-9247 Virtual Technologies, Inc.
uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160
Sterling, VA 22170
john@newave.UUCP (John A. Weeks III) (05/13/91)
In article <1991May06.024713.19535@virtech.uucp> cpcahil@virtech.uucp (Conor P. Cahill) writes: > Welcome to the comp.unix.sysv386 newsgroup. I would like to thank whoever put togather this FAQ list. I have been trying to get a bi-diretional tty like working, and nowhere in the 386/ix manual (that I can find) does it say that you needed to enable modem control. Thanks!!! -john- -- ============================================================================= John A. Weeks III (612) 942-6969 john@newave.mn.org NeWave Communications, Ltd. ...uunet!tcnet!newave!john