home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / 3b2-faq / part1 next >
Encoding:
Internet Message Format  |  1994-09-29  |  67.7 KB

  1. Path: bloom-beacon.mit.edu!grapevine.lcs.mit.edu!olivea!charnel.ecst.csuchico.edu!nic-nac.CSU.net!usc!elroy.jpl.nasa.gov!decwrl!netcomsv!!not-for-mail
  2. From: friedl@mtndew.com (Stephen J. Friedl)
  3. Newsgroups: comp.sys.att,news.answers,comp.answers
  4. Subject: AT&T 3B2 Frequently Asked Questions - Part 1/2
  5. Supersedes: <3B201-faq_940504102234@gagme.wwa.com>
  6. Followup-To: comp.sys.att
  7. Date: 28 Sep 1994 06:30:11 -0700
  8. Organization: Software Consulting Central
  9. Lines: 1881
  10. Approved: news-answers-request@MIT.Edu
  11. Distribution: world
  12. Message-ID: <3B201-faq_940928063009@mtndew.com>
  13. NNTP-Posting-Host: inside.mtndew.com
  14. Xref: bloom-beacon.mit.edu comp.sys.att:3654 news.answers:26449 comp.answers:7488
  15.  
  16. Archive-name: 3b2-faq/part1
  17.  
  18.               AT&T 3B2 FREQUENTLY ASKED QUESTIONS
  19.  
  20. This article contains the answers to many Frequently Asked Questions
  21. (FAQ) often posed to the net. It is posted because the same questions
  22. pop up time after time. This will hopefully help out by not having
  23. these questions posted over and over, and help new users know what
  24. questions there are to ask in the first place! 8^)
  25.  
  26. This article includes answers to the following questions.  Much of the
  27. information included in this article is also compatible with the 3B15
  28. series of WE32000 series based computers.
  29.  
  30. This FAQ originally constructed and maintained by Gregory Gulik, now
  31. administered by the 3B2-kind-of-guy, Stephen Friedl (friedl@mtndew.com).
  32.  
  33. First, the questions:
  34.  
  35. Subject:  0 SPECIAL NOTE
  36. Subject:  1 How do I install a second ST-506 drive on my 3B2?
  37. Subject:  2 How do I create a second swap partition?
  38. Subject:  3 How can I get X11 for the 3B2?
  39. Subject:  4 How do I install a non AT&T SCSI drive on my 3B2?
  40. Subject:  5 How do I prevent data overrun errors when using a high
  41.             speed modem on an EPORTS card at 19.2K baud or higher?
  42. Subject:  6 What does the 'NOTICE: File Table Overflow' error mean?
  43. Subject:  7 How do I set up anonymous ftp?
  44. Subject:  8 Is there a reposity of ftp-able 3B2 programs?
  45. Subject:  9 How do I run Unix from floppy (for example, to repair a damage
  46.             hard drive file system)?
  47. Subject: 10 What is/was the 3B Journal?
  48. Subject: 11 What are the various models of 3B2s and their differences?
  49. Subject: 12 How do I build GCC on the 3B2?
  50. Subject: 13 What is the NVRAM SANITY FAILURE?
  51. Subject: 14 Is there an implementation of SLIP for the 3B2?
  52. Subject: 15 What are the known bugs in the Wollongong WIN TCP software?
  53. Subject: 16 Is there an implementation of NFS for the 3B2?
  54. Subject: 17 What are the pinouts of those phone-like serial connectors?
  55. Subject: 18 What is the u3b. newsgroup hierarchy?
  56. Subject: 19 What is the proper way to rebuild the kernel after tuning
  57.         kernel parameters?
  58. Subject: 20 Which GNU packages DON'T run on the 3B2?
  59. Subject: 21 How do I put a root and/or swap partition on a SCSI drive
  60.         on a 3B2/300|310|400?
  61. Subject: 22 How do I take a crash dump?
  62. Subject: 23 Why do I get "Host is unreachable" when trying to connect
  63.         to a host on the Internet?
  64. Subject: 24 How do I boost the speed of my 3B2/310 or /400?
  65.  
  66. Now, the answers:
  67.  
  68.  
  69. ------------------------------------------------------------------------------
  70. Subject:  0 SPECIAL NOTE
  71. ------------------------------------------------------------------------------
  72.  
  73. If you are going to be at all serious about the 3B2, and especially if
  74. you are relying on yourself for maintenance, the first thing you want
  75. to do is obtain the AT&T 3B2 Computer Maintenance Manual.
  76.  
  77. It contains diagrams of all 3B2 computers up to the 3B2/600, parts
  78. lists, breakdown procedures, troubleshooting information, and sources
  79. of additional documentation.
  80.  
  81. In addition, it contains the "3B2 Computer Maintenance Utilities"
  82. diskette called "idtools" (formerly known as "devtools").  This floppy
  83. is bootable, and once running, the following options are available:
  84.  
  85.         > format floppy diskettes
  86.         > format hard disk drives
  87.         > verifies hard disk format
  88.         > disk-to-disk high speed copies
  89.         > disk-to-disk copy by sectors
  90.         > disk-to-memory copies
  91.         > defect table builder
  92.         > writes sanity track
  93.         > change default boot information
  94.  
  95. While some of these options are also available from UNIX, all the
  96. utilities here can be run on a machine with a damaged (or missing) hard
  97. disk, often allowing the drive to be repaired that is otherwise
  98. unbootable.
  99.  
  100. This manual and disk can be ordered from the AT&T Customer Information
  101. Center in Indianapolis, IN.  It has select code 305-395, and at press
  102. time it sold for $130.  The AT&T CuIC can be reached at:
  103.  
  104.     (800) 432-6600    Continental US
  105.     (317) 322-6556    elsewhere
  106.  
  107. The CuIC takes phone orders with a credit card, and with a purchase
  108. order for qualifying companies.  They have many other UNIX-related
  109. books as well, so be sure to ask for their free "AT&T Documentation
  110. Guide", select code 000-011.
  111.  
  112. ------------------------------------------------------------------------------
  113. Subject:  1 How do I install a second ST-506 drive on my 3B2?
  114. ------------------------------------------------------------------------------
  115.  
  116. Copyright 1989 by Owens-Laing Publications.
  117.  
  118. Title:  Disk Expansion on the 3B2
  119. Author: Stephen Friedl (friedl@mtndew.com)
  120. Issue:  3B Journal, 4Q 1989
  121. [Edited by Gregory Gulik]
  122.  
  123. [ conventions are:  *bold* and _italics_ ]
  124.  
  125.  Introduction
  126.  ------------
  127.  
  128. The 3B2/400 family (/300, /310 and /400) computers use standard MFM
  129. disk drives, and it is possible to add or replace these drives yourself
  130. -- in this article we show you how to do this.
  131.  
  132. The 3B2/500 and larger machines all have SCSI (Small Computer Systems
  133. Interface) disk drives, so these instructions do not apply to them.
  134. For the duration of this article, "3B2" means the 3B2/400 and below,
  135. and in the case where there are differences among these included models
  136. we will mention them.
  137.  
  138. Before doing any drive replacement, you must obtain the _3B2 Computer
  139. Maintenance Reference Manual_ from AT&T.  This document contains quite
  140. a bit of useful information about your 3B2 hardware, and it is helpful
  141. in its own right.  What makes it so special is the "idtools" diskette
  142. that comes with it.  This floppy disk contains numerous utilities that
  143. will help you diagnose and troubleshoot your computer, as well as the
  144. disk formatting tools we need for our expansion project.
  145.  
  146.  What we don't tell you
  147.  ----------------------
  148.  
  149. This is a fairly technical topic, and it relies on substantial
  150. knowledge of UNIX system administration.  Those steps directly related
  151. to the formatting operation are covered here, but others such as backup
  152. and restore from tape, disk space allocation, and rebooting the machine
  153. are prerequisite knowledge.  AT&T's sysadm documentation covers a great
  154. deal of it, but if these things are new to you, perhaps you're not
  155. ready to give this a go just yet.
  156.  
  157. Please keep in mind that if this is not done correctly (especially the
  158. backups), you could lost most or all of your computer's data in a very
  159. short time.  You must have at least one full, verified backup of all
  160. filesystems, with _two_ backups being safer.  In addition, it is a good
  161. idea to try this during an off time when you can afford to be down for
  162. while if things don't go so well.
  163.  
  164. Finally, we have tried to present this information as accurately and
  165. clearly as we can, but we cannot guarantee that there are no bugs.
  166. Check everything, verify steps with the manual, and ask a local wizard
  167. if you get stuck.  Of course, you undertake this procedure at your own
  168. risk.
  169.  
  170.  Selecting a drive
  171.  -----------------
  172.  
  173. There are many drives on the market that are satisfactory, and we
  174. present some guidelines here for selecting one.  We have our favorites,
  175. but most available ST-506 drives can be used in the 3B2.  Note that
  176. these are suggestions only, not endorsements or guarantees of
  177. compatibility.
  178.  
  179. The first restriction is that the idtools software will not format more
  180. than 1024 cylinders in a single drive, and a drive with more will
  181. simply have the excess cylinders ignored.  This is an unfortunate but
  182. unavoidable waste of disk space, giving us a practical limit of about
  183. 135Mbyte.  (15 heads x 1024 cyls x 18 blks/track x 512 bytes/block).
  184.  
  185. Most of the drives found in the original 3B2 are made by Control Data
  186. (or their subsidiary, Imprimis), and these Wren II drives are of
  187. excellent quality, and they represent a very safe route.  These drives
  188. are available with formatted capacities of 30 and 72 megabytes, and
  189. they have an average access time of about 28 msec.  Other brands known
  190. to work include Maxtor, Miniscribe, Priam, Micropolis and others.  Some
  191. of these drives have more than 1024 cylinders which allows them to be
  192. used, but at less than their advertised capacity.
  193.  
  194.  Disk types and the Equipped Device Table
  195.  ----------------------------------------
  196.  
  197. Each drive in the 3B2 is formatted with a _disk type_, which is a small
  198. number that identifies the drive to the machine.  The disk type indexes
  199. into a table of drive information, and this table is part of the
  200. /dgn/edt_data file.  This file is used to fill the Equipped Device
  201. Table, a list of currently-available hardware devices maintained by the
  202. firmware.  Part of this list, the _subdevice table_, describes the
  203. possible hard disk drives.
  204.  
  205.  Getting started
  206.  ---------------
  207.  
  208. Now that the formatting tools have arrived and a drive has been
  209. obtained, we are ready to do the installation.  It is at this point
  210. that a full backup of the entire system is in order and to review the
  211. relevant portions of the Maintenance Manual.
  212.  
  213. After backing up the current drives, shut down the machine, turn off
  214. the power, and remove the power plug.  Open the case, note the current
  215. configuration of the drive cables, and remove them along with the power
  216. connectors.
  217.  
  218. Select "drive 0" on the drive select jumpers, insert/enable the
  219. terminating resistor, and place the drive back in the cage.  Connect
  220. drive zero's data cable (the thin ribbon cable), the last connector on
  221. the wide control cable, and the power cable to the rear of the drive.
  222. Pay particular attention to pin one orientation, and insure that all
  223. connections are snug.
  224.  
  225. At this point you are ready to turn on the machine.  Plug in the 3B2
  226. power cable and turn the switch to "ON".  The console should show a
  227. SELF CHECK, followed shortly by
  228.  
  229.     FW ERROR 1-02: DISK SANITY FAILURE
  230.                EXECUTION HALTED
  231.  
  232.     SYSTEM FAILURE: CONSULT YOUR SYSTEM ADMINISTRATION UTILITIES GUIDE
  233.  
  234. This ominous message is actually expected, and it just means that the
  235. disk drive is not formatted yet.  At this point, type your current
  236. firmware password (usually "mcp") followed by RETURN, and you will be
  237. presented with the normal firmware menu.
  238.  
  239. At this point you should boot "/idtools" from the floppy drive (load
  240. device 0, FD5).  Once booted, idtools displays an informational message
  241. and asks that RETURN be hit.
  242.  
  243. Note that this entire process is covered in Appendix B of the
  244. Maintenance Reference Manual, and we strongly recommend that you review
  245. sections
  246.  
  247.     Hard Disk Formatter (B-8),
  248.     Defect Table Builder (B-33), and
  249.     Writing Sanity Track (B-47)
  250.  
  251. plus the introduction before continuing.
  252.  
  253.  Running Idtools
  254.  ---------------
  255.  
  256. At the first menu, "formhard" should be entered.  It will ask which disk
  257. should be formatted, and the proper response is zero in most cases.  If
  258. you are doing this procedure on a machine with two drives installed, be
  259. _very_ careful when answering this question.
  260.  
  261. Next, you are asked for drive configuration information.  You must
  262. enter the drive type (from a previous section) plus the drive
  263. dimensions, and the following table summarizes several models we know
  264. about.  If your drive is not shown, consult your vendor documentation
  265. for this information.
  266.  
  267. Drive type    drv id    cyls trk/cyl sec/trk byte/cyl     abbrev
  268. --------------- ------    ---- ------- ------- --------      ------
  269. Wren II 30MB       3     697     5    18    512       HD30
  270. Wren II 72MB       5     925     9    18    512       HD72
  271. Fujitsu M2243AS       8     754    11      18      512       HD72C
  272. Micropolis 1325    5    1024     8      18      512       HD72
  273. Maxtor 1140       4*     918=    15    18    512       HD120
  274. Maxtor 1190      11    1224+   15    18    512       HD135
  275. Miniscribe XXXX    4*
  276. Priam XXXX
  277.  
  278. * selected by user
  279. + can only use 1024 cylinders on this drive
  280. = can usually be formatted out to 1024 cylinders, even though it is
  281.   actually capable of 1224 cylinders, like the 1190.
  282.  
  283. Note that "tracks/cylinder" means "heads", and the sectors/track and
  284. bytes/cylinder values the same for all drives.  The drive ID is shown
  285. as 4 for high-capacity drives, and it assumes that this number was
  286. inserted into the Equipped Device Table subdevice listing.
  287.  
  288. In the following examples, user responses are in *bold*, and the drive
  289. shown is a Maxtor 1140.  Note that the default entries shown may vary
  290. from machine to machine.
  291.  
  292.     Format which disk [ 0 or 1 ] (0)?  *0*
  293.  
  294.     Drive id: 3- ? *4*
  295.     Number of cylinders: 687 - ?  *918*
  296.     Numbers tracks/cyl: 5 - ?  *15*
  297.     Number sectors/track: 18 - ? *18*
  298.     Number bytes/sector: 512 - ? *512*
  299.  
  300. Once these values have been entered, idtools shows where it will place
  301. various housekeeping areas on the disk, almost all stored on the first
  302. two cylinders.  You need not concern yourself with the specific values
  303. printed.
  304.  
  305.  Defect Mapping
  306.  --------------
  307.  
  308. The bad block listing (with various alternate names, such as "Flag
  309. Track Log") is usually found on a sticker on top of the drive.  To
  310. simplify data entry, it is a good idea to photocopy this sticker while
  311. it is on the drive, because later the drive might not be in such a
  312. comfortable reading position (especially if it is in a drive cage).
  313.  
  314. The first prompt in this section asks if the backup defect table should
  315. be modified.  A formatted drive normally has two copies of the defect
  316. table on disk in case one is lost, but a blank drive has no such
  317. table.  Answering "yes" to this question means that the data you enter
  318. here is stored in both places.
  319.  
  320. To enter the defects, enter "new" when asked, then "bc" for the type of
  321. defect byte count.  Then, for each bad sector, enter the cylinder
  322. number, the head number, and the byte count, all separated by spaces.
  323. This "byte count" field is often shown on the disk label as "BFIND"
  324. (bytes from index) or "BCAI" (byte count after index), and it is
  325. distinct from the sector number.  Most entries have a block length of
  326. one, but if the label shows more than this then it must be the fourth
  327. field on the line.
  328.  
  329. An entry of "q" terminates the input, and displays the entire list of
  330. blocks entered.  It is vital that this list be checked completely, and
  331. edits made if necessary.  An entry of just a RETURN accepts the current
  332. list and moves onto the next prompt.
  333.  
  334.                Format entire disk - type 1
  335.               Format single track - type 2
  336.     Format from selected track to end - type 3
  337.  
  338.     Select type of format [1, 2, or 3] (1) ?
  339.  
  340. Entering "1" followed by RETURN starts the formatting process, and when
  341. it completes it starts a verify pass where all blocks on the disk are
  342. examined for errors.  This operation can take some time on a large
  343. drive, and idtools shows its progress with a message displayed every
  344. five cylinders formatted.
  345.  
  346. After the format and verify, idtools writes the "sanity track" with the
  347. "fixdisk" program.  The sanity track contains a special data pattern
  348. that validates the drive to the 3B2, and it takes just a moment and
  349. requires no input from you.
  350.  
  351. With the conclusion of the fixdisk operation the drive is formatted.
  352. You can remove the idtools floppy and power the machine down.
  353.  
  354.  Closing up the machine
  355.  ----------------------
  356.  
  357. The machine should now be put back together and the original drives
  358. reinstalled.  It is important that all drive selects and terminating
  359. resistors be installed properly, following the rules mentioned
  360. previously.
  361.  
  362. The first drive in the machine has the lowest drive select jumper
  363. (usually position zero) and connected to the zero data cable (usually
  364. the bottom drive).  The second drive in the machine has the next drive
  365. select (usually position one) and the other data cable, and the control
  366. cable connects them both.  The drive that is at the physical end of the
  367. control cable must have the terminating resistor.
  368.  
  369. Disk drives installed into an XM expansion module have special rules on
  370. termination, and these are documented and diagrammed on pages 6-23 and
  371. 6-24 of the Maintenance Reference Manual.
  372.  
  373.  Partitioning the drive
  374.  ----------------------
  375.  
  376. The easiest case is adding a second drive to a machine that previously
  377. had only one.  After installing the new unit, boot /unix from the hard
  378. drive and enter single-user mode (this is much easier if you have
  379. edited /etc/inittab).
  380.  
  381. With the /usr partition mounted, run the "sysadm" command, and at each
  382. successive menu, enter "diskmgmt", "harddisk", and "partitioning" in
  383. turn.  This enters the partitioning operation and it should prompt you
  384. for the relevant information.  We do not discuss strategies for
  385. allocating filesystem resources, as this is covered in the AT&T system
  386. administrative documentation.
  387.  
  388. Once the drive is partitioned, the added filesystems (say, /usr2 and
  389. /usr3) may be used immediately.
  390.  
  391. All other cases involve replacing existing drives, and it most
  392. expedient to use the full restore procedure for this.  A full backup is
  393. absolutely required here for this operation, and it should be verified
  394. once it is made.
  395.  
  396. Boot the "Essential Utilities - Disk 1" floppy and select the "Full
  397. Restore" operation.  This procedure includes a partitioning step that
  398. allows you to allocate your new disk resources.  Follow the
  399. instructions shown on the screen.
  400.  
  401. After the core set of floppies -- five or six disks -- you can
  402. interrupt this process, boot /unix from the hard disk, and restore all
  403. of your backups.  You may have to install the Cartridge Tape Utilities
  404. if your backups are stored on that medium.
  405.  
  406. WARNING: This "full restore" operation destroys all data on all hard
  407. disks during the partitioning, and you _must_ have a full set of
  408. reliable, verified backups before considering this step, and two full
  409. sets of backups would not be a bad idea.  If these backups are not done
  410. properly, all data on the disks will be LOST.  Please be very careful
  411. when doing this, as mistakes can be costly.
  412.  
  413.  Compatibility note
  414.  ------------------
  415.  
  416. Some early models of the 3B2/300 do not permit a 72MB hard drive to be
  417. added to the system board.  The recognizing signs for this restriction
  418. are documented in the Maintenance Reference Manual on page 7-21, and
  419. 3B2/300 owners should consult this information before starting this
  420. project.
  421.  
  422. While the documentation does not mention the reason for this
  423. restriction, we speculate that any drive with more than eight heads
  424. cannot be used in these older machines.
  425.  
  426. ------------------------------------------------------------------------------
  427. Subject:  2 How do I create a second swap partition?
  428. ------------------------------------------------------------------------------
  429.  
  430. These are the steps I used to add a second swap partition to my
  431. 3B2/400.  Why add a second  swap area?   By default, the SVR3.1
  432. system disks (the version I use) make one swap area of 10196 blocks
  433. on the first hard disk (/dev/rdsk/c1d0s1).  While this 5Mb area
  434. seems plenty for most uses, I managed to exhaust it.  It was time to
  435. RTFM.  While the manual gives you the confidence to say that you *can*
  436. increase the number of swap partitions, it doesn't clearly tell you
  437. exactly how to go about doing that.  What follows are the steps you
  438. can follow to add another swap partition to your system.
  439.  
  440. Are you adding this swap space "just to balance the load"?  If so,
  441. forget it.  The effect is negligible and clearly not worth the effort.
  442. I have been unsuccessful in conclusively proving whether or not SVR3.1
  443. does perform balanced allocation of the swap space.  It seems to knock
  444. a huge chunk off the first partition before it even touches the second
  445. one.  I would not think of doing this unless you have SVR3.1 or
  446. SVR3.2.  Earlier versions do not have the advanced swap handling
  447. functions, and may not even allow you to do this.  Upgrade time.
  448. The only reason to add another swap partition is if you have a valid
  449. reason to do so (i.e. you have exhausted your present swap space).
  450. Remember that swap cannot be used for anything else, you take space
  451. away from your mountable filesystems when you add swap space.
  452.  
  453. Please keep in mind that this is *your* system, and these steps can
  454. easily wipe out all your data files.  Take adequate care to back
  455. up your data.  Make sure your backups work before you start any of this.
  456.  
  457. IT IS STRONGLY RECOMMENDED THAT YOU HAVE A PAPER COPY OF THESE
  458. DIRECTIONS IN FRONT OF YOU AS YOU PERFORM THIS TASK.
  459.  
  460. Step 0: BACK UP THE SYSTEM!  I cannot stress this enough.
  461.         If you have a tape drive, use that in preference over the
  462.     floppy drive.  Back up the /, /usr, and /usr2 partitions.
  463.     While it is not mandatory, it's also a good idea to back up
  464.     everything else just in case catastrophe strikes.  Expect the
  465.     worst and hope for the best.
  466.  
  467. Step 1: Reload the Foundation floppies and select a custom partition
  468.         setup.  Pick the sizes you want for the new swap partitions.
  469.     Since you are adding a second swap partition, it is up to you
  470.     if you wish to add to (or keep) the original 5Mb swap
  471.     partition.  It is mandatory that you keep *some* swap space on
  472.     the first disk.  There is no rule that says the 2 partitions must
  473.     be equal in size.  Finish the full restore.
  474.  
  475.     For Your Information: the sizes of the partitions are
  476.     dependent on the number of blocks per cylinder group.  That
  477.     means, you can specify size in units of (18 * number of
  478.     heads).  If you specify a number that is not a round figure,
  479.     the machine will round it for you.  RECORD THIS NUMBER!!!
  480.     This new partition will be named /usrX (where X is a positive
  481.     integer) and there will be a filesystem made upon it.  Do not worry.
  482.  
  483. Step 2: Bring up unix, log in as root, and bring the machine to runlevel 1.
  484.         When the machine is in single-user mode, make sure that all
  485.     disk partitions are unmounted (except for the root partition!)
  486.  
  487. Step 3: Make a temporary file with the existing partition data:
  488.  
  489.         # prtvtoc /dev/rdsk/c1d1s6 > /tmp/disk.data
  490.  
  491. Step 4: Edit the disk.data file.  Make the following changes:
  492.         change the tag field from 0 to 3 (from 'user' to 'swap')
  493.         change the flags from 00 to 01 (unmountable partition)
  494.         delete all the initial comments (lines with initial *'s)
  495.     Double check this file to make sure you got it right
  496.  
  497. Step 5: Save this data back to the hard disk.  If you choose to chicken
  498.         out, do it BEFORE THIS STEP:
  499.  
  500.         # fmthard -s /tmp/disk.data /dev/rdsk/c1d1s6
  501.  
  502. Step 6: Edit /etc/fstab to remove the reference to the now defunct
  503.         filesystem.  You don't have to do anything else to the actual
  504.     partition to remove the filesystem - the system will page over
  505.     the superblock and inode lists by itself.
  506.  
  507. Step 7: Use /etc/swap to tell the system that the partition is ready
  508.         for paging/swapping.  The best way to do this is to make the
  509.     system add this partition each time it boots.  Create a file
  510.     called /etc/rc2.d/S00SETSWAP.  Link it to the file
  511.     /etc/init.d/S00SETSWAP.  In this file, add the following line:
  512.  
  513.     /etc/swap -a /dev/dsk/c1d1sYY 0 XXXXX
  514.  
  515.     In this case, the Y's in the disk name should be set to the
  516.     disk partition that the new swap space is to be located on.
  517.     Usually, this is partition 8 (if you specified the swap space
  518.     as the first partition on the disk before /usr).  The 0 (zero)
  519.     signifies that swap activity is to start at the 0th block of
  520.     the partition - the start.  Replace the XXXXX with the number
  521.     of blocks available in the partition.  This is the number you
  522.     recorded in Step 1 above.
  523.  
  524. Step 8: Reboot and pray.  If it all went well, the machine will come
  525.         up in multi-user mode.  Once again, log in as root and bring
  526.     the machine down to single-user state.  Make sure that the
  527.     system is actually using the new partition with the 
  528.  
  529.     # /etc/swap -l
  530.  
  531.     command.  You should see the original swap partition
  532.     (/dev/dsk/c1d0s1) as well as your new partition listed.
  533.  
  534.     If your machine did not boot for some bizarre reason, reload
  535.     the system again (go to step 1), making sure that you do
  536.     everything correctly.
  537.  
  538. Step 9: Restore your data.  If you backed up on floppy, just restore
  539.         them in order and reboot.  If you backed up on a CTC tape drive,
  540.         you must install the Cartridge Tape Utilities disk, reboot,
  541.         recover your data, and reboot one last time.  IF you didn't back
  542.         up your data, then you're SOL.
  543.  
  544.         A note to those with XDC and SCSI drives - the maneuvers you
  545.         have just completed only messed up the data on the 2 internal
  546.         disk drives.  Any data on your 3rd (and higher) drives should
  547.         remain untouched.  
  548.  
  549. There is another way to do this whole thing without reloading the
  550. entire OS.  It involves having a boot floppy with prtvtoc, fmthard,
  551. swap, and a few other files on it.  You would have to make this before
  552. hand (explained in a different question).  In this instance, you would
  553. only alter the partitions on the disk you added the new partition to.
  554. This, however, would force you to re-create and restore filesystems on the
  555. partition(s) you borrowed space from.  For my time and money, it was
  556. easier (and less error-prone) to add the swap partition by reloading
  557. the Foundation disks.  True Blue Gurus (TM) can experiment with the
  558. second method.
  559.  
  560. Comments and criticisms welcome.
  561.  
  562. Jeffrey L. Bromberger ------- System Manager ------- Tramway Unix Systems
  563. jeffrey@squid.tram.com      Anywhere!{van-bc,limbic,icus}!tram!jeffrey
  564.  
  565. ------------------------------------------------------------------------------
  566. Subject:  3 How can I get X11 for the 3B2?
  567. ------------------------------------------------------------------------------
  568.  
  569. From: aj4640@dean1.usma.edu  Robertson John MAJ at US Military Academy, West
  570. Point, N
  571.  
  572. [Read the P.S. at the end of this message before attempting to
  573.  ftp these files.]
  574.  
  575. The X11 R4 distribution tape contains sources to run clients on a 3b1.
  576. Several of us have hacked those sources to enable clients to run on a
  577. 3b2.
  578.  
  579. I wish I could offer the source patches directly but for various
  580. reasons, I can't.  However, 3b2 users are more than welcome to have the
  581. clients, the libraries, the include files, and the pre-processor.  This
  582. will get X-windows up on your 3b2 without the xdaemon stuff (as long as
  583. you have the Wollongong networking stuff.)  With this stuff, you'll
  584. have a pile of ready-to-run clients as well as the tools needed to
  585. compile your own X11 applications.
  586.  
  587. In addition to the default X11 R4 clients, bin.tar.Z also has a running
  588. copy of tgif, xdvi, xmahjongg [you'll need to do the fonts for your
  589. server.  UTSL!], and lots of other neat stuff.
  590.  
  591. The lib.tar.Z contains libX11.a, libXt.a, etc.  In addition, the
  592. app-defaults for all the clients in bin.tar.Z are also here.
  593.  
  594. include.tar.Z has all the include files.  You'll need these if you want
  595. to compile your own stuff.
  596.  
  597. cpp.tar.Z is a compiled version of the X11 distribution preprocessor.
  598. In this version, you'll need to define the symbol 3b2 before
  599. invocation.  It will not gag on the big header files that many X
  600. applications use.
  601.  
  602. The files can be obtained via anonymous ftp from euler.math.usma.edu.
  603. They are in pub/3b2.  Other than unpacking and installing the clients
  604. and lib stuff in the usual places, no other special work should be
  605. needed.
  606.  
  607. I cannot offer any support for this stuff.  Take it, hack it, and have
  608. fun.  Even more, give the clients away to other suffering 3b2 users.
  609. It has made our 3b2's substantially easier to use.
  610.  
  611. Jack
  612.  
  613. P.S.  The X11R4 clients for the 3B2 have been moved to Bradley University
  614.       on erratic.bradley.edu in pub/3B2_X.  If that system is down, you
  615.       may want to also try ds3.bradley.edu, also in pub/3B2_X.
  616.  
  617. ------------------------------------------------------------------------------
  618. Subject:  4 How do I install a non AT&T SCSI drive on my 3B2?
  619. ------------------------------------------------------------------------------
  620.  
  621. From: geoff@ugc.uucp (Geoff Coleman)
  622.  
  623. Installation of Third Party SCSI drive on AT&T 3B2
  624.  
  625. [This item covers adding a third party SCSI drive to a 3B2 only
  626.  as additional partitions to the ones on the internal MFM disks.
  627.  Another item in this FAQ discusses uses a SCSI disk for the root
  628.  and swap partitions as that is a considerably more involved
  629.  procedure.]
  630.  
  631. 1.  Hardware Addition
  632. The hardware installation is relatively simple. The SCSI address of the
  633. disk must be set via jumpers. If the disk being added is the first
  634. outside disk for the 3B2 then the you must use an "AT&T SCSI Connect
  635. Kit".
  636.  
  637. 2.  Telling the system about the disk
  638. After the disk has been physically attached the machine should be
  639. restarted.  If the disk is one that is unknown to the 3B2 a message
  640. will appear on the console that there is an unknown scsi device "make"
  641. "model". The make and model information is important.
  642.  
  643. Once the 3b2 is rebooted login as root and cd to /etc/scsi.  At
  644. this point you should run ./edittbl -l to list all of the SCSI
  645. devices known to the system. Then insert a new entry into the
  646. device table with the .edittbl -i command. The first entry is the
  647. make and must be padded with spaces to 8 characters.  The second
  648. entry is the model and must be padded to 16 characters with spaces.
  649. The number of lu's is one unless it is a bridge controller.
  650.  
  651. At this point you should reboot the machine and there should be no
  652. unknown device error message on bootup.
  653.  
  654. 3.  Formatting the disk
  655. Once the system has been rebooted login as root and change the run
  656. level to single user mode and remount /usr if need be.
  657.  
  658. At this point you need to cd to /usr/lib/scsi and edit the file
  659. tc.index.  Add an entry for the new disk in the same manner as the
  660. other entries in this file. Make sure that the model number starts in
  661. column 9 and is padded out to 16 characters, if you receive an unable
  662. to open script file message on formatting the problem is most likely in
  663. this entry.
  664.  
  665. At this point you can run the format program from either sysadm or the
  666. command line. After the format has finished reboot the system and the
  667. disk should be listed as a formatted disk.
  668.  
  669. ------------------------------------------------------------------------------
  670. Subject:  5 How do I prevent data overrun errors when using a high
  671.             speed modem on an EPORTS card at 19.2K baud or higher?
  672. ------------------------------------------------------------------------------
  673.  
  674. The EPORTS board can easily handle 38.4K baud on an otherwise
  675. unloaded system, provided Hardware Flow Control is enabled.  The
  676. hard part is keeping HFC enabled.  Several solutions to this problem
  677. exist, but one that seems to work is (1) to have a daemon set HFC
  678. on open lines periodically, and (2) have uugetty enable HFC on all
  679. logins.
  680.  
  681. Some people have found the 1.2 version of the EPORTS driver to be
  682. buggy, and that 1.3 allows for significantly higher throughput.
  683.  
  684. Elliot Dierksen submitted two solutions to this problem.  Each one
  685. addresses the problem in two different ways.  The first one enables
  686. HFC when a user logs in a HFC capable serial port.  The second one
  687. is a daemon spawned by init(1) that periodically enables HFC on
  688. specified serial lines.
  689.  
  690. From: elliot@oau.org (Elliot B Dierksen)
  691.  
  692. ----- Solution #1 -----
  693.  
  694. Step 1: copy uugetty to some new name (I used epuugetty). Use some
  695. sort of binary editor to change the exec of '/bin/login' to '/bin/ephfc'.
  696.  
  697. Step 2: compile ephfc. Here it is!
  698.  
  699. I have had no problems with this at all, but your mileage may vary.
  700. No promises implied or intended. Even with cron entries to set HFC,
  701. I still have problems on occasion with dial outs. Inbound calls
  702. work great.
  703.  
  704. I hope you all find this useful!
  705.  
  706. ----------------cut here--------------------------------------
  707. /* ephfc.c
  708.  
  709. handle hardware flow control on EPORTS and then exec login
  710.  
  711. This program sets hardware flow control on an EPORTS card in an
  712. AT&T 3B2 computer. Patch getty (or uugetty) to exec ephfc instead of login.
  713.  
  714. 04/18/1992 - Elliot Dierksen (elliot@oau.org)
  715.  
  716. */
  717.  
  718. /* standard header files */
  719. #include <stdio.h>
  720. #include <fcntl.h>
  721. #include <errno.h>
  722. #include <sys/ct_dep.h>
  723. #include <termio.h>
  724.  
  725. /* EPORTS header files */
  726. #include <sys/queue.h>
  727. /*#include <sys/ep_dep.h>*/
  728. #include <sys/eppc.h>
  729. #include <sys/ep_lla.h>
  730.  
  731. #define IN_FD   0
  732. #define OUT_FD  1
  733.  
  734. main(argc,argv,envp)
  735. int argc;
  736. char **argv,**envp;
  737. {
  738. char *login_prog = "/bin/login";
  739. struct etty ettyp;
  740. struct termio termiop;
  741.  
  742.     /* abort if ioctl read fails. this might happen this is not an EPORT */
  743.     if (ioctl(IN_FD,EP_GETA,&ettyp) == -1)
  744.     {
  745.         fprintf(stderr,"%s: ioctl(EP_GETA) failed(%d)\n",argv[0],errno);
  746.         fflush(stderr);
  747.         exit(6);
  748.     }
  749.  
  750.     /* abort if ioctl read fails. No clue what might have gone wrong! */
  751.     if (ioctl(IN_FD,TCGETA,&termiop) == -1)
  752.     {
  753.         fprintf(stderr,"%s: ioctl(TCGETA) failed(%d)\n",argv[0],errno);
  754.         fflush(stderr);
  755.         exit(7);
  756.     }
  757.  
  758.     /* turn off XON/XOFF */
  759.     termiop.c_iflag &= ~(IXON|IXOFF|IXANY);
  760.  
  761.     /* set regular ioctl values */
  762.     ioctl(OUT_FD,TCSETA,&termiop);
  763.  
  764.     /* set EPORTS values */
  765.     ioctl(OUT_FD,EP_HFC,0);
  766.  
  767.     /* reset arg[0] for login */
  768.     argv[0] = login_prog;
  769.  
  770.     /* exec login and hope for the best! */
  771.     execv(login_prog,argv);
  772. }
  773.  
  774. ----- Solution #2 -----
  775.  
  776. I made some more changes to sethfc. Somebody didn't like my system
  777. where init respawned it every 60 seconds. Actually, I didn't like
  778. it much since it was making my wtmp file HUGE! I made sethfc2 able
  779. to take multiple tty arguments and added a daemon mode. Here is
  780. the inittab line:
  781.  
  782. hfc:234:respawn:/etc/sethfc2 -C -E tty21 tty31 tty34 # Set Hardware Flow Control
  783.  
  784. And here is the program (comments welcomed):
  785. *************** BEGIN sethfc2.c ********************
  786. /* sethfc2.c
  787.  
  788. set (or reset) hardware flow control on EPORTS
  789.  
  790. This program sets (or resets) hardware flow control on an EPORTS card in an
  791. AT&T 3B2 computer.
  792.  
  793. command line options:
  794.  
  795. -C)    open port with O_NDELAY (ignore status of DCD)
  796. -H X)    hardware flow control flag where X = Y or N (for yes or no)
  797.     ******  default value is HFC ON!
  798. -S) sleep 60 seconds after setting port
  799. -t N) set sleep time to N seconds
  800. -E) endless (daemon) mode
  801.  
  802. argument list:
  803. 1-N)    tty name(s):    same as getty argument (tty24)
  804.  
  805. 05/17/1993 - Elliot Dierksen (elliot@oau.org)
  806. 07/15/1993 - Elliot Dierksen.  Added daemon mode, and -t option
  807.  
  808. */
  809.  
  810. /* standard header files */
  811. #include <stdio.h>
  812. #include <fcntl.h>
  813. #include <errno.h>
  814. #include <termio.h>
  815.  
  816. /* EPORTS header files */
  817. #include <sys/du_dep.h>
  818. #include <sys/queue.h>
  819. #include <sys/eppc.h>
  820. #include <sys/ep_lla.h>
  821.  
  822. #define MAX_OPT_ARGS    6
  823.  
  824. main(argc,argv,envp)
  825. int argc;
  826. char **argv,**envp;
  827. {
  828. extern char *optarg;
  829. extern int optind,opterr;
  830.  
  831. char *usage = "usage: %s [-C] [-S] [-t N] [-E] [-H y|n] line [line...]\n";
  832.  
  833. char opt_args[MAX_OPT_ARGS][32], *devname;
  834.  
  835. int c, tty_fd, oflag=O_RDWR, tty_count=0;
  836. int ep_flags;
  837. short errflag=0, hfc_flag=1, sleepflag=0, sleeptime=60, daemon=0;
  838. struct etty ettyp;
  839. struct termio termiop;
  840.  
  841.     /* initialize string variables to null */
  842.     for (c = 0; c < MAX_OPT_ARGS; c++)
  843.         *opt_args[c] = '\0';
  844.  
  845.     /* process options */
  846.     while ((c = getopt(argc,argv,"H:CSEt:")) != -1)
  847.         switch (c)
  848.         {
  849.         /* sleep (sleeptime) seconds after setting port */
  850.         case 'S':
  851.             sleepflag = 1;
  852.             break;
  853.  
  854.         /* set sleep time to other than the default */
  855.         case 't':
  856.             {
  857.             int newtime;
  858.  
  859.                 newtime = atoi(optarg);
  860.                 /* make sure that the time is at least 1 second */
  861.                 if (newtime > 0)
  862.                     sleeptime = newtime;
  863.             }
  864.             break;
  865.  
  866.         /* set port endlessly (daemon mode) */
  867.         case 'E':
  868.             /* force sleepflag on. otherwise, this process would eat
  869.             the CPU alive!! */
  870.             sleepflag = 1;
  871.             daemon = 1;
  872.             break;
  873.  
  874.         /* ignore DCD when opening port */
  875.         case 'C':
  876.             oflag |= O_NDELAY;
  877.             break;
  878.  
  879.         /* hardware flow control flag */
  880.         case 'H':
  881.             switch(*optarg)
  882.             {
  883.             /* turn HFC on */
  884.             case 'Y':
  885.             case 'y':
  886.                 hfc_flag = 1;
  887.                 break;
  888.  
  889.             /* turn HFC off */
  890.             case 'N':
  891.             case 'n':
  892.                 hfc_flag = 0;
  893.                 break;
  894.  
  895.             /* invalid argument, error out */
  896.             default:
  897.                 errflag++;
  898.                 break;
  899.             }
  900.             break;
  901.  
  902.         /* invalid argument or usage help requested */
  903.         case '?':
  904.             errflag++;
  905.             break;
  906.         }
  907.  
  908.     /* show usage and exit if there was an error */
  909.     if (errflag)
  910.     {
  911.         fprintf(stderr,usage,argv[0]);
  912.         fflush(stderr);
  913.         exit(2);
  914.     }
  915.  
  916.     /* load arguments */
  917.     for (c=0; optind < argc && c < MAX_OPT_ARGS; optind++, c++)
  918.     {
  919.         sprintf(opt_args[c],"/dev/%s",argv[optind]);
  920.         tty_count++;
  921.     }
  922.  
  923.     /* if we didn't get a tty name */
  924.     if (!tty_count)
  925.     {
  926.         /* can't run without a device, error out */
  927.         fprintf(stderr,usage,argv[0]);
  928.         fflush(stderr);
  929.         exit(4);
  930.     }
  931.  
  932.     /* Here comes the meat of the program. Executed at least once. Endlessly
  933.         if we are in daemon mode */
  934.     do
  935.     {
  936.         /* loop through the ports we have to process */
  937.         for (c = 0; c < tty_count; c++)
  938.         {
  939.             /* set our temp pointer to the device name */
  940.             devname = opt_args[c];
  941.  
  942.             /* abort if we can't open the device */
  943.             if ((tty_fd = open(devname,oflag,0)) == -1)
  944.             {
  945.                 fprintf(stderr,"%s: could not open %s(%d)\n",argv[0],devname,errno);
  946.                 fflush(stderr);
  947.                 exit(5);
  948.             }
  949.  
  950.             /* abort if ioctl read fails. this might happen this is not an EPORT */
  951.             if (ioctl(tty_fd,EP_GETA,&ettyp) == -1)
  952.             {
  953.                 fprintf(stderr,"%s: ioctl(EP_GETA) failed on %s(%d)\n",argv[0],devname,errno);
  954.                 fflush(stderr);
  955.                 exit(6);
  956.             }
  957.  
  958.             /* abort if ioctl read fails. No clue what might have gone wrong! */
  959.             if (ioctl(tty_fd,TCGETA,&termiop) == -1)
  960.             {
  961.                 fprintf(stderr,"%s: ioctl(TCGETA) failed on %s(%d)\n",argv[0],devname,errno);
  962.                 fflush(stderr);
  963.                 exit(7);
  964.             }
  965.  
  966.             /* is HFC set? */
  967.             if (hfc_flag)
  968.             {
  969.                 /* turn off XON/XOFF */
  970.                 termiop.c_iflag &= ~(IXON|IXOFF|IXANY);
  971.  
  972.                 /* set flag for HFC */
  973.                 ep_flags = EP_HFC;
  974.             }
  975.             else
  976.             {
  977.                 /* turn on XON/XOFF */
  978.                 termiop.c_iflag |= (IXON|IXANY);
  979.  
  980.                 /* set flag for SFC */
  981.                 ep_flags = EP_NHFC;
  982.             }
  983.  
  984.             /* set regular ioctl values */
  985.             ioctl(tty_fd,TCSETA,&termiop);
  986.  
  987.             /* set EPORTS values */
  988.             ioctl(tty_fd,ep_flags,0);
  989.  
  990.             /* close the port */
  991.             if (close(tty_fd) == -1)
  992.             {
  993.                 fprintf(stderr,"%s: could not close %s(%d)\n",argv[0],devname,errno);
  994.                 fflush(stderr);
  995.                 exit(8);
  996.             }
  997.         }
  998.  
  999.         /* sleep if need be */
  1000.         if (sleepflag)
  1001.             sleep(sleeptime);
  1002.     } while (daemon);
  1003.  
  1004.     exit(0);
  1005. }
  1006.  
  1007. ------------------------------------------------------------------------------
  1008. Subject:  6 What does the 'NOTICE: File Table Overflow' error mean?
  1009. ------------------------------------------------------------------------------
  1010.  
  1011. From: v.hoang@att.com
  1012.  
  1013. It means more files being opened than the limit you've set for the
  1014. system.  Edit /etc/master.d/kernel and bump up the values of NFILE,
  1015. NINODE & NS5INODE (or something close to that), then cd /boot,
  1016. mkboot -k KERNEL, touch /etc/system then reboot the system.
  1017.  
  1018. ------------------------------------------------------------------------------
  1019. Subject:  7 How do I set up anonymous ftp?
  1020. ------------------------------------------------------------------------------
  1021.  
  1022. From: rdc30@nmrdc1.nmrdc.nnmc.navy.mil (LCDR Michael E. Dobson)
  1023. Subject: Anonymous ftp with WIN/TCP 3.0.x YES!!
  1024.  
  1025. Contrary to the documentation for WIN/TCP 3.0.{0,1}, it is possible to
  1026. set up anonymous ftp.  The Bugs: note in the documentation about it not
  1027. being fully implemented in this release seems to be just a
  1028. documentation omission.  I saw the method to use on a US military 3B2
  1029. Users Group mailing list.  The missing parts are the creation of a dev
  1030. directory in the root of the ftp account directory with null and tcp
  1031. devices created with mknod, and the inclusion of the services file in
  1032. the etc subdir along with group and passwd files.  You of course need
  1033. ls & pwd in bin and a pub tree.  Below is the output of ls -lR in my
  1034. ftp root as well as the passwd in ~ftp/etc/passwd.  Try it out and
  1035. see.
  1036.  
  1037. total 5
  1038. drwxr-xr-x   2 root     other         64 Jan 23 11:12 bin
  1039. drwxr-xr-x   2 root     other         64 Jan 23 11:09 dev
  1040. drwxr-xr-x   2 root     other         80 Jan 23 11:13 etc
  1041. drwxr-xr-x   2 ftp      sys          240 Jan 23 11:16 pub
  1042. drwxr-xr-x   2 root     other         64 Aug 28 20:01 shlib
  1043.  
  1044. /usr3/ftp/bin:
  1045. total 111
  1046. ---x--x--x   1 root     other      35678 Jan 23 11:11 ls
  1047. ---x--x--x   1 root     other      19551 Jan 23 11:11 pwd
  1048.  
  1049. /usr3/ftp/dev:
  1050. total 0
  1051. crw-rw-rw-   1 root     sys       63, 43 Aug 28 19:57 circ
  1052. crw-rw-rw-   1 root     sys       49,  2 Jan 23 11:09 null
  1053. crw-rw-rw-   1 root     sys       63, 38 Jan 23 11:09 tcp
  1054. crw-rw-rw-   1 root     sys       63, 36 Aug 28 19:56 udp
  1055.  
  1056. /usr3/ftp/etc:
  1057. total 4
  1058. -r--r--r--   1 root     other        336 Jan 23 11:12 group
  1059. -r--r--r--   1 root     other         56 Jan 23 11:13 passwd
  1060. -r--r--r--   1 root     other        884 Jan 23 11:12 services
  1061.  
  1062. /usr3/ftp/pub:
  1063. total 0
  1064.  
  1065. /usr2/ftp/shlib:
  1066. total 211
  1067. -r-xr-xr-x   1 root     other      66626 Aug 28 20:01 libc_s
  1068. -r-xr-xr-x   1 root     other      39859 Aug 28 20:01 libnsl_s
  1069.  
  1070. Contents of ~/ftp/etc/passwd:
  1071.  
  1072. ftp:x:13:1:Anonymous FTP Account:/usr3/ftp:/usr/bin/ftp
  1073.  
  1074. --
  1075. Mike Dobson, Sys Admin for      | Internet: rdc30@nmrdc1.nmrdc.nnmc.navy.mil
  1076. nmrdc1.nmrdc.nnmc.navy.mil      | UUCP:   ...uunet!mimsy!nmrdc1!rdc30
  1077. AT&T 3B2/600G Sys V R 3.2.2     | BITNET:   dobson@usuhsb or nrd0mxd@vmnmdsc
  1078. WIN/TCP for 3B2                 | MCI-Mail: 377-2719 or 0003772719@mcimail.com
  1079.  
  1080. A special note from Steven M. Kilby <skilby@ucqais.cba.uc.edu>
  1081.  
  1082. Anonymous FTP for the 400:
  1083.     Setting up an anonymous FTP login for the 3B2/400 differs slightly from
  1084. the instructions in the FAQ.  The FAQ instructions will work on 600's or
  1085. 1000's.  The only changes are in the directory setup.
  1086.  
  1087. [As other people found the original anonymous FTP setup did not
  1088.  work at all without Steven M. Kilby's changes, I modified the
  1089.  directory structure above to reflect Steve's changes.  -greg]
  1090.  
  1091. Also:
  1092. From: Kevin Darcy <kevin@cfctech.cfc.com>
  1093.  
  1094. Also, you should probably make people aware that the exact minor
  1095. numbers for all clone devices will vary from system to system, and
  1096. to only use the ones displayed as a guide. For instance, my dev
  1097. entries for circ, tcp & udp are
  1098.  
  1099. crw-rw-rw-   1 root     other     63, 66 Sep 10  1991 /dev/circ
  1100. crw-rw-rw-   1 root     other     63, 56 Sep 10  1991 /dev/tcp
  1101. crw-rw-rw-   1 root     other     63, 58 Sep 10  1991 /dev/udp
  1102.  
  1103. which is somewhat different than what's shown above (cfctech's
  1104. major numbers are higher than most folks', because we have run
  1105. StarLAN, Datakit & WIN/TCP all simultaneously on the machine, in
  1106. addition to everything on the release tape, and, at one point, even
  1107. loaded X Windows on the box (!)).
  1108.  
  1109. ------------------------------------------------------------------------------
  1110. Subject:  8 Is there a reposity of ftp-able 3B2 programs?
  1111. ------------------------------------------------------------------------------
  1112.  
  1113. The following are some 3B2 ftp sites that I know of and what they
  1114. contain:
  1115.  
  1116. ames.arc.nasa.gov (128.102.18.3)
  1117.     Kyoto-Lisp, Pascal, Sendmail, citadel-bbs
  1118.  
  1119. erratic.bradley.edu (136.176.5.253)
  1120.     old gcc
  1121.  
  1122. stasi.bradley.edu (136.176.5.121)
  1123.     lpr/lpd
  1124.  
  1125. (I checked all these sites on 2/21/94.  If there are any I've missed
  1126.  or have been added since, please let me know)
  1127.  
  1128.  
  1129. ------------------------------------------------------------------------------
  1130. Subject:  9 How do I run Unix from floppy (for example, to repair a damage
  1131.         hard drive file system)?
  1132. ------------------------------------------------------------------------------
  1133.  
  1134.                Running a Standalone Shell on a 3B2
  1135.  
  1136.                         Stephen J. Friedl
  1137.                     [Edited by Gregory Gulik]
  1138.  
  1139.                          April 25, 1988
  1140.  
  1141.           NB:  the   procedures   described   here
  1142.           require  substantial  knowledge  of  UNIX and
  1143.           entail a significant risk of causing loss  of
  1144.           data.  The obvious disclaimers apply here, so
  1145.           use at your own risk.  Please be careful.
  1146.  
  1147. Introduction
  1148.  
  1149.      This document is an introduction to operating your 3B from a
  1150. standalone /unix.  Even with inoperable hard drives, it is possible to
  1151. insert the boot floppy (Essential Utilities Disk 1), say some magic
  1152. words, and receive a # prompt.  At this point you can do major surgery
  1153. on the failing machine, often recovering a drive previously thought to
  1154. be lost.
  1155.  
  1156.      Our style is informal and we'll use lots of examples to illustrate
  1157. the points at hand.  We have been using standalone shells for quite
  1158. some time and have learned a great deal; we hope to pass this
  1159. information on to you.  Please read this document carefully before
  1160. trying the methods described here, and if possible have a wizard around
  1161. when giving it a go.  This can be dangerous business: as has been said
  1162. before, it is a time where experience and informed courage count for
  1163. much.
  1164.  
  1165. Conventions
  1166.  
  1167.      Throughout this document, sample usage sessions will be shown
  1168. indented, with user input in bold.  To make it easier to distinguish
  1169. between a multiuser UNIX shell and a standalone one, we will show
  1170. multiuser UNIX's root prompt as ## and the standalone prompt as #.
  1171.  
  1172.  
  1173. >>> Back up your boot disks b->
  1174.  
  1175.      This cannot be emphasized enough.  Your boot floppies are the key
  1176. to your machine, and without them the machine is down.
  1177.  
  1178. Why do you want a standalone /unix?
  1179.  
  1180.      The most compelling reason for a standalone shell is when the
  1181. primary drive has gone down and must be recovered.  While working from
  1182. a standalone /unix is slow and tedious, it can often save an entire
  1183. hard disk with minimal data loss.
  1184.  
  1185.      We have also used this standalone shell to repair a corrupt
  1186. /etc/inittab, to fix /etc/passwd, to restore a /bin/login that had been
  1187. removed, and to install new bootstraps on the hard drive.  With a
  1188. standalone boot disk in hand, a host of possibilities presents itself.
  1189.  
  1190.  
  1191. What is on your boot disk?
  1192.  
  1193.      Before booting this floppy, take some time to explore its
  1194. contents, as the disk has a filesystem on it that can be mounted and
  1195. perused.  To do this, insert a COPY of the Essential Utilities Floppy 1
  1196. (from now on, "the boot floppy") into the drive with a write-protect
  1197. tab.  Now,
  1198.  
  1199.           ## mount /dev/dsk/c0d0s5 /install -r
  1200.  
  1201.      Because boot floppies vary from release to release, it would be
  1202. most helpful to simply get a listing of the contents of your particular
  1203. boot floppy.
  1204.  
  1205.      Once finished, the floppy must be unmounted:
  1206.  
  1207.           ## cd /
  1208.           ## umount /dev/dsk/c0d0s5
  1209.  
  1210. "Open Sesame"
  1211.  
  1212.      To give standalone a try, first shut the machine down to firmware
  1213. mode.  Assuming the machine is now in firmware mode, put a copy of the
  1214. boot disk into the drive.  Note that some versions of the operating
  1215. system (Sys V Release 2, at least) require that the boot floppy be
  1216. write-enabled (i.e., no write-protect tab); it is this requirement that
  1217. mandates multiple backups of the boot floppy.  UNIX will be updating
  1218. the disk while it runs -- the superblock, access times, etc. -- and if
  1219. the machine crashes at the wrong time it simply will not boot again
  1220. without an fsck.  Be careful.
  1221.  
  1222.      Type in your firmware password and boot /unix from the floppy
  1223. drive (Option 0, named `FD5') instead of the hard drive (Option 1,
  1224. named `HD30' or `HD72').  It can take several minutes for UNIX to boot,
  1225. but when it does, the familiar menu will be displayed:
  1226.  
  1227.                1) Full Restore
  1228.                2) Partial Restore
  1229.                3) Dual-Disk Upgrade
  1230.                4) Release Upgrade
  1231.                Selection? [1, 2, 3, 4, quit, help]
  1232.  
  1233.      At this point, type the phrase
  1234.  
  1235.                            magic mode
  1236.  
  1237.      The system recognizes this special option and responds:
  1238.  
  1239.           Poof!
  1240.  
  1241.           Selection? [1, 2, 3, 4, quit, help, shell, copy]
  1242.  
  1243.      Notice the new options?  Now type shell, then RETURN, and you will
  1244. be greeted with the familiar # prompt.  You are now running a
  1245. standalone shell on the floppy.
  1246.  
  1247.      A few reminders here: a floppy filesystem is not able to hold much
  1248. data, and many common utilities are unavailable.  When dealing with the
  1249. standalone shell, one must learn alternatives to these utilities.  For
  1250. example, echo * can replace ls(1), and cat > file can serve as a poor
  1251. replacement to ed(1).  One must become remarkably resourceful when
  1252. working in an environment as restricted as this.  We will see later how
  1253. we can enhance this confined environment with additional tools.
  1254.  
  1255. Standalone devices
  1256.  
  1257.      The floppy's /dev directory contains a host of entries, some of
  1258. them referring to partitions on the hard drive.  While a particular
  1259. partition may have several names, we generally use the following
  1260. devices to refer to the hard disk:
  1261.  
  1262.           Partition        What it is (on the hard disk)
  1263.           -----------      -----------------------------
  1264.           /dev/idsk00      / filesystem
  1265.           /dev/idsk01      swap area
  1266.           /dev/idsk02      /usr filesystem
  1267.           /dev/idsk06      the entire disk
  1268.           /dev/idsk07      boot partition
  1269.           /dev/idsk08      optional filesystem (/u or /usr2)
  1270.  
  1271. Mounting the hard drive
  1272.  
  1273.      To gain access to the primary hard drive, partitions of interest
  1274. are mounted onto directories on the floppy.  The device names are
  1275. selected from the table in the previous section.
  1276.  
  1277.      Before mounting a partition, we recommend running the filesystem
  1278. check fsck(1m) first.  The mount command will fail if the the
  1279. superblock is not in order -- this is often the case after a crash.  In
  1280. addition, it gives a convenient verification of the device status and
  1281. the the filesystem's name and volume.
  1282.  
  1283.           # /etc/fsck /dev/idsk00
  1284.  
  1285.      While some errors are to be expected while checking the root
  1286. partition, a total failure is a very serious error.  Our experience
  1287. defines "total failure" as an indication by fsck that it cannot find
  1288. any possible traces of a filesystem.  In particular, "CAN NOT READ: BLK
  1289. 1" is one of the more ominous messages we have seen.
  1290.  
  1291.      Once fsck grants the filesystem a clean bill of health, it is
  1292. ready to be mounted.  Rather than take up space for a handful of common
  1293. commands, AT&T has rolled several of them into one:  fsys.  It is
  1294. undocumented and appears to only be used on the boot floppy.  Some
  1295. versions of the boot disk do contain the mount and umount programs and
  1296. those can be used instead of fsys.
  1297.  
  1298.      Fsys takes a handful of options, not all of which are interesting
  1299. to us in standalone mode.  Used in the install scripts for a handful of
  1300. filesystem-related duties, we will use it simply as a replacement for
  1301. mount(1m) and umount(1m).  To mount the hard disk's root filesystem
  1302. onto the floppy's /install directory, do:
  1303.  
  1304.           # fsys -m /install /dev/idsk00
  1305.  
  1306.      Fsys will complain on an error, and this brings us to a serious
  1307. bug in this program: if either the mount directory or the partition's
  1308. device name are invalid for any reason, the error message will always
  1309. point to the partition device name.  This can be, to put it lightly,
  1310. "misleading".
  1311.  
  1312.      With the hard drive's root filesystem mounted on /install, it is
  1313. now fully part of the standard directory tree.  While the floppy has no
  1314. editor or many of the helpful tools, the root partition does, and these
  1315. can be exploited.  When beginning an extended standalone session on the
  1316. primary drive, we have found it helpful to extend the shell's search
  1317. path:
  1318.  
  1319.           # PATH=/install/bin:/install/etc:$PATH ; export PATH
  1320.  
  1321.      Now the familiar ls, ed, (but not vi) and many other commands are
  1322. available.  Since they will be loaded from the hard drive, execution is
  1323. much faster.
  1324.  
  1325.      As an example, assume that the root password has been forgotten
  1326. and the machine is basically closed.  The solution suggested by AT&T's
  1327. documentation (in the System Administration Utilities Guide) is to do a
  1328. partial restore.  The difficulty with this approach is that many
  1329. important system files -- /etc/passwd, /etc/inittab, /etc/gettydefs,
  1330. and others -- are overwritten in the process.  Even with a full backup,
  1331. this can be an unpleasant undertaking.
  1332.  
  1333.      An alternate approach will use the standalone shell.  The general
  1334. strategy is to mount the hard drive, edit the password file, and boot
  1335. multiuser UNIX.  The full procedure is:
  1336.  
  1337.           (boot standalone /unix)
  1338.           # fsck /dev/idsk00
  1339.           # fsys -m /install /dev/idsk00
  1340.           # /install/bin/ed /install/etc/passwd
  1341.           (edit the file in the standard way)
  1342.           w
  1343.           q
  1344.           # fsys -u /dev/idsk00
  1345.  
  1346.      At this point, the root drive is now unmounted and the system may
  1347. be rebooted.  Normally you can just type exit at the shell prompt and
  1348. you will be returned to the monitor and asked what program to boot.  If
  1349. that doesn't work on your version, try:
  1350.  
  1351.           # sync
  1352.           # sync
  1353.           # /etc/uadmin 2 2
  1354.  
  1355.      Uadmin(1m) is documented in the manual (you must also refer to the
  1356. uadmin(2) manual page) -- the above does a normal return to the monitor
  1357. (i.e., firmware).  WARNING: uadmin(1m) is available from full UNIX as
  1358. well but is very dangerous.  Use it with extreme caution and only if
  1359. you really know what uadmin does.
  1360.  
  1361. Making a standalone boot disk
  1362.  
  1363.           ================== WARNING ================
  1364.           Only do this on backup copies of the disks,
  1365.           NEVER to the main Essential Utilities Disk.
  1366.           ================== WARNING =================
  1367.  
  1368.      The Essential Utilities Disk 1 contains many files needed by the
  1369. automatic restore/upgrade procedures, but for standalone work, many are
  1370. not needed.  After working with these disk for some time, we were able
  1371. to narrow down what is helpful to have on the disk and what is not.
  1372. The following procedure (run from multiuser mode, signified by the ##
  1373. prompt) will convert an Essential Utilities disk to a standalone boot
  1374. disk.
  1375.  
  1376.           (from hard disk UNIX)
  1377.           ## fsck /dev/dsk/c0d0s5
  1378.           ## mount /dev/dsk/c0d0s5 /install
  1379.           ## cd /install/inst/bin
  1380.           ## mv fsys pdinfo swap ttyset ../../bin
  1381.           ## cd /install
  1382.           ## /bin/rm -rf inst
  1383.           ## cp /bin/ed /install/bin
  1384.           ## cp /etc/fsdb /install/etc
  1385.           ## cat > /install/inittab
  1386.           is:s:initdefault:
  1387.           sh:s:respawn:/bin/sh < /dev/console > /dev/console 2>&1
  1388.           ^D
  1389.           ## cd /
  1390.           ## umount /dev/dsk/c0d0s5
  1391.  
  1392.      While there may be other files on this floppy that are not needed,
  1393. we have operated on the principle of least customization.  It has been
  1394. our experience that keeping the procedure simple allows it to be done
  1395. on-the-fly (say, at a customer site) and minimizes the exploration
  1396. required when a new operating system disk is released.
  1397.  
  1398.      In addition, it is not wise to pack the disk too tightly.  The
  1399. editor requires adequate space under /tmp, so an almost-full disk
  1400. precludes editing all but the smallest files; this applies whether the
  1401. file being edited resides on the hard drive or the floppy.
  1402.  
  1403.      Once this is done, the new disk will come up in standalone mode
  1404. without the need for magic mode.  In addition ed(1) and fsdb(1m) are
  1405. available.  The other tools mentioned (pdinfo, swap, ttyset) are
  1406. helpful but not required by the basic procedures.
  1407.  
  1408.      It has been our experience that any version (SVR2, SVR3) of boot
  1409. disk can be used with any version of hard disk UNIX without difficulty
  1410. for doing simple operations such a performing filesystem checks or
  1411. editing /etc/passwd.  For more complex operations, such as
  1412. repartitioning the hard drive or restoring the bootstraps, higher
  1413. version compatibility is required.
  1414.  
  1415. Security Considerations
  1416.  
  1417.      It should be apparent that knowledge of these standalone methods
  1418. is tremendously powerful.  In addition to being able to rescue a
  1419. floundering machine, an unrestricted path to root has been provided as
  1420. well.  While all the standard rules about physical security of the
  1421. computer apply here, an additional step may be taken to thwart a
  1422. would-be interloper.
  1423.  
  1424.      The responsible system administrator of a machine in a hostile
  1425. environment will generally change the computer's firmware password.
  1426. This magic word is required before the monitor on the 3B2 motherboard
  1427. will boot from a floppy, and lack of this password prevents a malicious
  1428. user from simply pulling the power plug to enter firmware mode.
  1429.  
  1430.      In addition to changing the firmware password, the floppy key
  1431. floppy should itself be secured.  When the computer is restarted with
  1432. this disk in the drive, it will clear the non-volatile RAM (NVRAM) and
  1433. restore the default parameters.  Because the firmware password is
  1434. included in these "default parameters", this disk should be kept out of
  1435. non-trusted hands.
  1436.  
  1437. Conclusion
  1438.  
  1439.      We solicit bug reports, comments, and suggestions on this
  1440. document.  Please direct them to:
  1441.  
  1442.     Stephen J. Friedl
  1443.     Software Consultant
  1444.     1891 Running Branch Way
  1445.     Tustin, CA 92680
  1446.     +1 714 544-6561 voice
  1447.     +1 714 838-0099 fax
  1448.  
  1449.     Internet:    friedl@mtndew.com
  1450.  
  1451. ------------------------------------------------------------------------------
  1452. Subject: 10 What is/was the 3B Journal?
  1453. ------------------------------------------------------------------------------
  1454.  
  1455.     The _3B Journal_ was put out sporadically by Owens-Laing
  1456.     Publications for several years in the late 1980s, and I used to be
  1457.     the technical editor.  The magazine dealt with the 3B1 and 3B2
  1458.     platforms, and the content varied from very markety-oriented to
  1459.     quite technical (the latter usually written by me).
  1460.  
  1461.     The publisher never seemed to get a handle on the business end of
  1462.     running a magazine, and I've heard nothing past the fourth quarter,
  1463.     1989 issue.  The current phones are disconnected, and I have NO
  1464.     information on subscriptions or anything like that.
  1465.  
  1466.          -- Stephen Friedl  friedl@mtndew.com   3/12/1992
  1467.  
  1468. ------------------------------------------------------------------------------
  1469. Subject: 11 What are the various models of 3B2s and their differences?
  1470. ------------------------------------------------------------------------------
  1471.  
  1472. [I'm putting this together mostly from memory and from discussions
  1473.  with other people.  Please feel free to make corrections.]
  1474.  
  1475. Some corrections/additions provided by Andrew D. Hay <adh@petrel.att.com>,
  1476. Paul S. Sawyer <paul@unhtel.unh.edu>, Mike Crom <crom@vogon.att.com>,
  1477. David Beneman <..!uunet!tacoma!dcb>, Paul Rak <pjr@emo.com>,
  1478. Kevin Darcy <kevin@cfctech.cfc.com>
  1479.  
  1480. The 3B2 family of consists of the following models:
  1481.  
  1482. 3B2/300
  1483.  
  1484.     Processor:
  1485.         WE32000, 8 MHz
  1486.         almost 1 MIPS
  1487.  
  1488.     Memory:        
  1489.         Supports a maximum of 4 MB of RAM using two half height
  1490.         2 MB memory cards.
  1491.  
  1492.     Slots:
  1493.         4 standard slots.
  1494.  
  1495.     Features:
  1496.         MFM disk controller on motherboard
  1497.         1 internal full-height drive bay
  1498.         1 720 K floppy drive
  1499.  
  1500. 3B2/310
  1501.  
  1502.     Processor:
  1503.         WE32100, 10MHz (supports optional MAU)
  1504.         1.1 MIPS
  1505.  
  1506.     Memory:
  1507.         Supports a maximum of 4 MB of RAM using two half height
  1508.         2 MB memory cards.
  1509.  
  1510.     Slots:
  1511.         4 standard slots.
  1512.  
  1513.     Features:
  1514.         MFM disk controller on motherboard
  1515.         1 internal full-height drive bay
  1516.         1 720 K floppy drive
  1517.  
  1518. 3B2/400
  1519.  
  1520.     Processor:
  1521.         WE32100, 10MHz (supports optional MAU)
  1522.         1.1 MIPS
  1523.  
  1524.     Memory:
  1525.         Supports a maximum of 4 MB of RAM using either two half
  1526.         height or full height 2 MB memory cards.
  1527.  
  1528.     Slots:
  1529.         12 standard slots.
  1530.  
  1531.     Features:
  1532.         MFM disk controller on motherboard
  1533.         2 internal full-height drive bays
  1534.         1 720 K floppy drive
  1535.         1 23 MB cartridge tape drive
  1536.  
  1537. 3B2/400S
  1538.     Same as 3B2/400 but with a SCSI controller.
  1539.  
  1540. 3B2/500
  1541.  
  1542.     Processor:
  1543.         WE32100, 18MHz
  1544.         2.1 MIPS
  1545.         2.6 MIPS w/VCache
  1546.         4.0 MIPS w/PE
  1547.  
  1548.     Memory:
  1549.         2 - 4MB cards max
  1550.  
  1551.     Slots:
  1552.         7 I/O + 4 system (MEM0, MEM1, Vcache, BUB0)
  1553.         There is also BUB1, but it is listed as unusable
  1554.         without the 22MHz upgrade.
  1555.  
  1556.     Features:
  1557.         SCSI disks
  1558.         Up to 1 additional PE
  1559.  
  1560. 3B2/522
  1561.  
  1562.     Processor:
  1563.         WE32200, 22MHz
  1564.         5.0 MIPS
  1565.  
  1566.     Memory:
  1567.         2 - 16MB cards max
  1568.  
  1569.     Slots:
  1570.         7 I/O + 4 system (MEM0, MEM1, Vcache, BUB0, BUB1)
  1571.  
  1572.     Features:
  1573.         SCSI disks
  1574.         Field upgraded 3B2/500 to same processor as 3B2/700
  1575.         Up to 1 additional PE
  1576.  
  1577. 3B2/600 (aka 3B2/1000-60)
  1578.  
  1579.     Processor:
  1580.         WE32100, 18MHz
  1581.         2.6 MIPS
  1582.         4.0 MIPS w/PE
  1583.  
  1584.     Memory:
  1585.         4 - 4MB cards max
  1586.  
  1587.     Slots:
  1588.         12 I/O + 12 system
  1589.  
  1590.     Features:
  1591.         SCSI disks
  1592.         120MB SCSI tape
  1593.         Up to 3 additional PEs
  1594.  
  1595. 3B2/700, 3B2/622 (aka 3B2/1000-70)
  1596.  
  1597.     Processor:
  1598.         WE32200, 22MHz
  1599.         4KB PCache
  1600.         5.0 MIPS
  1601.         7.5 MIPS w/1 PE
  1602.         8.5 MIPS w/2 PEs
  1603.         9.0 MIPS w/3 PEs
  1604.  
  1605.     Memory:
  1606.         4 - 16MB cards max
  1607.  
  1608.     Slots:
  1609.         12 I/O + 12 system
  1610.  
  1611.     Features:
  1612.         SCSI disks
  1613.         120MB SCSI tape
  1614.         Up to 3 PEs
  1615.         The 3B2/622 is a field upgrade for the 3B2/600
  1616.  
  1617. 3B2/1000, 3B2/600G (aka 3B2/1000-80)
  1618.  
  1619.     Processor:
  1620.         WE32200, 24MHz
  1621.         9 MIPS
  1622.         16 MIPS w/3 MPEs
  1623.  
  1624.     Memory:
  1625.         4 - 16MB cards max
  1626.  
  1627.     Slots:
  1628.         12 I/O + 12 system
  1629.  
  1630.     Features:
  1631.         SCSI disks
  1632.         Up to 3 MPEs
  1633.  
  1634. 3B2/1050 R3
  1635.  
  1636.     Processor:
  1637.         MIPS R3000A, 33MHz
  1638.  
  1639.     Memory:
  1640.         16MB - 32MB
  1641.  
  1642.     Slots:
  1643.         N/A
  1644.  
  1645.     Features:
  1646.         N/A
  1647.  
  1648. 3B2/1100 R3
  1649.  
  1650.     Processor:
  1651.         MIPS R3000A, 33MHz
  1652.  
  1653.     Memory:
  1654.         32MB - 64MB
  1655.  
  1656.     Slots:
  1657.         N/A
  1658.  
  1659.     Features:
  1660.         N/A
  1661.  
  1662. 3B15
  1663.  
  1664.     Processor:
  1665.         WE32100 (standard MAU) (?)
  1666.         2 MIPS (?)
  1667.  
  1668.     Memory:
  1669.         16 MB (?)
  1670.  
  1671.     Slots:
  1672.  
  1673.     Features:
  1674.         Standard 9-Track tape drive
  1675.         Uses 8 inch SCSI drives
  1676.  
  1677.         NOTE: Not all 3B15s have SCSI.  Some models were
  1678.         converted from 3B5s and have 8 inch FSD drives (maximum
  1679.         8, 160 MB or 340 MB).  Then there are the Lark II
  1680.         drives.  The non-SCSI tape bus can take 1-4 drives.
  1681.         The 3B5 becomes a 3B15 by a change of 2 (??) boards,
  1682.         and most importantly, a new name sticker!
  1683.  
  1684. 3B4000
  1685.  
  1686.     Processor:
  1687.         WE32100 from 3B15 as control processor
  1688.         1 to 6 3B2/600's as attached processors
  1689.  
  1690.     Memory:
  1691.  
  1692.     Slots:
  1693.  
  1694.     Features:
  1695.         Supports tons of SCSI disk
  1696.  
  1697.  
  1698. 3B2 PERIPHERALS
  1699.  
  1700. Name    Device Code     Description
  1701. ----    ------    -----------
  1702. SBD    0x0001  System motherboard
  1703. NI    0x0002  10base5 ethernet card
  1704.         SW Name        Function
  1705.         -------        --------
  1706.           NI        TCP/IP
  1707.           NAU        StarLAN 10
  1708. PORTS    0x0003    Ports card.  4 serial, 1 parallel. (includes HPP)
  1709. CTC    0x0005    Cartridge tape controller.  23 MB
  1710. NAU    0x0006    Network access unit.  1 MB STARLAN
  1711. SPSC    0x0045  X.25 adapter
  1712. SCSI    0x0100    SCSI host adapter
  1713. AIC    0x0101    Alarm interface circuit
  1714. EPORTS    0x0102    Extended ports.  8 serial ports
  1715. ISC    0x0201    Intelligent serial controller
  1716.         SW Name        Function
  1717.         -------        --------
  1718.         SNABSC        3270 Emulation,RJE (old) (Bisync/SNA)
  1719.         SI        3270 Emulation,RJE,LU6.2 (Bisync/SNA)
  1720.         X25        X.25 Communication
  1721. XDC    0x0204    External disk controller for 2 more MFM drives
  1722. FXM    0x0215    Fiber eXpansion Module
  1723. DKIT    0x0308    "Datakit" fiber-optic card (connect to datakit/ISN switch)
  1724. MAU    0xFD00    Math accelerator unit
  1725. VCACHE    0xFE00    Extended memory cache (3B2/600 and higher, exc. 3B2/1000-80)
  1726. MPB    0xFF00    Multiprocessor board (3B2/600 and higher, exc. 3B2/1000-80)
  1727. MPB    0xFF01    Multiprocessor board (3B2/1000-80 only)
  1728.  
  1729. ------------------------------------------------------------------------------
  1730. Subject: 12 How do I build GCC on the 3B2?
  1731. ------------------------------------------------------------------------------
  1732.  
  1733. John L. Wehle ported GCC to the WE32000 series processor, and it
  1734. first appeared in release 2.2 of GCC.
  1735.  
  1736. To build the GCC 2.3.3 release on the 3B2, download the latest GCC
  1737. distribution and allocate at least 40 MB of disk space to do the
  1738. build.  Follow the directions in the INSTALL file.  The following
  1739. are some notes that will make the install go smoother.
  1740.  
  1741. If you are already using GCC 2.2.2, use that and follow the directions
  1742. as listed in the INSTALL file.  It's by far the easiest way to go.
  1743. Here is a summary:
  1744.  
  1745.     $ configure --target=3b2
  1746.     $ make LANGUAGES=c CC=/usr/local/bin/gcc
  1747.     $ make stage1 LANGUAGES=c CC=/usr/local/bin/gcc
  1748.     $ make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
  1749.     [continue with the common directions below]
  1750.  
  1751. If you don't have a previous version of GCC available and will be
  1752. using the AT&T supplied compiler, there some special thing you're
  1753. going to have to do.  First of all, older versions of /lib/cpp are
  1754. not capable of processing one of the source files.  I recommend
  1755. building the distribution until the GNU cpp is done.  Then,
  1756. temporarily replace your /lib/cpp with the GNU version, and add
  1757. the following flag to CFLAGS in the Makefile:
  1758.  
  1759. CFLAGS = -U__STDC__
  1760.  
  1761. When stage1 is complete, you could remove the -U__STDC__ flag
  1762. and restore your original cpp.
  1763.  
  1764. Basically, the steps are as follows:
  1765.  
  1766.     $ configure --target=3b2
  1767.     $ make LANGUAGES=c
  1768.     [Building cccp.c will probably fail.  Fix the cpp
  1769.      as described above]
  1770.     $ make LANGUAGES=c
  1771.     $ make stage1 LANGUAGES=c
  1772.     $ make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
  1773.  
  1774. [It is important to note that due to a bug in the AT&T compiler,
  1775.  the optimizer doesn't get compiled correctly at this point.]
  1776.  
  1777. The following are the common directions for old GCC users and
  1778. AT&T compiler users.
  1779.  
  1780.     $ make stage2
  1781.     $ make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
  1782.  
  1783. [Some people still have problems with the optimizer at this point.
  1784.  If you do, just do not use the -O flag when compiling GCC.  The
  1785.  symptom you will experience that tells you the -O flag should be
  1786.  removed is the compilation of cccp.c will take a VERY long time.
  1787.  Kill the compile and restart without the -O.]
  1788.  
  1789.     $ make stage3
  1790.     $ make CC=stage3/gcc CFLAGS="-Bstage3/ -g -O"
  1791.  
  1792. To optionally verify everything built correctly:
  1793.  
  1794.     $ for file in *.o; do
  1795.     > tail +10c $file > foo1
  1796.     > tail +10c stage3/$file > foo2
  1797.     > cmp foo1 foo2 || echo $file
  1798.     > done
  1799.  
  1800. Then, to install the distribution:
  1801.  
  1802.     $ make CC=stage3/gcc CFLAGS="-Bstage3/ -g -O" install
  1803.  
  1804. Good luck!
  1805.  
  1806. [These notes are a combination of my own experiences with building the
  1807.  GCC compiler on a 3B2/400 and discussions with John Wehle, the author
  1808.  of the port.]
  1809.  
  1810. NOTES:
  1811.  
  1812. The GCC binaries available on several anonymous FTP sites will not
  1813. work with certain version of the standard C compiler.  It appears
  1814. to be some sort of linker problem.  I may have a fix for it.
  1815. Contact me via E-mail if you fall into this category.
  1816.  
  1817. Speaking of linker problems, GCC 2.2.2 will not work all that well with
  1818. the standard C shared library -lc_s.  The workaround for this is
  1819. to compile your program with GCC, but the link will fail.  When it
  1820. does, use something like the following to do the link stage:
  1821.  
  1822. $ cc -O -L/usr/local/lib/gcc-lib/we32k-att-sysv/2.2.2 program.o \
  1823.     -o program -lgcc -lc_s
  1824.  
  1825. This way, you will not only get fast binaries, but small ones as
  1826. well.  This problem has been corrected in 2.3.2 (Thanks Stallman!)
  1827.  
  1828. You may need to raise your ULIMIT to compile the g++ compiler as
  1829. the executable is larger than 1 MB.
  1830.  
  1831. ------------------------------------------------------------------------------
  1832. Subject: 13 What is the NVRAM SANITY FAILURE?
  1833. ------------------------------------------------------------------------------
  1834.  
  1835. The full error message resembles the following:
  1836.  
  1837. FW ERROR 1-01: NVRAM SANITY FAILURE
  1838.                DEFAULT VALUES ASSUMED
  1839.                IF REPEATED, CHECK THE BATTERY
  1840.  
  1841. The 3B2 stores information such as the time of day clock and machine
  1842. name in non-volatile memory.  The memory is backed up by a Lithium
  1843. battery, that does die after a few years.  The battery is normally
  1844. located in the right side of the case, near the cards, and connected to
  1845. the motherboard under the card in slot 2.  Replacing the battery almost
  1846. always requires the complete removal of the card cage.  Replacement
  1847. batteries can be found at some electronics stores.  I won't list exact
  1848. specifications because I have seen 3 different types of batteries so
  1849. far, and there may be more.  Your best bet is to just buy another
  1850. batter with the exact same voltage and modify the connector to fit.
  1851.  
  1852. ------------------------------------------------------------------------------
  1853. Subject: 14 Is there an implementation of SLIP for the 3B2?
  1854. ------------------------------------------------------------------------------
  1855.  
  1856. Rumor has it that there was one written by Wollongong, but AT&T
  1857. purchased exclusive marketing rights to WIN TCP/IP for the 3B2, but
  1858. chose NOT to include SLIP.  There is the NOS (KA9Q) package that
  1859. supposedly provides SLIP capabilities, but I have not tried it and
  1860. don't know if it'll run on a 3B2.
  1861.  
  1862. ------------------------------------------------------------------------------
  1863. Subject: 15 What are the known bugs in the Wollongong WIN TCP software?
  1864. ------------------------------------------------------------------------------
  1865.  
  1866. From: Steven M. Kilby <skilby@ucqais.cba.uc.edu>
  1867.  
  1868. rexecd:
  1869.     The rexecd released with WIN TCP for the 3B2 has the following bug.
  1870. This bug has been verified on a 400 with TCP 3.0.1 and 3.2.  When executing
  1871. a command using the rexecd daemon, the gid of the user is set and left at
  1872. root.  This is very apparent when executing a command that creates a shell,
  1873. such as XTerm.  The only available solutions at present are to rewrite the
  1874. daemon yourself, or.... not run it.  The problem has been reported to CERT.
  1875.  
  1876. ------------------------------------------------------------------------------
  1877. Subject: 16 Is there an implementation of NFS for the 3B2?
  1878. ------------------------------------------------------------------------------
  1879.  
  1880. The person to contact about 3B2 software is Kristine Schneider
  1881. [708-979-1017].  I called her and obtained the following information
  1882. about NFS:
  1883.  
  1884. Latest Versions:        1.3
  1885. Requires:               System V Rel 3.2.1 or 3.2.3, WIN/TCP 3.2 or higher
  1886. Product Code:           C274-0NB3-000
  1887. List Price:             $1295.00
  1888.  
  1889. This package is for the WE versions of the 3B2.  NFS comes bundled with
  1890. SVR4 for RISC-based 3B2's.  TCP/IP on the other hand, does not and has
  1891. to be purchased separately.
  1892. -- 
  1893. Stephen J Friedl | Software Consultant | Tustin, CA  |    +1 714 544-6561
  1894. 3B2-kind-of-guy  | I speak for me only |   KA8CMY    |  friedl@mtndew.com
  1895.  
  1896. "Looks like UNIX.  Feels like UNIX.  Works like MVS." - recent IBM ad
  1897.