AT&T 3B2 FREQUENTLY ASKED QUESTIONS This article contains the answers to many Frequently Asked Questions (FAQ) often posed to the net. It is posted because the same questions pop up time after time. This will hopefully help out by not having these questions posted over and over, and help new users know what questions there are to ask in the first place! 8^) This article includes answers to the following questions. Much of the information included in this article is also compatible with the 3B15 series of WE32000 series based computers. First, the questions: Subject: 0 SPECIAL NOTE Subject: 1 How do I install a second ST-506 drive on my 3B2? Subject: 2 How do I create a second swap partition? Subject: 3 How can I get X11 for the 3B2? Subject: 4 How do I install a non AT&T SCSI drive on my 3B2? Subject: 5 How do I prevent data overrun errors when using a high speed modem on an EPORTS card at 19.2K baud or higher? Subject: 6 What does the 'NOTICE: File Table Overflow' error mean? Subject: 7 How do I set up anonymous ftp? Subject: 8 Is there a reposity of ftp-able 3B2 programs? Subject: 9 How do I run Unix from floppy (for example, to repair a damage hard drive file system)? Subject: 10 What is/was the 3B Journal? Subject: 11 What are the various models of 3B2s and their differences? Subject: 12 How do I build GCC on the 3B2? Subject: 13 What is the NVRAM SANITY FAILURE? Subject: 14 Is there an implementation of SLIP for the 3B2? Subject: 15 What are the known bugs in the Wollongong WIN TCP software? Subject: 16 Is there an implementation of NFS for the 3B2? Subject: 17 What are the pinouts of those phone-like serial connectors? Subject: 18 What is the u3b. newsgroup heirarchy? Subject: 19 What is the proper way to rebuild the kernel after tuning kernel parameters? Subject: 20 Which GNU packages DON'T run on the 3B2? Subject: 21 How do I put a root and/or swap partition on a SCSI drive on a 3B2/300|310|400? Now, the answers: ------------------------------------------------------------------------------ Subject: 0 SPECIAL NOTE ------------------------------------------------------------------------------ If you are going to be at all serious about the 3B2, and especially if you are relying on yourself for maintenance, the first thing you want to do is obtain the AT&T 3B2 Computer Maintenance Manual. It contains diagrams of all 3B2 computers up to the 3B2/600, parts lists, breakdown procedures, troubleshooting information, and sources of additional documentation. In addition, it contains the "3B2 Computer Maintenance Utilities" diskette called "idtools" (formerly known as "devtools"). This floppy is bootable, and once running, the following options are available: > format floppy diskettes > format hard disk drives > verifies hard disk format > disk-to-disk high speed copies > disk-to-disk copy by sectors > disk-to-memory copies > defect table builder > writes sanity track > change default boot information While some of these options are also available from UNIX, all the utilities here can be run on a machine with a damaged (or missing) hard disk, often allowing the drive to be repaired that is otherwise unbootable. This manual and disk can be ordered from the AT&T Customer Information Center in Indianapolis, IN. It has select code 305-395, and at press time it sold for about $125. The AT&T CuIC can be reached at: (800) 432-6600 Continental US (317) 322-6556 elsewhere The CuIC takes phone orders with a credit card, and with a purchase order for qualifying companies. They have many other UNIX-related books as well, so be sure to ask for their free "AT&T Documentation Guide", select code 000-011. ------------------------------------------------------------------------------ Subject: 1 How do I install a second ST-506 drive on my 3B2? ------------------------------------------------------------------------------ Copyright 1989 by Owens-Laing Publications. Title: Disk Expansion on the 3B2 Author: Stephen Friedl (friedl@mtndew.Tustin.CA.US) Issue: 3B Journal, 4Q 1989 [Edited by Gregory Gulik] [ conventions are: *bold* and _italics_ ] Introduction ------------ The 3B2/400 family (/300, /310 and /400) computers use standard MFM disk drives, and it is possible to add or replace these drives yourself -- in this article we show you how to do this. The 3B2/500 and larger machines all have SCSI (Small Computer Systems Interface) disk drives, so these instructions do not apply to them. For the duration of this article, "3B2" means the 3B2/400 and below, and in the case where there are differences among these included models we will mention them. Before doing any drive replacement, you must obtain the _3B2 Computer Maintenance Reference Manual_ from AT&T. This document contains quite a bit of useful information about your 3B2 hardware, and it is helpful in its own right. What makes it so special is the "idtools" diskette that comes with it. This floppy disk contains numerous utilities that will help you diagnose and troubleshoot your computer, as well as the disk formatting tools we need for our expansion project. What we don't tell you ---------------------- This is a fairly technical topic, and it relies on substantial knowledge of UNIX system administration. Those steps directly related to the formatting operation are covered here, but others such as backup and restore from tape, disk space allocation, and rebooting the machine are prerequisite knowledge. AT&T's sysadm documentation covers a great deal of it, but if these things are new to you, perhaps you're not ready to give this a go just yet. Please keep in mind that if this is not done correctly (especially the backups), you could lost most or all of your computer's data in a very short time. You must have at least one full, verified backup of all filesystems, with _two_ backups being safer. In addition, it is a good idea to try this during an off time when you can afford to be down for while if things don't go so well. Finally, we have tried to present this information as accurately and clearly as we can, but we cannot guarantee that there are no bugs. Check everything, verify steps with the manual, and ask a local wizard if you get stuck. Of course, you undertake this procedure at your own risk. Selecting a drive ----------------- There are many drives on the market that are satisfactory, and we present some guidelines here for selecting one. We have our favorites, but most available ST-506 drives can be used in the 3B2. Note that these are suggestions only, not endorsements or guarantees of compatibility. The first restriction is that the idtools software will not format more than 1024 cylinders in a single drive, and a drive with more will simply have the excess cylinders ignored. This is an unfortunate but unavoidable waste of disk space, giving us a practical limit of about 135Mbyte. (15 heads x 1024 cyls x 18 blks/track x 512 bytes/block). Most of the drives found in the original 3B2 are made by Control Data (or their subsidiary, Imprimis), and these Wren II drives are of excellent quality, and they represent a very safe route. These drives are available with formatted capacities of 30 and 72 megabytes, and they have an average access time of about 28 msec. Other brands known to work include Maxtor, Miniscribe, Priam, Micropolis and others. Some of these drives have more than 1024 cylinders which allows them to be used, but at less than their advertised capacity. Disk types and the Equipped Device Table ---------------------------------------- Each drive in the 3B2 is formatted with a _disk type_, which is a small number that identifies the drive to the machine. The disk type indexes into a table of drive information, and this table is part of the /dgn/edt_data file. This file is used to fill the Equipped Device Table, a list of currently-available hardware devices maintained by the firmware. Part of this list, the _subdevice table_, describes the possible hard disk drives. Getting started --------------- Now that the formatting tools have arrived and a drive has been obtained, we are ready to do the installation. It is at this point that a full backup of the entire system is in order and to review the relevant portions of the Maintenance Manual. After backing up the current drives, shut down the machine, turn off the power, and remove the power plug. Open the case, note the current configuration of the drive cables, and remove them along with the power connectors. Select "drive 0" on the drive select jumpers, insert/enable the terminating resistor, and place the drive back in the cage. Connect drive zero's data cable (the thin ribbon cable), the last connector on the wide control cable, and the power cable to the rear of the drive. Pay particular attention to pin one orientation, and insure that all connections are snug. At this point you are ready to turn on the machine. Plug in the 3B2 power cable and turn the switch to "ON". The console should show a SELF CHECK, followed shortly by FW ERROR 1-02: DISK SANITY FAILURE EXECUTION HALTED SYSTEM FAILURE: CONSULT YOUR SYSTEM ADMINISTRATION UTILITIES GUIDE This ominous message is actually expected, and it just means that the disk drive is not formatted yet. At this point, type your current firmware password (usually "mcp") followed by RETURN, and you will be presented with the normal firmware menu. At this point you should boot "/idtools" from the floppy drive (load device 0, FD5). Once booted, idtools displays an informational message and asks that RETURN be hit. Note that this entire process is covered in Appendix B of the Maintenance Reference Manual, and we strongly recommend that you review sections Hard Disk Formatter (B-8), Defect Table Builder (B-33), and Writing Sanity Track (B-47) plus the introduction before continuing. Running Idtools --------------- At the first menu, "formhard" should be entered. It will ask which disk should be formatted, and the proper response is zero in most cases. If you are doing this procedure on a machine with two drives installed, be _very_ careful when answering this question. Next, you are asked for drive configuration information. You must enter the drive type (from a previous section) plus the drive dimensions, and the following table summarizes several models we know about. If your drive is not shown, consult your vendor documentation for this information. Drive type drv id cyls trk/cyl sec/trk byte/cyl abbrev --------------- ------ ---- ------- ------- -------- ------ Wren II 30MB 3 697 5 18 512 HD30 Wren II 72MB 5 925 9 18 512 HD72 Fujitsu M2243AS 8 754 11 18 512 HD72C Micropolis 1325 5 1024 8 18 512 HD72 Maxtor 1140 4* 918= 15 18 512 HD120 Maxtor 1190 11 1224+ 15 18 512 HD135 Miniscribe XXXX 4* Priam XXXX * selected by user + can only use 1024 cylinders on this drive = can usually be formatted out to 1024 cylinders, even though it is actually capable of 1224 cylinders, like the 1190. Note that "tracks/cylinder" means "heads", and the sectors/track and bytes/cylinder values the same for all drives. The drive ID is shown as 4 for high-capacity drives, and it assumes that this number was inserted into the Equipped Device Table subdevice listing. In the following examples, user responses are in *bold*, and the drive shown is a Maxtor 1140. Note that the default entries shown may vary from machine to machine. Format which disk [ 0 or 1 ] (0)? *0* Drive id: 3- ? *4* Number of cylinders: 687 - ? *918* Numbers tracks/cyl: 5 - ? *15* Number sectors/track: 18 - ? *18* Number bytes/sector: 512 - ? *512* Once these values have been entered, idtools shows where it will place various housekeeping areas on the disk, almost all stored on the first two cylinders. You need not concern yourself with the specific values printed. Defect Mapping -------------- The bad block listing (with various alternate names, such as "Flag Track Log") is usually found on a sticker on top of the drive. To simplify data entry, it is a good idea to photocopy this sticker while it is on the drive, because later the drive might not be in such a comfortable reading position (especially if it is in a drive cage). The first prompt in this section asks if the backup defect table should be modified. A formatted drive normally has two copies of the defect table on disk in case one is lost, but a blank drive has no such table. Answering "yes" to this question means that the data you enter here is stored in both places. To enter the defects, enter "new" when asked, then "bc" for the type of defect byte count. Then, for each bad sector, enter the cylinder number, the head number, and the byte count, all separated by spaces. This "byte count" field is often shown on the disk label as "BFIND" (bytes from index) or "BCAI" (byte count after index), and it is distinct from the sector number. Most entries have a block length of one, but if the label shows more than this then it must be the fourth field on the line. An entry of "q" terminates the input, and displays the entire list of blocks entered. It is vital that this list be checked completely, and edits made if necessary. An entry of just a RETURN accepts the current list and moves onto the next prompt. Format entire disk - type 1 Format single track - type 2 Format from selected track to end - type 3 Select type of format [1, 2, or 3] (1) ? Entering "1" followed by RETURN starts the formatting process, and when it completes it starts a verify pass where all blocks on the disk are examined for errors. This operation can take some time on a large drive, and idtools shows its progress with a message displayed every five cylinders formatted. After the format and verify, idtools writes the "sanity track" with the "fixdisk" program. The sanity track contains a special data pattern that validates the drive to the 3B2, and it takes just a moment and requires no input from you. With the conclusion of the fixdisk operation the drive is formatted. You can remove the idtools floppy and power the machine down. Closing up the machine ---------------------- The machine should now be put back together and the original drives reinstalled. It is important that all drive selects and terminating resistors be installed properly, following the rules mentioned previously. The first drive in the machine has the lowest drive select jumper (usually position zero) and connected to the zero data cable (usually the bottom drive). The second drive in the machine has the next drive select (usually position one) and the other data cable, and the control cable connects them both. The drive that is at the physical end of the control cable must have the terminating resistor. Disk drives installed into an XM expansion module have special rules on termination, and these are documented and diagramed on pages 6-23 and 6-24 of the Maintenance Reference Manual. Partitioning the drive ---------------------- The easiest case is adding a second drive to a machine that previously had only one. After installing the new unit, boot /unix from the hard drive and enter single-user mode (this is much easier if you have edited /etc/inittab). With the /usr partition mounted, run the "sysadm" command, and at each successive menu, enter "diskmgmt", "harddisk", and "partitioning" in turn. This enters the partitioning operation and it should prompt you for the relevant information. We do not discuss strategies for allocating filesystem resources, as this is covered in the AT&T system administrative documentation. Once the drive is partitioned, the added filesystems (say, /usr2 and /usr3) may be used immediately. All other cases involve replacing existing drives, and it most expedient to use the full restore procedure for this. A full backup is absolutely required here for this operation, and it should be verified once it is made. Boot the "Essential Utilities - Disk 1" floppy and select the "Full Restore" operation. This procedure includes a partitioning step that allows you to allocate your new disk resources. Follow the instructions shown on the screen. After the core set of floppies -- five or six disks -- you can interrupt this process, boot /unix from the hard disk, and restore all of your backups. You may have to install the Cartridge Tape Utilities if your backups are stored on that medium. WARNING: This "full restore" operation destroys all data on all hard disks during the partitioning, and you _must_ have a full set of reliable, verified backups before considering this step, and two full sets of backups would not be a bad idea. If these backups are not done properly, all data on the disks will be LOST. Please be very careful when doing this, as mistakes can be costly. Compatibility note ------------------ Some early models of the 3B2/300 do not permit a 72MB hard drive to be added to the system board. The recognizing signs for this restriction are documented in the Maintenance Reference Manual on page 7-21, and 3B2/300 owners should consult this information before starting this project. While the documentation does not mention the reason for this restriction, we speculate that any drive with more than eight heads cannot be used in these older machines. ------------------------------------------------------------------------------ Subject: 2 How do I create a second swap partition? ------------------------------------------------------------------------------ These are the steps I used to add a second swap partition to my 3B2/400. Why add a second swap area? By default, the SVR3.1 system disks (the version I use) make one swap area of 10196 blocks on the first hard disk (/dev/rdsk/c1d0s1). While this 5Mb area seems plenty for most uses, I managed to exhaust it. It was time to RTFM. While the manual gives you the confidence to say that you *can* increase the number of swap partitions, it doesn't clearly tell you exactly how to go about doing that. What follows are the steps you can follow to add another swap partition to your system. Are you adding this swap space "just to balance the load"? If so, forget it. The effect is negligible and clearly not worth the effort. I have been unsuccessful in conclusively proving whether or not SVR3.1 does perform balanced allocation of the swap space. It seems to knock a huge chunk off the first partition before it even touches the second one. I would not think of doing this unless you have SVR3.1 or SVR3.2. Earlier versions do not have the advanced swap handling functions, and may not even allow you to do this. Upgrade time. The only reason to add another swap partition is if you have a valid reason to do so (i.e. you have exhausted your present swap space). Remember that swap cannot be used for anything else, you take space away from your mountable filesystems when you add swap space. Please keep in mind that this is *your* system, and these steps can easily wipe out all your data files. Take adequate care to back up your data. Make sure your backups work before you start any of this. IT IS STRONGLY RECOMMENDED THAT YOU HAVE A PAPER COPY OF THESE DIRECTIONS IN FRONT OF YOU AS YOU PERFORM THIS TASK. Step 0: BACK UP THE SYSTEM! I cannot stress this enough. If you have a tape drive, use that in preference over the floppy drive. Back up the /, /usr, and /usr2 partitions. While it is not mandatory, it's also a good idea to back up everything else just in case catastrophe strikes. Expect the worst and hope for the best. Step 1: Reload the Foundation floppies and select a custom partition setup. Pick the sizes you want for the new swap partitions. Since you are adding a second swap partition, it is up to you if you wish to add to (or keep) the original 5Mb swap partition. It is mandatory that you keep *some* swap space on the first disk. There is no rule that says the 2 partitions must be equal in size. Finish the full restore. For Your Information: the sizes of the partitions are dependent on the number of blocks per cylinder group. That means, you can specify size in units of (18 * number of heads). If you specify a number that is not a round figure, the machine will round it for you. RECORD THIS NUMBER!!! This new partition will be named /usrX (where X is a positive integer) and there will be a filesystem made upon it. Do not worry. Step 2: Bring up unix, log in as root, and bring the machine to runlevel 1. When the machine is in single-user mode, make sure that all disk partitions are unmounted (except for the root partition!) Step 3: Make a temporary file with the existing partition data: # prtvtoc /dev/rdsk/c1d1s6 > /tmp/disk.data Step 4: Edit the disk.data file. Make the following changes: change the tag field from 0 to 3 (from 'user' to 'swap') change the flags from 00 to 01 (unmountable partition) delete all the initial comments (lines with initial *'s) Double check this file to make sure you got it right Step 5: Save this data back to the hard disk. If you choose to chicken out, do it BEFORE THIS STEP: # fmthard -s /tmp/disk.data /dev/rdsk/c1d1s6 Step 6: Edit /etc/fstab to remove the reference to the now defunct filesystem. You don't have to do anything else to the actual partition to remove the filesystem - the system will page over the superblock and inode lists by itself. Step 7: Use /etc/swap to tell the system that the partition is ready for paging/swapping. The best way to do this is to make the system add this partition each time it boots. Create a file called /etc/rc2.d/S00SETSWAP. Link it to the file /etc/init.d/S00SETSWAP. In this file, add the following line: /etc/swap -a /dev/dsk/c1d1sYY 0 XXXXX In this case, the Y's in the disk name should be set to the disk partition that the new swap space is to be located on. Usually, this is partition 8 (if you specified the swap space as the first partition on the disk before /usr). The 0 (zero) signifies that swap activity is to start at the 0th block of the partition - the start. Replace the XXXXX with the number of blocks available in the partition. This is the number you recorded in Step 1 above. Step 8: Reboot and pray. If it all went well, the machine will come up in multi-user mode. Once again, log in as root and bring the machine down to single-user state. Make sure that the system is actually using the new partition with the # /etc/swap -l command. You should see the original swap partition (/dev/dsk/c1d0s1) as well as your new partition listed. If your machine did not boot for some bizarre reason, reload the system again (go to step 1), making sure that you do everything correctly. Step 9: Restore your data. If you backed up on floppy, just restore them in order and reboot. If you backed up on a CTC tape drive, you must install the Cartridge Tape Utilities disk, reboot, recover your data, and reboot one last time. IF you didn't back up your data, then you're SOL. A note to those with XDC and SCSI drives - the maneuvers you have just completed only messed up the data on the 2 internal disk drives. Any data on your 3rd (and higher) drives should remain untouched. There is another way to do this whole thing without reloading the entire OS. It involves having a boot floppy with prtvtoc, fmthard, swap, and a few other files on it. You would have to make this before hand (explained in a different question). In this instance, you would only alter the partitions on the disk you added the new partition to. This, however, would force you to re-create and restore filesystems on the partition(s) you borrowed space from. For my time and money, it was easier (and less error-prone) to add the swap partition by reloading the Foundation disks. True Blue Gurus (TM) can experiment with the second method. Comments and criticisms welcome. Jeffrey L. Bromberger ------- System Manager ------- Tramway Unix Systems jeffrey@squid.tram.com Anywhere!{van-bc,limbic,icus}!tram!jeffrey ------------------------------------------------------------------------------ Subject: 3 How can I get X11 for the 3B2? ------------------------------------------------------------------------------ From: aj4640@dean1.usma.edu Robertson John MAJ at US Military Academy, West Point, N [Read the P.S. at the end of this message before attempting to ftp these files.] The X11 R4 distribution tape contains sources to run clients on a 3b1. Several of us have hacked those sources to enable clients to run on a 3b2. I wish I could offer the source patches directly but for various reasons, I can't. However, 3b2 users are more than welcome to have the clients, the libraries, the include files, and the pre-processor. This will get X-windows up on your 3b2 without the xdaemon stuff (as long as you have the Wollongong networking stuff.) With this stuff, you'll have a pile of ready-to-run clients as well as the tools needed to compile your own X11 applications. In addition to the default X11 R4 clients, bin.tar.Z also has a running copy of tgif, xdvi, xmahjongg [you'll need to do the fonts for your server. UTSL!], and lots of other neat stuff. The lib.tar.Z contains libX11.a, libXt.a, etc. In addition, the app-defaults for all the clients in bin.tar.Z are also here. include.tar.Z has all the include files. You'll need these if you want to compile your own stuff. cpp.tar.Z is a compiled version of the X11 distribution preprocessor. In this version, you'll need to define the symbol 3b2 before invocation. It will not gag on the big header files that many X applications use. The files can be obtained via anonymous ftp from euler.math.usma.edu. They are in pub/3b2. Other than unpaccking and installing the clients and lib stuff in the usual places, no other special work should be needed. I cannot offer any support for this stuff. Take it, hack it, and have fun. Even more, give the clients away to other suffering 3b2 users. It has made our 3b2's substantially easier to use. Jack P.S. The X11R4 clients for the 3B2 have been moved to Bradley University on erratic.bradley.edu in pub/3B2_X. If that system is down, you may want to also try ds3.bradley.edu, also in pub/3B2_X. ------------------------------------------------------------------------------ Subject: 4 How do I install a non AT&T SCSI drive on my 3B2? ------------------------------------------------------------------------------ From: geoff@ugc.uucp (Geoff Coleman) Installation of Third Party SCSI drive on AT&T 3B2 [This item covers adding a third party SCSI drive to a 3B2 only as additional partitions to the ones on the internal MFM disks. Another item in this FAQ discusses uses a SCSI disk for the root and swap partitions as that is a considerably more involved procedure.] 1. Hardware Addition The hardware installation is relatively simple. The SCSI address of the disk must be set via jumpers. If the disk being added is the first outside disk for the 3B2 then the you must use an "AT&T SCSI Connect Kit". 2. Telling the system about the disk After the disk has been physically attached the machine should be restarted. If the disk is one that is unknown to the 3B2 a message will appear on the console that there is an unknown scsi device "make" "model". The make and model information is important. Once the 3b2 is rebooted login as root and cd to /etc/scsi. At this point you should run ./edittbl -l to list all of the SCSI devices known to the system. Then insert a new entry into the device table with the .edittbl -i command. The first entry is the make and must be padded with spaces to 8 characters. The second entry is the model and must be padded to 16 characters with spaces. The number of lu's is one unless it is a bridge controller. At this point you should reboot the machine and there should be no unknown device error message on bootup. 3. Formatting the disk Once the system has been rebooted login as root and change the run level to single user mode and remount /usr if need be. At this point you need to cd to /usr/lib/scsi and edit the file tc.index. Add an entry for the new disk in the same manner as the other entries in this file. Make sure that the model number starts in column 9 and is padded out to 16 characters, if you receive an unable to open script file message on formatting the problem is most likely in this entry. At this point you can run the format program from either sysadm or the command line. After the format has finished reboot the system and the disk should be listed as a formatted disk. ------------------------------------------------------------------------------ Subject: 5 How do I prevent data overrun errors when using a high speed modem on an EPORTS card at 19.2K baud or higher? ------------------------------------------------------------------------------ The EPORTS board can easily handle 38.4K baud on an otherwise unloaded system, provided Hardware Flow Control is enabled. The hard part is keeping HFC enabled. Several solutions to this problem exist, but one that seems to work (and I use personally) is to have a daemon set HFC on open lines periodically, and have uugetty enable HFC on all logins. The second part is the trickier part. Elliot Dierksen suggests the following, which I have verified to work: From: ebd@fang.att.com (Elliot B Dierksen) Step 1: copy uugetty to some new name (I used epuugetty). Use some sort of binary editor to change the exec of '/bin/login' to '/bin/ephfc'. Step 2: compile ephfc. Here it is! I have had no problems with this at all, but your mileage may vary. No promises implied or intended. Even with cron entries to set HFC, I still have problems on occasion with dial outs. Inbound calls work great. I hope you all find this useful! ----------------cut here-------------------------------------- /* ephfc.c handle hardware flow control on EPORTS and then exec login This program sets hardware flow control on an EPORTS card in an AT&T 3B2 computer. Patch getty (or uugetty) to exec ephfc instead of login. 04/18/1992 - Elliot Dierksen (e.dierksen@att.com, elliot@alfred.oau.org) */ /* standard header files */ #include <stdio.h> #include <fcntl.h> #include <errno.h> #include <sys/ct_dep.h> #include <termio.h> /* EPORTS header files */ #include <sys/queue.h> /*#include <sys/ep_dep.h>*/ #include <sys/eppc.h> #include <sys/ep_lla.h> #define IN_FD 0 #define OUT_FD 1 main(argc,argv,envp) int argc; char **argv,**envp; { char *login_prog = "/bin/login"; struct etty ettyp; struct termio termiop; /* abort if ioctl read fails. this might happen this is not an EPORT */ if (ioctl(IN_FD,EP_GETA,&ettyp) == -1) { fprintf(stderr,"%s: ioctl(EP_GETA) failed(%d)\n",argv[0],errno); fflush(stderr); exit(6); } /* abort if ioctl read fails. No clue what might have gone wrong! */ if (ioctl(IN_FD,TCGETA,&termiop) == -1) { fprintf(stderr,"%s: ioctl(TCGETA) failed(%d)\n",argv[0],errno); fflush(stderr); exit(7); } /* turn off XON/XOFF */ termiop.c_iflag &= ~(IXON|IXOFF|IXANY); /* set regular ioctl values */ ioctl(OUT_FD,TCSETA,&termiop); /* set EPORTS values */ ioctl(OUT_FD,EP_HFC,0); /* reset arg[0] for login */ argv[0] = login_prog; /* exec login and hope for the best! */ execv(login_prog,argv); } ------------------------------------------------------------------------------ Subject: 6 What does the 'NOTICE: File Table Overflow' error mean? ------------------------------------------------------------------------------ From: v.hoang@att.com It means more files being opened than the limit you've set for the system. Edit /etc/master.d/kernel and bump up the values of NFILE, NINODE & NS5INODE (or something close to that), then cd /boot, mkboot -k KERNEL, touch /etc/system then reboot the system. ------------------------------------------------------------------------------ Subject: 7 How do I set up anonymous ftp? ------------------------------------------------------------------------------ From: rdc30@nmrdc1.nmrdc.nnmc.navy.mil (LCDR Michael E. Dobson) Subject: Anonymous ftp with WIN/TCP 3.0.x YES!! Contrary to the documentation for WIN/TCP 3.0.{0,1}, it is possible to set up anonymous ftp. The Bugs: note in the documentation about it not being fully implemented in this release seems to be just a documentation omission. I saw the method to use on a US military 3B2 Users Group mailing list. The missing parts are the creation of a dev directory in the root of the ftp account directory with null and tcp devices created with mknod, and the inclusion of the services file in the etc subdir along with group and passwd files. You of course need ls & pwd in bin and a pub tree. Below is the output of ls -lR in my ftp root as well as the passwd in ~ftp/etc/passwd. Try it out and see. total 5 drwxr-xr-x 2 root other 64 Jan 23 11:12 bin drwxr-xr-x 2 root other 64 Jan 23 11:09 dev drwxr-xr-x 2 root other 80 Jan 23 11:13 etc drwxr-xr-x 2 ftp sys 240 Jan 23 11:16 pub drwxr-xr-x 2 root other 64 Aug 28 20:01 shlib /usr3/ftp/bin: total 111 ---x--x--x 1 root other 35678 Jan 23 11:11 ls ---x--x--x 1 root other 19551 Jan 23 11:11 pwd /usr3/ftp/dev: total 0 crw-rw-rw- 1 root sys 63, 43 Aug 28 19:57 circ crw-rw-rw- 1 root sys 49, 2 Jan 23 11:09 null crw-rw-rw- 1 root sys 63, 38 Jan 23 11:09 tcp crw-rw-rw- 1 root sys 63, 36 Aug 28 19:56 udp /usr3/ftp/etc: total 4 -r--r--r-- 1 root other 336 Jan 23 11:12 group -r--r--r-- 1 root other 56 Jan 23 11:13 passwd -r--r--r-- 1 root other 884 Jan 23 11:12 services /usr3/ftp/pub: total 0 /usr2/ftp/shlib: total 211 -r-xr-xr-x 1 root other 66626 Aug 28 20:01 libc_s -r-xr-xr-x 1 root other 39859 Aug 28 20:01 libnsl_s Contents of ~/ftp/etc/passwd: ftp:x:13:1:Anonymous FTP Account:/usr3/ftp:/usr/bin/ftp -- Mike Dobson, Sys Admin for | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil nmrdc1.nmrdc.nnmc.navy.mil | UUCP: ...uunet!mimsy!nmrdc1!rdc30 AT&T 3B2/600G Sys V R 3.2.2 | BITNET: dobson@usuhsb or nrd0mxd@vmnmdsc WIN/TCP for 3B2 | MCI-Mail: 377-2719 or 0003772719@mcimail.com A special note from Steven M. Kilby <skilby@ucqais.cba.uc.edu> Anonymous FTP for the 400: Setting up an anonymous FTP login for the 3B2/400 differs slightly from the instructions in the FAQ. The FAQ instructions will work on 600's or 1000's. The only changes are in the directory setup. [As other people found the original anonymous FTP setup did not work at all without Steven M. Kilby's changes, I modified the directory structure above to reflect Steve's changes. -greg] Also: From: Kevin Darcy <kevin@cfctech.cfc.com> Also, you should probably make people aware that the exact minor numbers for all clone devices will vary from system to system, and to only use the ones displayed as a guide. For instance, my dev entries for circ, tcp & udp are crw-rw-rw- 1 root other 63, 66 Sep 10 1991 /dev/circ crw-rw-rw- 1 root other 63, 56 Sep 10 1991 /dev/tcp crw-rw-rw- 1 root other 63, 58 Sep 10 1991 /dev/udp which is somewhat different than what's shown above (cfctech's major numbers are higher than most folks', because we have run StarLAN, Datakit & WIN/TCP all simultaneously on the machine, in addition to everything on the release tape, and, at one point, even loaded X Windows on the box (!)). ------------------------------------------------------------------------------ Subject: 8 Is there a reposity of ftp-able 3B2 programs? ------------------------------------------------------------------------------ The following are some 3B2 ftp sites that I know of and what they contain: ames.arc.nasa.gov (128.102.18.3) Kyoto-Lisp, Pascal, Sendmail, citadel-bbs ds3.bradley.edu (136.176.5.79) X11R4, old gcc erratic.bradley.edu (136.176.5.253) X11R4, old gcc stasi.bradley.edu (136.176.5.121) xarchie, lpr/lpd And then there's... From: Jeffrey A. Thompson <jeffrey@rigel.econ.uga.edu> Here is a list of software I have compiled on my 3b2 (roscoe.msit.uga.edu) available via anonymous ftp. I have all the source too. 287172 Nov 19 13:37 bash* GNU's Bourne Again Shell 35137 Apr 5 1990 compress* 5959 Aug 22 20:55 culimit* Program to change the ulimit of a shell to 10 megabytes instead of 1 megabyte. 48615 Jan 25 11:10 gab* My own little talk program for up to 19 people ; uses shared memory and semaphores 174992 Aug 23 1990 kermit* The standard kermit. 60393 May 19 1990 rb* X/Y/Z modem 60393 May 19 1990 rx* 60393 May 19 1990 rz* 59254 May 19 1990 sb* 32546 Nov 6 08:17 ship* Zip's ship 59254 May 19 1990 sx* 59254 May 19 1990 sz* 35137 Apr 5 1990 uncompress* 61743 Nov 6 08:17 unzip* Unzip ; I love zip. It works on everything. and better compression than compress (average 10 to 30 percent better compression) 38784 Jun 22 1991 uudecode* 23781 Jun 22 1991 uuencode* 20844 Sep 7 17:51 uvapc* A standard pascal compiler 35137 Apr 5 1990 zcat* 75420 Nov 6 08:15 zip* Can produce pkzip compatible zips (-k opt) 35188 Nov 6 08:15 zipnote* 36904 Nov 6 08:15 zipsplit* Splits up a zip file into smaller zip files Great for copying stuff onto a floppy disk. --jat And then there's... From: Steven M. Kilby <kilby@ucqais.cba.uc.edu> Starting October 1 ucqais.cba.uc.edu will offer an anonymous login service specifically for 3B2 users. The anonymous login will contain software packages that have been ported to the 3B2, such as gcc, iscreen, lpr, X11, and many more! Most of the offerings will be binary, although I will include as many sources as I can. If there are any packages you would like to see available there, let me know! ------------------------------------------------------------------------------ Subject: 9 How do I run Unix from floppy (for example, to repair a damage hard drive file system)? ------------------------------------------------------------------------------ Running a Standalone Shell on a 3B2 Stephen J. Friedl [Edited by Gregory Gulik] April 25, 1988 NB: the procedures described here require substantial knowledge of UNIX and entail a significant risk of causing loss of data. The obvious disclaimers apply here, so use at your own risk. Please be careful. Introduction This document is an introduction to operating your 3B from a standalone /unix. Even with inoperable hard drives, it is possible to insert the boot floppy (Essential Utilities Disk 1), say some magic words, and receive a # prompt. At this point you can do major surgery on the failing machine, often recovering a drive previously thought to be lost. Our style is informal and we'll use lots of examples to illustrate the points at hand. We have been using standalone shells for quite some time and have learned a great deal; we hope to pass this information on to you. Please read this document carefully before trying the methods described here, and if possible have a wizard around when giving it a go. This can be dangerous business: as has been said before, it is a time where experience and informed courage count for much. Conventions Throughout this document, sample usage sessions will be shown indented, with user input in bold. To make it easier to distinguish between a multiuser UNIX shell and a standalone one, we will show multiuser UNIX's root prompt as ## and the standalone prompt as #. >>> Back up your boot disks b-> This cannot be emphasized enough. Your boot floppies are the key to your machine, and without them the machine is down. Why do you want a standalone /unix? The most compelling reason for a standalone shell is when the primary drive has gone down and must be recovered. While working from a standalone /unix is slow and tedious, it can often save an entire hard disk with minimal data loss. We have also used this standalone shell to repair a corrupt /etc/inittab, to fix /etc/passwd, to restore a /bin/login that had been removed, and to install new bootstraps on the hard drive. With a standalone boot disk in hand, a host of possibilities presents itself. What is on your boot disk? Before booting this floppy, take some time to explore its contents, as the disk has a filesystem on it that can be mounted and perused. To do this, insert a COPY of the Essential Utilities Floppy 1 (from now on, "the boot floppy") into the drive with a write-protect tab. Now, ## mount /dev/dsk/c0d0s5 /install -r Because boot floppies vary from release to release, it would be most helpful to simply get a listing of the contents of your particular boot floppy. Once finished, the floppy must be unmounted: ## cd / ## umount /dev/dsk/c0d0s5 "Open Sesame" To give standalone a try, first shut the machine down to firmware mode. Assuming the machine is now in firmware mode, put a copy of the boot disk into the drive. Note that some versions of the operating system (Sys V Release 2, at least) require that the boot floppy be write-enabled (i.e., no write-protect tab); it is this requirement that mandates multiple backups of the boot floppy. UNIX will be updating the disk while it runs -- the superblock, access times, etc. -- and if the machine crashes at the wrong time it simply will not boot again without an fsck. Be careful. Type in your firmware password and boot /unix from the floppy drive (Option 0, named `FD5') instead of the hard drive (Option 1, named `HD30' or `HD72'). It can take several minutes for UNIX to boot, but when it does, the familiar menu will be displayed: 1) Full Restore 2) Partial Restore 3) Dual-Disk Upgrade 4) Release Upgrade Selection? [1, 2, 3, 4, quit, help] At this point, type the phrase magic mode The system recognizes this special option and responds: Poof! Selection? [1, 2, 3, 4, quit, help, shell, copy] Notice the new options? Now type shell, then RETURN, and you will be greeted with the familiar # prompt. You are now running a standalone shell on the floppy. A few reminders here: a floppy filesystem is not able to hold much data, and many common utilities are unavailable. When dealing with the standalone shell, one must learn alternatives to these utilities. For example, echo * can replace ls(1), and cat > file can serve as a poor replacement to ed(1). One must become remarkably resourceful when working in an environment as restricted as this. We will see later how we can enhance this confined environment with additional tools. Standalone devices The floppy's /dev directory contains a host of entries, some of them referring to partitions on the hard drive. While a particular partition may have several names, we generally use the following devices to refer to the hard disk: Partition What it is (on the hard disk) ----------- ----------------------------- /dev/idsk00 / filesystem /dev/idsk01 swap area /dev/idsk02 /usr filesystem /dev/idsk06 the entire disk /dev/idsk07 boot partition /dev/idsk08 optional filesystem (/u or /usr2) Mounting the hard drive To gain access to the primary hard drive, partitions of interest are mounted onto directories on the floppy. The device names are selected from the table in the previous section. Before mounting a partition, we recommend running the filesystem check fsck(1m) first. The mount command will fail if the the superblock is not in order -- this is often the case after a crash. In addition, it gives a convenient verification of the device status and the the filesystem's name and volume. # /etc/fsck /dev/idsk00 While some errors are to be expected while checking the root partition, a total failure is a very serious error. Our experience defines "total failure" as an indication by fsck that it cannot find any possible traces of a filesystem. In particular, "CAN NOT READ: BLK 1" is one of the more ominous messages we have seen. Once fsck grants the filesystem a clean bill of health, it is ready to be mounted. Rather than take up space for a handful of common commands, AT&T has rolled several of them into one: fsys. It is undocumented and appears to only be used on the boot floppy. Some versions of the boot disk do contain the mount and umount programs and those can be used instead of fsys. Fsys takes a handful of options, not all of which are interesting to us in standalone mode. Used in the install scripts for a handful of filesystem-related duties, we will use it simply as a replacement for mount(1m) and umount(1m). To mount the hard disk's root filesystem onto the floppy's /install directory, do: # fsys -m /install /dev/idsk00 Fsys will complain on an error, and this brings us to a serious bug in this program: if either the mount directory or the partition's device name are invalid for any reason, the error message will always point to the partition device name. This can be, to put it lightly, "misleading". With the hard drive's root filesystem mounted on /install, it is now fully part of the standard directory tree. While the floppy has no editor or many of the helpful tools, the root partition does, and these can be exploited. When beginning an extended standalone session on the primary drive, we have found it helpful to extend the shell's search path: # PATH=/install/bin:/install/etc:$PATH ; export PATH Now the familiar ls, ed, (but not vi) and many other commands are available. Since they will be loaded from the hard drive, execution is much faster. As an example, assume that the root password has been forgotten and the machine is basically closed. The solution suggested by AT&T's documentation (in the System Administration Utilities Guide) is to do a partial restore. The difficulty with this approach is that many important system files -- /etc/passwd, /etc/inittab, /etc/gettydefs, and others -- are overwritten in the process. Even with a full backup, this can be an unpleasant undertaking. An alternate approach will use the standalone shell. The general strategy is to mount the hard drive, edit the password file, and boot multiuser UNIX. The full procedure is: (boot standalone /unix) # fsck /dev/idsk00 # fsys -m /install /dev/idsk00 # /install/bin/ed /install/etc/passwd (edit the file in the standard way) w q # fsys -u /dev/idsk00 At this point, the root drive is now unmounted and the system may be rebooted. Normally you can just type exit at the shell prompt and you will be returned to the monitor and asked what program to boot. If that doesn't work on your version, try: # sync # sync # /etc/uadmin 2 2 Uadmin(1m) is documented in the manual (you must also refer to the uadmin(2) manual page) -- the above does a normal return to the monitor (i.e., firmware). WARNING: uadmin(1m) is available from full UNIX as well but is very dangerous. Use it with extreme caution and only if you really know what uadmin does. Making a standalone boot disk ================== WARNING ================== Only do this on backup copies of the disks, NEVER to the main Essential Utilities Disk. ================== WARNING ================== The Essential Utilities Disk 1 contains many files needed by the automatic restore/upgrade procedures, but for standalone work, many are not needed. After working with these disk for some time, we were able to narrow down what is helpful to have on the disk and what is not. The following procedure (run from multiuser mode, signified by the ## prompt) will convert an Essential Utilities disk to a standalone boot disk. (from hard disk UNIX) ## fsck /dev/dsk/c0d0s5 ## mount /dev/dsk/c0d0s5 /install ## cd /install/inst/bin ## mv fsys pdinfo swap ttyset ../../bin ## cd /install ## /bin/rm -rf inst ## cp /bin/ed /install/bin ## cp /etc/fsdb /install/etc ## cat > /install/inittab is:s:initdefault: sh:s:respawn:/bin/sh < /dev/console > /dev/console 2>&1 ^D ## cd / ## umount /dev/dsk/c0d0s5 While there may be other files on this floppy that are not needed, we have operated on the principle of least customization. It has been our experience that keeping the procedure simple allows it to be done on-the-fly (say, at a customer site) and minimizes the exploration required when a new operating system disk is released. In addition, it is not wise to pack the disk too tightly. The editor requires adequate space under /tmp, so an almost-full disk precludes editing all but the smallest files; this applies whether the file being edited resides on the hard drive or the floppy. Once this is done, the new disk will come up in standalone mode without the need for magic mode. In addition ed(1) and fsdb(1m) are available. The other tools mentioned (pdinfo, swap, ttyset) are helpful but not required by the basic procedures. It has been our experience that any version (SVR2, SVR3) of boot disk can be used with any version of hard disk UNIX without difficulty for doing simple operations such a performing filesystem checks or editing /etc/passwd. For more complex operations, such as repartitioning the hard drive or restoring the bootstraps, higher version compatibility is required. Security Considerations It should be apparent that knowledge of these standalone methods is tremendously powerful. In addition to being able to rescue a foundering machine, an unrestricted path to root has been provided as well. While all the standard rules about physical security of the computer apply here, an additional step may be taken to thwart a would-be interloper. The responsible system administrator of a machine in a hostile environment will generally change the computer's firmware password. This magic word is required before the monitor on the 3B2 motherboard will boot from a floppy, and lack of this password prevents a malicious user from simply pulling the power plug to enter firmware mode. In addition to changing the firmware password, the floppy key floppy should itself be secured. When the computer is restarted with this disk in the drive, it will clear the non-volatile RAM (NVRAM) and restore the default parameters. Because the firmware password is included in these "default parameters", this disk should be kept out of non-trusted hands. Conclusion We solicit bug reports, comments, and suggestions on this document. Please direct them to: Stephen J. Friedl Software Consultant 1891 Running Branch Way Tustin, CA 92680 +1 714 544-6561 voice +1 714 838-0099 fax Internet: friedl@mtndew.Tustin.CA.US Usenet: {backbones}!uunet!mtndew!friedl ------------------------------------------------------------------------------ Subject: 10 What is/was the 3B Journal? ------------------------------------------------------------------------------ The _3B Journal_ was put out sporadically by Owens-Laing Publications for several years in the late 1980s, and I used to be the technical editor. The magazine dealt with the 3B1 and 3B2 platforms, and the content varied from very markety-oriented to quite technical (the latter usually written by me). The publisher never seemed to get a handle on the business end of running a magazine, and I've heard nothing past the fourth quarter, 1989 issue. The current phones are disconnected, and I have NO information on subscriptions or anything like that. -- Stephen Friedl friedl@mtndew.Tustin.CA.US 3/12/1992 ------------------------------------------------------------------------------ Subject: 11 What are the various models of 3B2s and their differences? ------------------------------------------------------------------------------ [I'm putting this together mostly from memory and from discussions with other people. Please feel free to make corrections.] Some corrections/additions provided by Andrew D. Hay <adh@petrel.att.com>, Paul S. Sawyer <paul@unhtel.unh.edu>, Mike Crom <crom@vogon.att.com>, David Beneman <..!uunet!tacoma!dcb>, Paul Rak <pjr@emo.com>, Kevin Darcy <kevin@cfctech.cfc.com> The 3B2 family of consists of the following models: 3B2/300 Processor: WE32000, 8 MHz almost 1 MIPS Memory: Supports a maximum of 4 MB of RAM using two half height 2 MB memory cards. Slots: 4 standard slots. Features: MFM disk controller on motherboard 1 internal full-height drive bay 1 720 K floppy drive 3B2/310 Processor: WE32100, 10MHz (supports optional MAU) 1.1 MIPS Memory: Supports a maximum of 4 MB of RAM using two half height 2 MB memory cards. Slots: 4 standard slots. Features: MFM disk controller on motherboard 1 internal full-height drive bay 1 720 K floppy drive 3B2/400 Processor: WE32100, 10MHz (supports optional MAU) 1.1 MIPS Memory: Supports a maximum of 4 MB of RAM using either two half height or full height 2 MB memory cards. Slots: 12 standard slots. Features: MFM disk controller on motherboard 2 internal full-height drive bays 1 720 K floppy drive 1 23 MB cartridge tape drive 3B2/500 Processor: WE32100, 18MHz 2.1 MIPS 2.6 MIPS w/VCache 4.0 MIPS w/PE Memory: 2 - 4MB cards max Slots: 7 I/O + 4 system (MEM0, MEM1, Vcache, BUB0) There is also BUB1, but it is listed as unusable without the 22MHz upgrade. Features: SCSI disks Up to 1 additional PE 3B2/522 Processor: WE32200, 22MHz 5.0 MIPS Memory: 2 - 16MB cards max Slots: 7 I/O + 4 system (MEM0, MEM1, Vcache, BUB0, BUB1) Features: SCSI disks Field upgraded 3B2/500 to same processor as 3B2/700 Up to 1 additional PE 3B2/600 (aka 3B2/1000-60) Processor: WE32100, 18MHz 2.6 MIPS 4.0 MIPS w/PE Memory: 4 - 4MB cards max Slots: 12 I/O + 12 system Features: SCSI disks 120MB SCSI tape Up to 3 additional PEs 3B2/700, 3B2/622 (aka 3B2/1000-70) Processor: WE32200, 22MHz 4KB PCache 5.0 MIPS 7.5 MIPS w/1 PE 8.5 MIPS w/2 PEs 9.0 MIPS w/3 PEs Memory: 4 - 16MB cards max Slots: 12 I/O + 12 system Features: SCSI disks 120MB SCSI tape Up to 3 PEs The 3B2/622 is a field upgrade for the 3B2/600 3B2/1000, 3B2/600G (aka 3B2/1000-80) Processor: WE32200, 24MHz 9 MIPS 16 MIPS w/3 MPEs Memory: 4 - 16MB cards max Slots: 12 I/O + 12 system Features: SCSI disks Up to 3 MPEs 3B2/1050 R3 Processor: MIPS R3000A, 33MHz Memory: 16MB - 32MB Slots: N/A Features: N/A 3B2/1100 R3 Processor: MIPS R3000A, 33MHz Memory: 32MB - 64MB Slots: N/A Features: N/A 3B15 Processor: WE32100 (standard MAU) (?) 2 MIPS (?) Memory: 16 MB (?) Slots: Features: Standard 9-Track tape drive Uses 8 inch SCSI drives NOTE: Not all 3B15s have SCSI. Some models were converted from 3B5s and have 8 inch FSD drives (maximum 8, 160 MB or 340 MB). Then there are the Lark II drives. The non-SCSI tape bus can take 1-4 drives. The 3B5 becomes a 3B15 by a change of 2 (??) boards, and most importantly, a new name sticker! 3B4000 Processor: WE32100 from 3B15 as control processor 1 to 6 3B2/600's as attached processors Memory: Slots: Features: Supports tons of SCSI disk 3B2 PERIPHERALS Name Device Code Description ---- ------ ----------- SBD 0x0001 System motherboard NI 0x0002 10base5 ethernet card SW Name Function ------- -------- NI TCP/IP NAU StarLAN 10 PORTS 0x0003 Ports card. 4 serial, 1 parallel. (includes HPP) CTC 0x0005 Cartridge tape controller. 23 MB NAU 0x0006 Network access unit. 1 MB STARLAN SPSC 0x0045 X.25 adapter SCSI 0x0100 SCSI host adapter AIC 0x0101 Alarm interface circuit EPORTS 0x0102 Extended ports. 8 serial ports ISC 0x0201 Intelligent serial controller SW Name Function ------- -------- SNABSC 3270 Emulation,RJE (old) (Bisync/SNA) SI 3270 Emulation,RJE,LU6.2 (Bisync/SNA) X25 X.25 Communication XDC 0x0204 External disk controller for 2 more MFM drives FXM 0x0215 Fiber eXpansion Module DKIT 0x0308 "Datakit" fiber-optic card (connect to datakit/ISN switch) MAU 0xFD00 Math accelerator unit VCACHE 0xFE00 Extended memory cache (3B2/600 and higher, exc. 3B2/1000-80) MPB 0xFF00 Multiprocessor board (3B2/600 and higher, exc. 3B2/1000-80) MPB 0xFF01 Multiprocessor board (3B2/1000-80 only) ------------------------------------------------------------------------------ Subject: 12 How do I build GCC on the 3B2? ------------------------------------------------------------------------------ John L. Wehle ported GCC to the WE32000 series processor, and it first appeared in release 2.2 of GCC. To build the GCC 2.3.2 release on the 3B2, download the latest GCC distribution and allocate at least 40 MB of disk space to do the build. Follow the directions in the INSTALL file. The following are some notes that will make the install go smoother. If you are already using GCC 2.2.2, use that and follow the directions exactly as listed in the INSTALL file. It's by far the easiest way to go. First of all, older versions of /lib/cpp are not capable of processing one of the source files. I recommend building the distribution until the GNU cpp is done. Then, temporarily replace your /lib/cpp with the GNU version, and add the following flag to CFLAGS: CFLAGS = -U__STDC__ When stage1 is complete, you could remove the -U__STDC__ flag and restore your original cpp. Basically, the steps are as follows: $ configure --target=3b2 $ make LANGUAGES=c $ make stage1 $ make LANGUAGES=c CC=stage1/gcc CFLAGS="-Bstage1/ -g" [It is important to note that due to a bug in the AT&T compiler, the optimizer doesn't get compiled correctly at this point.] $ make stage2 $ make CC=stage2/gcc CFLAGS="-Bstage2/ -g -O" [Some people still have problems with the optimizer at this point. If you do, just do not use the -O flag when compiling GCC. The symptom you will experience that tells you the -O flag should be removed is the compilation of cccp.c will take a VERY long time. Kill the compile and restart without the -O.] $ make stage3 $ make CC=stage3/gcc CFLAGS="-Bstage3/ -g -O" To verify everything built correctly: $ for file in *.o; do > tail +10c $file > foo1 > tail +10c stage3/$file > foo2 > cmp foo1 foo2 || echo $file > done Then, to install the distribution: $ make CC=stage3/gcc CFLAGS="-Bstage3/ -g -O" install Good luck! [These notes are a combination of my own experiences with building the GCC compiler on a 3B2/400 and discussions with John Wehle, the author of the port.] NOTES: The GCC binaries available on several anonymous FTP sites will not work with certain version of the standard C compiler. It appears to be some sort of linker problem. I may have a fix for it. Contact me via E-mail if you fall into this category. Speaking of linker problems, GCC 2.2.2 will not work all that well with the standard C shared library -lc_s. The workaround for this is to compile your program with GCC, but the link will fail. When it does, use something like the following to do the link stage: $ cc -O -L/usr/local/lib/gcc-lib/we32k-att-sysv/2.2.2 program.o \ -o program -lgcc -lc_s This way, you will not only get fast binaries, but small ones as well. This problem has been corrected in 2.3.2 (Thanks Stallman!) You may need to raise your ULIMIT to compile the g++ compiler as the executable is larger than 1 MB. ------------------------------------------------------------------------------ Subject: 13 What is the NVRAM SANITY FAILURE? ------------------------------------------------------------------------------ The full error message resembles the following: FW ERROR 1-01: NVRAM SANITY FAILURE DEFAULT VALUES ASSUMED IF REPEATED, CHECK THE BATTERY The 3B2 stores information such as the time of day clock and machine name in non-volatile memory. The memory is backed up by a Lithium battery, that does die after a few years. The battery is normally located in the right side of the case, near the cards, and connected to the motherboard under the card in slot 2. Replacing the battery almost always requires the complete removal of the card cage. Replacement batteries can be found at some electronics stores. I won't list exact specifications because I have seen 3 different types of batteries so far, and there may be more. Your best bet is to just buy another batter with the exact same voltage and modify the connector to fit. ------------------------------------------------------------------------------ Subject: 14 Is there an implementation of SLIP for the 3B2? ------------------------------------------------------------------------------ Rumor has it that there was one written by Wollongong, but AT&T purchased exclusive marketing rights to WIN TCP/IP for the 3B2, but chose NOT to include SLIP. There is the NOS (KA9Q) package that supposedly provides SLIP capabilities, but I have not tried it and don't know if it'll run on a 3B2. ------------------------------------------------------------------------------ Subject: 15 What are the known bugs in the Wollongong WIN TCP software? ------------------------------------------------------------------------------ From: Steven M. Kilby <skilby@ucqais.cba.uc.edu> rexecd: The rexecd released with WIN TCP for the 3B2 has the following bug. This bug has been verified on a 400 with TCP 3.0.1 and 3.2. When executing a command using the rexecd daemon, the gid of the user is set and left at root. This is very apparent when executing a command that creates a shell, such as XTerm. The only available solutions at present are to rewrite the daemon yourself, or.... not run it. The problem has been reported to CERT. ------------------------------------------------------------------------------ Subject: 16 Is there an implementation of NFS for the 3B2? ------------------------------------------------------------------------------ The person to contact about 3B2 software is Kristine Schneider [708-979-1017]. I called her and obtained the following information about NFS: Latest Versions: 1.3 Requires: System V Rel 3.2.1 or 3.2.3, WIN/TCP 3.2 or higher Product Code: C274-0NB3-000 List Price: $1295.00 This package is for the WE versions of the 3B2. NFS comes bundled with SVR4 for RISC-based 3B2's. TCP/IP on the other hand, does not and has to be purchased separately. -- Gregory A. Gulik Call Gagme, a public access greg@serveme.chi.il.us UNIX system at 312-282-8606 || gulik@rtsg.mot.com For information, drop a note to info@gagme.chi.il.us Gagme offers service without an "attitude" ------------------------------------------------------------------------------- -- USPS: The Consultants' Exchange, PO Box 12100, Santa Ana, CA 92712 EMAIL: larry@mtndew.com or root@conexch.uucp or uunet!usa2002!conexch!root TELE: (714) 842-6348; (714) 842-5851: Public guest & bbs logins UUCP: conexch Any ACU 9600 17148426348 ogin:-""-ogin:-""-ogin: nuucp