home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / NetBSD / docs-netbsd / 386BSD-FAQ / BSD-FAQ-part03 < prev    next >
Text File  |  1994-11-27  |  70KB  |  1,648 lines

  1. Archive-name: 386bsd-faq/part3
  2.  
  3. Section 2.    (Common installation questions)
  4.  
  5.  
  6. 2.0    Install process
  7.     
  8.     The 386bsd system is distributed in many ways.  One of the most 
  9.     common is via DOS diskettes, (either 3 1/2 or 5 1/4, both high 
  10.     density) with the actual distribution being a 'CPIO archive' broken 
  11.     into 240K pieces.  This allows the distribution to fit onto a 
  12.     minimum number of floppies. 
  13.     
  14.     Once the files are on floppies, thoughts usually turn to questions 
  15.     about how to install the boot image on a floppy.  The rawrite 
  16.     program (for DOS) is used to write the bootable images (dist.fs and 
  17.     fixit.fs) onto floppies.  The same image can used for 3 1/2 and 
  18.     5 1/4 high density diskettes.  Low density diskettes are not 
  19.     supported in this version of 386bsd.
  20.     
  21.     Once the bootable images are written onto the floppies, insert 
  22.     the dist.fs disk into the A: drive and reboot.  If the system does 
  23.     not boot, see section 2.5 below for more information.
  24.     
  25.     If the disk boots, type install and proceed to use the 
  26.     INSTALL.NOTES to get more information.
  27.     
  28.     Problems with the install are either related to hardware (i.e. Do 
  29.     you want to install on your T.V.?) or software.  Of the hardware 
  30.     issues, the most common FAQs are usually straight out of the 
  31.     installation notes.  Of the software issues, there are only two 
  32.     that really concern us.  The first is bad files.
  33.     
  34.     On some systems, files that are loaded from floppy appear to 
  35.     'go bad' when they arrive on the hard disk.  Try some of these 
  36.     solutions:
  37.  
  38.     - You forgot binary.  Don't get insulted.  Those of us that FTP 
  39.     for a living forget sometimes.  If so, the distribution will come 
  40.     out with all different sizes and install will complain about every 
  41.     disk.
  42.     
  43.     - One or two of the files are no good.  Try getting them again.  
  44.     As a  precaution, rename the bad files on your hard drive to names 
  45.     like foo.1 and bob.23.  Copy the files again from floppy.  If they 
  46.     are still bad, rename the file, and the one immediately before the 
  47.     first bad file (bin01.23 if bin01.24 is bad) and copy them again.  
  48.     If they are still bad, download those files again from the 
  49.     distribution site (including the one before and after the bad one) 
  50.     and try again.  
  51.         The reason for renaming the files is that sometimes, especially 
  52.     with drive that do not auto-magically record bad sectors, you could 
  53.     copy a distribution file onto a bad spot on the disk.  If this 
  54.     happens, you want to isolate the bad spot.  The easiest way to do 
  55.     that is just leave the bad file on it.
  56.     
  57.     - Keep trying, these same files have been used by literally 
  58.     thousands of people to install 386bsd.
  59.  
  60.     For those of you that have received your system on a CD-ROM, you
  61.     will need to find at least three things.  One is this file.  Since 
  62.     you are reading it, I assume that you got it already. :-)  If you 
  63.     can't read this file (you got it from the newsgroup, for example)
  64.     there is one thing that you need to know so you don't look like
  65.     a complete idiot on the net.
  66.  
  67.     There is no such thing as a Unix CD-ROM.  They are all in something
  68.     called the ISO CD-ROM format.  You can read them as the D: drive
  69.     in DOS, or mount them on your Sun or SVR4 system or whatever.
  70.  
  71.     Second, you will need to find the directory with the bootable disk
  72.     images in it.  They will have self explanatory names like:
  73.  
  74.     kerncopy.fs
  75.     base0-9.fs
  76.     fred.fs
  77.     genericaha.fs
  78.     boot-me-first.fs
  79.     this-is-the-file-with-the-fs-extension.fs
  80.  
  81.     You get the idea, right?  Look for the MS-DOS program "RAWRITE.EXE".
  82.     It should be right near the file system (.fs) files.  Another clue
  83.     for the truly lost will be that the file system files will all be
  84.     1.2 Meg big.  These files will fit onto either a 1.2Meg 5.25 inch
  85.     diskette, or a 1.44Meg 2.5 inch diskette.  Use rawrite to write the
  86.     fs files to diskettes and boot from the diskettes.
  87.  
  88.     You did back your system up, right?
  89.     
  90.  
  91. 2.0.1    Tiny boot disk  (versions and media formats)
  92.     
  93.     There is currently one official 386bsd 0.1 boot disk, referred 
  94.     to as the "Tiny" boot disk.  In addition, there is at least one 
  95.     patched unofficial boot disk available from agate and its mirror 
  96.     sites.
  97.  
  98.     There are a few FAQs from the boot/install disk.
  99.  
  100.  
  101. 2.0.1.1    Where does extract go when I reboot?
  102.     
  103.     It was in /tmp, which is cleaned the first time you reboot the 
  104.     system from the hard drive.  If you have just booted from the 
  105.     hard drive for the second time, chances are you just wiped out 
  106.     extract.  It is not really needed, since the instructions for 
  107.     building your own install are included in section 2.5.2 of 
  108.     the FAQ, under custom installation.
  109.  
  110.     When installing NetBSD, the set_tmp_dir and extract programs are 
  111.     part of the .profile that is booted when you are installing.  
  112.     This .profile is overwritten as part of the install process, and
  113.     extract then disappears.  If you need extract again, you can mount 
  114.     the install disk and source .profile.  This will recreate these 
  115.     two routines.
  116.  
  117.     There is also an install procedure that FreeBSD uses that does
  118.     the same job.  It is defined as part of the .profile on one of the
  119.     installation floppies.  You can either copy it from there, or use
  120.     the procedure for 'real disk partitioning'.
  121.  
  122.     
  123. 2.0.1.2    I put the floppy in and try to boot, and nothing happens.  What now?
  124.  
  125.     There are lots of possibilities.  We will start with the oldest 
  126.     (386bsd 0.1) problems.
  127.  
  128.     This is usually referred to as the Compaq boot problem.  The easiest 
  129.     solution is to get a patched boot disk.  The normal source for this 
  130.     disk is agate (also known by its real name agate.berkeley.edu) in 
  131.     the directory /pub/386BSD/386bsd-0.1/unofficial/patchkit.
  132.  
  133.     Another source of possible hope for you is to grab the NetBSD bootable
  134.     disks.  They are compatible with 386BSD and allow you to install on
  135.     some of the more recalcitrant hardware.
  136.  
  137.     The FreeBSD install process is said to be better than the NetBSD
  138.     program for some machines.  Could be.  They are all available for
  139.     free from the net.  Try it.
  140.  
  141.  
  142. 2.0.1.3a    The floppy booted, but now the hard disk won't boot?
  143. 2.0.1.3b    I am trying to reinstall.  I run install and it loops asking
  144.               me if I want to use the whole disk?
  145.     
  146.     The most likely culprit is your hard disk controller.  It is 
  147.     probably doing some type of disk translation for you.  If this is 
  148.     the case (assume it is) then you will need to find out the real 
  149.     disk controller geometry, and rewrite your disk label.  See section 
  150.     2.6.2, but before doing that get the program pfdisk.exe from agate 
  151.     (It is out there, somewhere in the ~unofficial/ref-tfs stuff).  
  152.     This program will tell you what the controller geometry is (right 
  153.     before it reboots your computer).  Make the disklabel agree with 
  154.     this program and your system should boot.  You may have to 
  155.     reinstall, but at least your disklabel will be right.  Note that 
  156.     this is a nearly required step for all NetBSD and FreeBSD installs.
  157.     You need to know what the disk geometry is before the BIOS messes 
  158.     with it.  If you start having these kinds of installation 
  159.     problems, I can virtually assure you that it is because your 
  160.     controller geometry and your disklabel geometry are different.
  161.  
  162.     NOTE:  If the hard disk controller does NOT have an option for
  163.     turning off the geometry, you may well be completely out of
  164.     luck.  There are very few controllers that fall into this
  165.     category.  The ones that do full time translation will often
  166.     boot up in translated mode.  pfdisk will help you determine the
  167.     correct geometry for your drive by telling you what the geometry
  168.     looks like when 386bsd boots up.  
  169.  
  170.     But on the other hand, maybe not...
  171.  
  172.     See section 2.5.5 below for a detailed set of instructions about
  173.     getting NetBSD (and by implication 386BSD and FreeBSD) to work with 
  174.     a system that uses full time translation.
  175.  
  176.  
  177. 2.0.2    Fix-it boot disk 
  178.     
  179.     The fix-it disk contains a series of programs that are 
  180.     particularly handy for 'fixing' your disk in case you can't get 
  181.     logged in.  It includes the disklabel program and other utilities 
  182.     for system maintenance.
  183.  
  184.     For NetBSD and FreeBSD, you will probably have to build your own
  185.     Fixit disk.  You can mount the original file system floppy and
  186.     beat it to death if you want.  Put programs on it that you will 
  187.     need to build a new system.  As I think of them, I will put them 
  188.     in.
  189.  
  190. 2.1    Binary distribution
  191.  
  192.     The binary distribution 386bsd 0.1 consists of virtually all of 
  193.     the programs that a typical *nix system would be expected to have.  
  194.     The list includes mail, UUCP, GCC version 1.39, and others.
  195.     
  196.     Known problems with the binary distribution include the following:
  197.     
  198.     1.  Mtools as shipped in the bindist does not always work.  The 
  199.     ones on the install disk seem to work fine.
  200.     
  201.     2.  The install script built into the binary distribution does 
  202.     not correctly install all of the files and symbolic links that it 
  203.     should.  For example,  some of the symbolic links to the 
  204.     /usr/include directory are botched up.
  205.     
  206.     3.  'tip', the modem control program, does not always work right 
  207.     out of the box.
  208.     
  209.     4.  Any program that relies on a valid symbol table in the kernel 
  210.     (e.g. ps) will not work because the kernel is stripped so that it 
  211.     will fit onto the bootable disk.
  212.  
  213.     These problems are all cured either by patches available in the
  214.     patchkit, or through re-compilation.
  215.  
  216.     FreeBSD and NetBSD have solved these problems.  This information
  217.     is included primarily for those few people that get sucked into
  218.     using an old version of 386bsd for a class or something.
  219.  
  220.  
  221. 2.2    Source distribution
  222.  
  223.     The source distribution 386bsd 0.1 contains all of the source code 
  224.     for every program in the bindist.  Known problems (which are fixed 
  225.     in the patchkit) include the following:
  226.     
  227.     1.  There is an error message during install about install.src01 
  228.     not being found.  It is not an error, there isn't an install.src01.  
  229.     Think of it as Bill and Lynne's idea of a practical joke.
  230.     
  231.     2.  There are several symbolic links that are not made correctly.  
  232.     In addition, there are several files that should have been deleted 
  233.     (to ensure clean 'make's) before the files were packed.  This is 
  234.     fixed by the patchkit, as of 0.2.3.
  235.       
  236.     3.  The /usr/src tree does not compile cleanly.  This is fixed by 
  237.     the patchkit, as of 0.2.3, or by NetBSD or FreeBSD. 
  238.     
  239.  
  240. 2.3    Additional software distribution
  241.  
  242.     The etc distribution contains source trees for many programs that 
  243.     are of interest to 386bsd users.  The complete ISO software 
  244.     development environment, as well as many additional software 
  245.     packages (and all of the games) are included in this distribution.
  246.  
  247.     The most common problem with the etc distribution is the error 
  248.     "too many files open".  Followed closely by "install.etc01 not 
  249.     found".  The latter is a annoyance (see above) but the former can 
  250.     be easily overcome in a couple of ways.
  251.     
  252.     The "too many files open" is a result of the "cat" command leaving 
  253.     files open after it has read a file.   Dwight E. Cass (his Email 
  254.     address is dec@lazarus.nrtc.northrop.com) has provided us with this 
  255.     anecdotal work around for his own experiences:
  256.     
  257.     --------------------------------------------------------------------
  258.     So - back to installation.  This time, when I get to the etc01 
  259.     partition, I am a bit more awake, so I run it from Csh (with the 
  260.     open file limit at 256).  Works pretty well - but complains at the 
  261.     end that it could not do the final configuration because it could 
  262.     not find the configuration file - I checked the MANIFEST and the 
  263.     file is not there, so I finally decided to ignore the message (but 
  264.     it was bothersome!)  Once etc01 was done - source was easy ... and 
  265.     I am now up and running, and quite impressed!!!
  266.     --------------------------------------------------------------------
  267.     
  268.     Another method is to use a loop construct in the Bourne shell.  For 
  269.     example:
  270.     
  271.     for i in (etc01.*)
  272.     do
  273.       cat $i
  274.     done | compress -d | cpio -idalmu
  275.  
  276.     -or-
  277.     
  278.     for i in (etc01.*)
  279.     do
  280.       zcat $i
  281.     done | cpio -idalmu
  282.     
  283.     will also solve the problem handily.  This solution solves the problem
  284.     by running cat multiple times, with one file each.  Since cat now only
  285.     has one file, there are no limits on the number of files that can be
  286.     used for the distribution set.
  287.     
  288. 2.4    Patch-kit
  289.     
  290.     The patchkit has been completely deprecated.  FreeBSD and NetBSD
  291.     are both mature programs that will serve the average user extremely
  292.     well.  The patchkit may still be available, but it is only required
  293.     if you are installing the original 386BSD 0.1 version.
  294.  
  295.     There are two mailing lists dedicated to the patchkit.  They are as 
  296.     follows:
  297.  
  298.     386bsd-patchkit@cs.montana.edu, which is primarily for discussion of
  299.     up-coming patches and patchkit philosophy.
  300.     
  301.     patches@cs.montana.edu, which is dedicated to submitting new,
  302.     untested patches.
  303.     
  304.     The current (and final) version of the patchkit is 0.2.4, which 
  305.     has absolutely no relationship with the new version of 386bsd.  
  306.     It is available by anonymous FTP from several sites throughout 
  307.     the net.
  308.  
  309.  
  310. 2.5    Configuration
  311.  
  312.     By far, the most common configuration questions are partitioning, 
  313.     followed closely by all of the other software in the system.  
  314.     Sendmail and named are also problems occasionally, but the 
  315.     documentation that comes with them usually gets you through.  If 
  316.     you run into a problem, post a question to comp.os.386bsd.questions.  
  317.  
  318.     
  319.     A less frequently asked question is "Where can I get info on how 
  320.     to configure a kernel?"  The answer to this question has been 
  321.     provided by Richard Murphey (Email address rich@Rice.edu).  
  322.     
  323.     --------------------------------------------------------------------
  324.     Ready-to-print PostScript files for each section of the net2 system 
  325.     maintainer's manual are on nova.cc.purdue.edu in 
  326.     pub/386bsd/submissions/bsd.manuals.
  327.     
  328.     smm.02.config.ps.Z describes kernel configuration for the VAX, 
  329.     however some of it is relevant to 386BSD.  There is no freely 
  330.     available rewrite for 386BSD that I know of.  
  331.     --------------------------------------------------------------------
  332.  
  333.     Most of these manuals are now included in the standard release of
  334.     NetBSD and FreeBSD in the /usr/share/doc directories.
  335.  
  336. 2.5.1    Partitions
  337.  
  338.     This section describes many of the questions that people ask about 
  339.     hard disk partitioning.
  340.     
  341.     The first is a brief explanation of the BSD system disk partitions.
  342.  
  343. 2.5.1.1    What is a 'disklabel' and why do I need one?
  344.  
  345.     The BSD partition table supplements the DOS partition table.  The 
  346.     entries in this table are meaningful to BSD.  There are eight 
  347.     partitions in the BSD partition table, and they are normally 
  348.     lettered from a: to h:.  This supplemental partition table is
  349.     often refered to as the 'disklabel'.
  350.     
  351.  
  352.     This tutorial is provided by by "<haley@husc.harvard.edu>" and 
  353.     provides an  excellent overview of the hard disk partitioning 
  354.     procedure from start to finish.
  355.  
  356.         "Disk Partitioning for the Compleat Idiot"
  357.  
  358.     There are times, in our trials with our computers, that it becomes
  359.     necessary to mess about with the disklabel. For those not
  360.     knowledgeable of BSD or Unix Systems administration, this somewhat
  361.     simple task can be somewhat daunting. This document is the result of
  362.     my own short experience.
  363.  
  364.     This does not cover physical installation of the disk. For those who
  365.     are having trouble with that, I direct you to any of the fine manuals
  366.     dealing with hard drives and your hardware.
  367.  
  368.     It also does not deal with the vagaries of the DOS partition manager.
  369.     It assumes you have done that as well, if need be...
  370.  
  371.     After the drive is physically installed and is recognized in the BSD
  372.     startup, and it mentions both your drives, in the order you expect
  373.     them... Or perhaps just the one, if you had special problems with
  374.     installation. Now all you have to do is "disklabel" the drive... Well,
  375.     what is *THAT*??? 
  376.  
  377.     The disklabel is used by the kernel and other utilities to tell how
  378.     you want or have the drive set up *logically*. 
  379.  
  380.     In a beautiful world, we might have a very free hand at this set-up
  381.     and expect it to work. Unfortunately, the authors of the software
  382.     dealing with the hard drives either decided or were forced by
  383.     circumstance to make certain things about the disklabel inviolate. 
  384.     
  385.     When you let the installation disk set the disklabel for you first
  386.     drive it comes out like this:
  387.  
  388.         The a: partition is the primary partition.
  389.         The b: partition is the swap partition.
  390.         The c: partition is the amount of the disk used by 386bsd 
  391.             (swap and data)
  392.         The d: partition is the entire disk.
  393.  
  394.     Of these, the only one that could be different is a:... 
  395.  
  396.     (Note for those of us who have spent far too much time using DOS: the
  397.     labels a: b: c: d: e: f: g: h: DO NOT refer to DOS drives, but to
  398.     partitions in your 386bsd partition... confusing, eh?  For the sake 
  399.     of consistency I will never make a reference to DOS drives except by
  400.     saying something like "DOS drive C:". )
  401.  
  402.     It's possible to divide up the disk a bit differently, but three
  403.     things MUST be:
  404.  
  405.     c: must refer to every cylinder you wish 386bsd to use, either
  406.     for your data or the swap space. 
  407.  
  408.     d: Must refer to the whole disk, from cylinder 0 to the last
  409.     one...
  410.     
  411.     b: Must always refer to a swap partition. Note that on any
  412.     other than the first disk it does not have to, but if you
  413.     enable swapping on that drive, and you are using b: for
  414.     something else, that something else will be killed.
  415.  
  416.     The reason for this is simple: It's hard coded in.
  417.  
  418.     "WHY?" you ask? (I did...) Probably time constraints, maybe tradition.
  419.     But if you look at the code in "isofs" and "ufs" in your sys.386bsd
  420.     directory, you will see numerous comments asking some of the same
  421.     questions, which leads me to believe this may change in the future,
  422.     making our lives both more complicated and easier at the same time...
  423.  
  424.     Getting past the esoteric explanations, here is a method for figuring
  425.     out and "labeling" your disk.
  426.  
  427.     We'll start with the disklabel from my second disk, in the form most
  428.     understandable by humans... #'s signify the start of a comment.
  429.  
  430.     # /dev/rwd1d:
  431.     type: ESDI
  432.     disk: maxtor7245
  433.     label: 
  434.     flags:
  435.     bytes/sector: 512
  436.     sectors/track: 31
  437.     tracks/cylinder: 16
  438.     sectors/cylinder: 496
  439.     cylinders: 967
  440.     rpm: 3600
  441.     interleave: 1
  442.     trackskew: 0
  443.     cylinderskew: 0
  444.     headswitch: 0        # milliseconds
  445.     track-to-track seek: 0    # milliseconds
  446.     drivedata: 0 
  447.     
  448.     5 partitions:
  449.     #      size  offset  fstype [fsize bsize   cpg]
  450.       a:   198400       0  4.2BSD    512  4096    16     # (Cyl.    0 - 399)
  451.       b:    31744  447392    swap                      # (Cyl.  902 - 965)
  452.       c:   479136       0  unused      0     0           # (Cyl.    0 - 965)
  453.       d:   479136       0  unused      0     0           # (Cyl.    0 - 965)
  454.       e:   248992  198400  4.2BSD    512  4096    16    # (Cyl.  400 - 901)
  455.     
  456.     Some math:
  457.     Looking at the comments at the end and the size and offset columns,
  458.     size is a function of (last - first + 1) * sectors per cylinder:
  459.     a: 399 - 0 + 1 = 400 * 496 = 198400
  460.     b: 965 - 902 + 1 = 64 * 496 = 31744
  461.     c: & d: (Since I have no DOS partition, whatsoever)
  462.           965 - 0 = 1 = 966 * 496 = 479136
  463.     e: 901 - 400 = 502 * 496 = 248992
  464.     
  465.     248992 + 198400 + 31744 = 479136 (all the parts should equal the whole)
  466.     
  467.     Some things I discovered  (for all you in novice land like me...)
  468.     
  469.     1. As you can see this disk has 967 cylinders, but I only refer to 966
  470.     of them, 0 - 965... This is because it's good practice to leave the
  471.     "Landing Zone" cylinder out of it... This is usually the last
  472.     cylinder, and it's where the read/write heads hang out when your disk
  473.     is off...
  474.  
  475.     Note from TSgt Dave:
  476.  
  477.     Most modern drive heads come to rest on a polished surface inside the 
  478.     highest cylinder.  I could be mistaken, of course, and the Hard Drive 
  479.     Bible (or other appropriate reference manual) will tell the tale for 
  480.     each drive.
  481.  
  482.     2. a: can be a regular partition, b: should be swap, c: everything
  483.     386bsd will get to use, including swap. d: is the entire disk from 
  484.     0 - (cylinder_per_disk - 2)   [leaving out the Landing Zone]
  485.  
  486.     On the boot drive (The drive that actually contains the kernel), a: 
  487.     is the boot partition.  On all other drives, it is a regular partition.
  488.  
  489.     You can then use e - h for your other partitions. I am not sure
  490.     whether you could specify b: as other than a swap partition and not
  491.     run into trouble, but you could surely make it a zero sized one
  492.     starting and stopping on the Landing Zone...
  493.  
  494.     Note from TSgt Dave:
  495.  
  496.     This is a good idea.  Another way to accomplish this is to
  497.     simply not specify it in the map.
  498.  
  499.     3. Stupid human trick: When doing the math don't forget that 400 - 900
  500.     refers to 50*1* cylinders. I did, for a while. No great problem I
  501.     suspect, but why waste a cylinder...
  502.  
  503.     4. newfs'ing really is that simple if you have the label right:
  504.     "newfs /dev/rwd?x config_template" where the question mark is the 
  505.     physical disk, the x is a partition letter, and the config_template 
  506.     is the configuration from /etc/disktab for your disk drive. 
  507.  
  508.     * NOTE:  This is a thumbnail sketch; read the man page to verify all 
  509.     of the options and be sure about how to proceed...
  510.     
  511.     5. then fsck the partition: 
  512.     fsck /dev/rwd?x 
  513.     
  514.     Don't forget that fsck should be run on the RAW device.
  515.  
  516.     6. As long as it checks out, you can then mount it and do disk things
  517.     with it...
  518.  
  519.     7. Add it to the fstab... (follow the man page).  Don't forget 
  520.     that your new swap partition won't work if your kernel isn't 
  521.     configured for it, but it won't cause you any problem to have 
  522.     it there. 
  523.  
  524.     One last note from TSgt Dave:
  525.  
  526.     And I have yet to figure out a way to determine if it is or
  527.     isn't using the swap partition anyway.  There is a program called
  528.     'swapinfo' and it is part of the NetBSD source tree.  On my system, 
  529.     it tells me that I never use the swap area. :)
  530.  
  531.     Comnonly used definitions:
  532.  
  533.     bsize:
  534.     Block Size:  This is the smallest allocatable area on a disk file 
  535.     system, sort of.  A file uses the maximum amount of blocks until it
  536.     can not completely fill up a block. 
  537.  
  538.     fsize:
  539.     Fragment Size:  This is the size of the 'leftover' data that didn't
  540.     fit into a full block.  For example, assuming a using an 8K Block
  541.     Size/1K Fragment Size, a 34.5K file, would use up 4-8K Blocks (4 *
  542.     8K = 32K) and 3 1K fragments (3 * 1K = 3K).  There is 512 bytes of
  543.     wasted space, since 32K + 3K = 35K, which is 512 bytes larger than
  544.     34.5K.  If you want to reduce the amount of wasted space, you can
  545.     reduce your fragment size, but you also reduce the amount of data
  546.     you read at one time, so your disk performance decreases also.
  547.     A good setup is 8K/1K for performance, but if you are really
  548.     concerned about wasted space you can consider using a 4K/512byte
  549.     filesystem.
  550.  
  551.     For further information, find an article that explains the Berkeley
  552.     FFS in more detail.
  553.  
  554.     cpg:
  555.     Cylinders Per Group, it determines the cylinder group size, which 
  556.     in turn determines the number and location of the alternate 
  557.     superblocks.
  558.  
  559.  
  560.     Cgd posted a description of how to manually install 386bsd and 
  561.     create 'real' BSD partitions.  It is excerpted below:
  562.     
  563.     --------------------------------------------------------------------
  564.     HOW TO GET 386bsd 0.1 INSTALLED WITH "REAL" PARTITIONING:
  565.     
  566.     (remember, if things don't work, they might be in places that aren't 
  567.     normally looked in... things should work as below, but you might 
  568.     have to use explicit paths occasionally... the 'better' stuff -- 
  569.     mount, umount, cp, etc... is in /usr/distbin on the fixit floppy...  
  570.     even mknod is there, if the devices you need aren't on the fixit 
  571.     floppy...) 
  572.  
  573.     (1) boot the fixit floppy
  574.     (2) disklabel the disk as appropriate
  575.     (3) newfs the partitions
  576.     (4) mount the new root partition under /mnt
  577.     (5) mkdir /mnt/usr
  578.     (6) mount the new /usr partition under /mnt/usr
  579.  
  580.     (7) cpio the entire contents of the fixit floppy to the hard drive
  581.         cd /
  582.         ls .profile * [0-ln-z]*/* */*/* | cpio -pdalmu /mnt
  583.         (NOTE: [0-ln-z]*/* is to avoid matching mnt/mnt)
  584.     (8) copy /usr/distbin/mount and /usr/distbin/umount to /mnt (so that
  585.         they'll be in the new root partition, so you can mount the
  586.         new /usr partition...)
  587.     (9) shutdown
  588.         and the eject the floppy.
  589.     (10) reboot off the hard drive, then fsck -p <root raw device>
  590.         If there are any errors, after the fsck is done, hit
  591.         ctl-alt-delete, and repeat this step.
  592.     (11) fsck -p <usr raw device>
  593.     (12) mount -u <root device> /
  594.     (13) mount <usr device> /usr
  595.     (14) insert 0.1 boot/install floppy (dist.fs) into floppy drive
  596.         and "mount /dev/fd0a /mnt"
  597.     (15) cd /mnt
  598.         and then
  599.         usr/bin/zcat etc/baselist.Z | usr/bin/cpio -pdalmu /
  600.     (16) cd /
  601.         and then
  602.     /mnt/usr/bin/zcat /mnt/etc/baseutils.cpio.Z | /mnt/usr/bin/cpio -idalmu
  603.     (17) umount /mnt    then eject the floppy
  604.     (18) umount /usr
  605.     (19) shutdown
  606.     (20) reboot off the hard drive, and get all of the various files (the
  607.         bindist files, srcdist files, etc...).
  608.         I put them into /usr/tmp, because there wasn't enough space
  609.         in /tmp (because it was on a small root partition...).
  610.     (21) cd / ; cat <all the binary files> | uncompress | cpio -idalmu
  611.     (22) rm <all the binary files>
  612.     (23) put your hostname into "/etc/myname" and put your ip addr/hostname
  613.         into /etc/hosts.
  614.     (24) make an fstab for yourself.  specifically, you want something like:
  615.         <root device name>    /    ufs rw 1 1
  616.         <usr device name>    /usr    ufs rw 1 2
  617.     
  618.     congratulations!  you now have a working system!
  619.     
  620.     you can repeat step 21 for the srcdist and etcdist files, as well, 
  621.     if you wish...
  622.  
  623.  
  624. 2.5.2    Common Disk Label Problems.
  625. 2.5.2.1    Swap space.
  626.  
  627.     Nate Williams provides a short tutorial on swap space in 386bsd, 
  628.     excerpted below:
  629.     
  630.     To be able to use additional swap partitions, you need to specify 
  631.     them in the config (/sys/i386/conf/WHATEVER) file.
  632.     
  633.     Ex:
  634.     
  635.     config          "386bsd"        root on sd0 swap on sd0 and sd1
  636.     
  637.     Allows swap on sd0 and sd1
  638.     
  639.     config          "386bsd"        root on wd0 swap on wd0 and sd0
  640.     
  641.     This would allow swap on both wd0 and sd0 OR whichever (both/either) 
  642.     of the two had a valid disklabel.  Note, you can really screw 
  643.     yourself up with this, if you should happen to not want to swap to 
  644.     this partition, and it happens to be the first one found...
  645.     
  646.     The problem of not being able to swap was from the config file not 
  647.     having wd1 in it.
  648.     
  649.     controller      wd0     at isa? port "IO_WD1" bio irq 14 vector wdintr
  650.     disk            wd0     at wd0 drive 0
  651.     disk            wd0     at wd0 drive 1
  652.                     ^^^                  
  653.     This should have been wd1, and that's why it didn't get added by 
  654.     default.  I may be wrong, but I have swapped to two different 
  655.     partitions w/out any problems since patchkit 0.1, and there aren't 
  656.     any patches to swap386bsd.c
  657.        
  658.     Once the install is complete, swapping will not be enabled on the 
  659.     second drive.  The following steps can be used to make sure that it 
  660.     is enabled correctly.
  661.     
  662.     If there is a 'b' partition in your root disk 386bsd partition, it 
  663.     will be used automatically (MAKE SURE B is not the start of the 
  664.     disk, and MAKE SURE b doesn't contain any data you wish to keep).  
  665.     If b starts at disk offset 0, it will promptly wipe out your boot 
  666.     sectors and other important disk stuff.  (This appears to be fixed
  667.     in the current NetBSD sources)
  668.     
  669.     If you want an additional partition, put an entry similar to this 
  670.     in /etc/fstab:
  671.     
  672.     /dev/sd1b    none            swap        sw
  673.     
  674.     I'm swapping on sd0b and sd1b, and 'swapon' is run on this partition 
  675.     on boot up.
  676.     
  677.     Swapping to a file is still not implemented.  Rumor has it 0.2 will 
  678.     have such things.  If someone wanted to add it, the vnops_* files 
  679.     would have to be radically modified to get it to work correctly.
  680.  
  681.  
  682. 2.5.2.2    Increasing the 386bsd partition size.
  683.  
  684.     Once the install is finished, the system has it's 386bsd partition.
  685.     This includes a 5Meg swap partition, which is altogether too small.  
  686.     There is no easy way to increase this swap partition without 
  687.     relabeling the drive.   Unfortunately, relabeling usually involves 
  688.     reinstalling.  That involves re-doing just about everything you have 
  689.     just finished doing.  The good news is that if all you have done is 
  690.     the base installation, you don't have a lot of time and energy 
  691.     invested in the system.  Take the time, and make sure that your swap 
  692.     space is at least as big as your memory; many people recommend even
  693.     larger.  There is no real limit to the size that this space can
  694.     take.  If you have two disk drives, you can have space space on both.
  695.     Simply follow the instructions above, and you will be all set.
  696.     If your swap space is smaller than your real memory, system core 
  697.     dumps will be disabled.
  698.  
  699.  
  700. 2.5.2.3    I can access the DOS partition on my second disk from Unix but not 
  701.     DOS?  Any suggestions?
  702.  
  703.     One kinky problem that almost got me was when I tried to disklabel 
  704.     my second drive in order to use the DOS partition on it, and use 
  705.     the rest as swap for BSD (FreeBSD-1.0 Eps, SCSI drive on an AHA1542B, 
  706.     to be exact). The DOS partition was visible from UNIX, but *not* from 
  707.     DOS.
  708.  
  709.     What I tried to do:
  710.         Using PFDISK (from DOS), make one big DOS partition at the start 
  711.         and use the rest for a BSD partition (type 165).  Something that 
  712.         came out like
  713.           1    6    0    69 DOSbi # ..
  714.           2    165  70    98 unkno
  715.         for a 99 cyl drive.
  716.  
  717.     
  718.         Using BSD disklabel generate disk description/label as documented 
  719.         in the FAQ. Make only 'c' (total BSD DOS part), 'd' (complete disk) 
  720.         and 'b' (intended swap) BSD partitions.
  721.  
  722.     Problem:
  723.         When writing the label, disklabel would ask about overwriting DOS
  724.         partition table.  Whether I said y or n, the DOS partition table
  725.         was screwed up, as seen from DOS (BSD saw the DOS file system
  726.         very nicely indeed).
  727.  
  728.     Cause, solution:
  729.         BSD disklabel wants to write the label to the start of the 'a' 
  730.         partition; I had *not* defined an 'a' partition (since I was 
  731.         only using the disk for swap).  This tells disklabel that the 'a'
  732.         partition is the start of the disk, which means there is no DOS
  733.         partition.  Disklabel then writes the label at the start of the 
  734.         drive, which is why it talks about overwriting (aha!); this is 
  735.         *bad* for the DOS partition table.  One solution is to have a 
  736.         non-empty (e.g. one cylinder) 'a' partition at the start of the 
  737.         BSD part of the disk, and resize the 'b' swap partition 
  738.         accordingly.  Now everything works just fine.
  739.  
  740.         One other fly in this ointment.  The disklabel program has 
  741.         historically asked "Overwrite disk with DOS-partition [n]: "
  742.         then the normal inclination is to believe the prompt and
  743.         press return for 'no'.  The default answer may or may not be
  744.         'no'.  There are several versions of disklabel where the
  745.         default answer is actually 'yes' even though the prompt
  746.         implies that you can press return and get 'no'.  In this case,
  747.         it might be best to assume that the default answer doesn't 
  748.         exist until you have had a chance to actually look at the
  749.         disklabel code.
  750.  
  751.  
  752. 2.5.3    How do I set up the system so that I can boot from more than one
  753.     operating system/file-loader without using floppies?
  754.     
  755.     There are many people that wish to be able to boot DOS or 386bsd 
  756.     at will.  There are several programs that allow this.  The 
  757.     program "os-bs" is one such program, "BOOTEASY" is another, and 
  758.     there are three or four others.  There are problems in some 
  759.     configurations using the os/2 boot manager for this, so beware.  
  760.     
  761.     In addition to being able to boot from either of two partitions, 
  762.     some people want to operate more than one disk drive (and perhaps 
  763.     boot from either as well).  Christoph Robitschko provided one 
  764.     description of this.  Since there are virtually limitless 
  765.     possibilities for configurations for BSD systems, it will be 
  766.     impossible to answer all of the possible questions about these 
  767.     features.  Many people operate with multiple disk drives on one 
  768.     or more controllers.  
  769.  
  770.     Yu-Han Ting provides this tutorial on partitioning and booting
  771.     multiple systems with a single hard disk.
  772.  
  773.     After spending one day fighting with the nasty partition table, 
  774.     finally I had NetBSD, DOS 5 (Sorry, I don't use DOS 6), and 
  775.     OS/2 2.1 March beta co-existing on my hard drive.  Here is the 
  776.     answer:
  777.  
  778.     Since that my original hard disk setup was corrupted by NetBSD's
  779.     installation program, I decided to rebuild it.  I would like my 
  780.     partition table looks like this:
  781.  
  782.     Partition 0: OS/2 2.1 beta (Primary, HPFS, C:)
  783.     Partition 1: MS-DOS 5.0 (Primary, C:)
  784.     Partition 2: MS-DOS 5.0 (Extended, D: & E:)
  785.     Partition 3: NetBSD
  786.  
  787.     You will need the following tools before you can setup a similar 
  788.     environment:
  789.  
  790.     1) Mr. Wolfram's OS-BS.  (It's an excellent boot selector, much
  791.        better than OS/2's boot manager, IMHO)
  792.     2) PFDISK.EXE.  (It's available from wuarchive.wustl.edu:mirrors/
  793.        linux/dos_utils/pfdisktc.zip.)
  794.     3) A binary editor.  I use Norton Utilities' DiskEdit.
  795.     4) 386BSD's 'tinyBSD' distribution disk.
  796.  
  797.     After you have the necessary tools handy: 
  798.  
  799.     1) Use OS/2 'fdisk' to create partition 0.  Make it install-able 
  800.        and install the system as usual.
  801.     2) Use OS/2 'fdisk' to create partition 1.  Assign drive C: to 
  802.        the partition.  Then reboot from DOS.
  803.     3) Use DOS 'fdisk' to create the extended partition.  Assign logical
  804.        drive D and E to the partition.
  805.     4) Reboot from DOS again.  Format drive C: (for DOS), D:, and E:.
  806.     5) Use 'tinyBSD', NOT 'NetBSD', to boot the machine.  Create a genuine
  807.        386BSD partition.  Once the 386BSD partition has been made,
  808.        boot DOS from floppy and execute PFDISK.EXE.  For example, issue
  809.        the following commands once you get into DOS:
  810.  
  811.         C>pfdisk 0 <enter>
  812.         pfdisk> L <enter>  ("pfdisk>" is the command prompt and "L"
  813.                     is the actual command.)
  814.  
  815.        The second line, i.e., command 'L', will tell you the starting
  816.        address and the length of each partition you have.  Record the
  817.        information for step 6.
  818.     6) Reboot NetBSD from floppy.  Install NetBSD over the original
  819.        386BSD partition.  Fill out the information you get from step
  820.        5 to the installation program.  'halt' the system after you
  821.        have installed 'install2.fs'.
  822.        (Ed.Note:  This step is the same for 386bsd or NetBSD)
  823.     7) Boot OS/2 from floppy.  Use fdisk to assign drive C: to the OS/2
  824.        partition.  In my case, partition 0.  Note that fdisk will
  825.        change the ID of partition 1 from '0x06' to '0x16'.  '0x06'
  826.        stands for 16-bit DOS FAT; while '0x16' stands for non-DOS
  827.        partition.  In the next step, we have to change '0x16' back to
  828.        '0x06' manually.  You can get the ID information by issuing "I"
  829.        under PFDISK.  It will tell you what the IDs represent.
  830.     8) Boot DOS from floppy.  Use the binary editor to change the
  831.        partition type as stated in step 7.
  832.     9) Install OS-BS under DOS.  Remember to enable "Modify startup ID
  833.        before booting".
  834.     10) Now you can boot any partition w/o floppy diskettes during
  835.         startup. :)
  836.  
  837.     The above procedures may not be optimized.  But it works for me.  
  838.     I won't spend anytime to deal with tedious work again :)
  839.  
  840.     You might feel strange why we need 'tinyBSD'.  Simply trust me.  
  841.     By using 'tinyBSD' to create a partition for NetBSD, it will 
  842.     make your life a lot easier.  Hope this helps.  
  843.  
  844.     Ed. Note:  The reason is because several versions of NetBSD and 
  845.     FreeBSD will not label a disk that doesn't have a disklabel.  
  846.     Catch-22.
  847.  
  848.  
  849.     PS:  %%%%% REMEMBER TO BACKUP YOUR SYSTEM BEFORE YOU CONDUCT THE 
  850.             EXPERIMENT !!! %%%%%
  851.  
  852.     Here is Christoph's explanation of how to set up a dual hard drive
  853.     system so that the 386BSD/NetBSD system is stored entirely on the
  854.     second hard drive.
  855.  
  856.     I have done this with two IDE drives. IDE+SCSI should be a bit 
  857.     simpler.  There's a boot selector called BOOTEASY that can load 
  858.     from the second drive (you can get it from 
  859.     ftp.tu-graz.ac.at:pub/386BSD/0.1/unofficial/booteasy).
  860.  
  861.     What I have done to boot 386bsd from the second (IDE) drive:
  862.  
  863.     - installed booteasy on the first drive
  864.     - (you can install booteasy on the second drive, too, if you
  865.       have multiple partitions there)
  866.     - modified Julian's boot blocks to use the second drive per default
  867.       (Ed. Note:  See below for the illumination of this step)
  868.     - rebuilt the kernel to have root and swap on wd1 (probably not
  869.       necessary for you, since your second disk is sd0, which is
  870.       already in the config file).
  871.  
  872.     It worked perfectly for me.
  873.  
  874.     This should also work with equal facility for 386bsd users.
  875.  
  876.     Julian Elischer (julian@jules.dialix.oz.au) adds:
  877.  
  878.     To make the bootcode default to drive 1 look in 
  879.     /sys/{arch/}i386/boot/boot.c for the following (or similar.. It has 
  880.     changed a little) code:
  881.  
  882. loadstart:
  883.  
  884.     /***************************************************************\
  885.         * As a default set it to the first partition of the first    *
  886.         * floppy or hard drive                        *
  887.       \***************************************************************/
  888.         part = unit = 0;
  889.         maj = (drive&0x80 ? 0 : 2);             /* a good first bet */
  890.         name = names[currname++];
  891.  
  892.  
  893.     and change it to:
  894.  
  895.  
  896. loadstart:
  897.  
  898.     /***************************************************************\
  899.     * As a default set it to the first partition of the SECOND    *
  900.     * floppy or hard drive                        *
  901.     \***************************************************************/
  902. !    part = 0;
  903. !    unit = 1;
  904.     maj = (drive&0x80 ? 0 : 2);             /* a good first bet */
  905.     name = names[currname++];
  906.  
  907.     And in yet another interation, Luke Mewburn (lm@yallara.cs.rmit.oz.au)
  908.     decided to hack that a bit further in his NetBSD 0.9 (as_shipped i.e., 
  909.     non-current) to set the drive to the unit which the boot blocks 
  910.     loaded off.
  911.  
  912.     So, instead of:
  913.         part = unit = 0;
  914.     do:
  915.         part = 0;
  916.         unit = (drive & 0x7F);
  917.  
  918.     (the FAQ suggests `part = 0; unit = 1;' )
  919.  
  920.         This way, whatever drive the bb's loaded from, it has that as
  921.     default.  In my case, I get wd(0,a) when I have my netbsd drive as
  922.     C:, and wd(1,a) when I have it as D:.  (I've been swapping drives
  923.     left right and centre the last day getting dos to boot on one drive
  924.     and netbsd on another).
  925.  
  926.  
  927. 2.5.4    How do I disklabel my second hard drive?
  928.  
  929.     The obvious answer is to use 'disklabel -w -r /dev/rwd1d'.  
  930.     Unfortunately, this does not always put a real disklabel on the
  931.     drive.  The symptom is that the drive labels and can be used
  932.     until the system is reset, at which point the system tries to
  933.     read the label from the disk.  It was never actually written to 
  934.     the disk, so the operation fails.
  935.  
  936.     There are also reports that the /usr/mdec files are corrupted in 
  937.     some of the distributions.  If you have tried everything else, you
  938.     can either load the files from one of the many archive sites that
  939.     keep the /usr/mdec files around, or you can recompile them 
  940.     yourself.
  941.  
  942.     Mark Weaver (mhw@cs.brown.edu) provides us with an illuminating
  943.     answer to this perplexing problem.
  944.  
  945.     I had the same problem and there is a simple solution.  I'm not 
  946.     sure why this works, but it does.
  947.  
  948.     Instead of specifying the entire device path name (i.e. /dev/rsd0c), 
  949.     only specify the two letters of the device type and the unit number 
  950.     (i.e. "sd0").  Disklabel figures out the rest, and it works.
  951.  
  952.     For instance, the following line works for me:
  953.  
  954.       disklabel -w -r sd0 <drive-type>
  955.  
  956.     assuming of course that the boot block files are in /usr/mdec/ and
  957.     the <drive-type> is in the /etc/disktab.
  958.  
  959.     This is also a symptom of some of the versions of FreeBSD and 
  960.     NetBSD where the disklabel code was 'fixed' to only write a 
  961.     disklabel on a drive with a disklabel.  Oops.
  962.  
  963.  
  964. 2.5.5    386bsd/NetBSD/FreeBSD cannot handle disk geometry translations, 
  965.     but it turns out that my disk geometry is translated.  It has 
  966.     five zones, each with a different sec/track!  What kind of 
  967.     things can I do about the disk translation my hard disk 
  968.     controller uses?
  969.  
  970.     It turns out that what *BSD cannot handle is not translation, but
  971.     translation that changes during the boot-up process.  For example,
  972.     the configuration above will work just fine IF the translation
  973.     that the controller uses when it powers up is the same one that it
  974.     uses when it boots.  On many PC clones, the BIOS loads a different
  975.     geometry after it boots to make the geometry agree with one that is
  976.     loaded in CMOS.  This is the fatal flaw for *BSD.  Fortunately, 
  977.     once the problem has been identified, it is relatively easy to
  978.     handle.  Simply make sure that the BIOS is configured to set the
  979.     controller to the translated geometry that the card powers up 
  980.     with.
  981.     
  982.     There are several ways to get around these problems with disk 
  983.     geometry translation.  If you are using a SCSI controller, you can
  984.     specify the geometry such that each 'cylinder' is 1 Meg (64 sectors
  985.     by 32 tracks for example).  Most SCSI controllers will blithely
  986.     ignore what YOU tell it the geometry is and press on using this
  987.     type of 1 Meg cylinder had to get the job done.  NOTE:  If you are
  988.     going to try this, try to ensure that each 'pseudo cylinder' is a
  989.     reasonable size (like 1Meg or 512K).
  990.  
  991.     An interesting method for dealing with disk geometry comes from 
  992.     Alan Barrett (barrett@lucy.ee.und.ac.za):
  993.  
  994.     This sort of problem happens when you try to install NetBSD in a
  995.     partition of a disk whose controller does geometry translation.  I
  996.     have not had time to find the bug that causes the problem.  One 
  997.     option is to disable the geometry translation:  Use ide_conf to 
  998.     find the true geometry, use the CMOS setup program to tell your 
  999.     BIOS about the true geometry, and reformat everything.  I 
  1000.     successfully did that on one of my systems.
  1001.     
  1002.     If you are not able to, or do not wish to, disable the geometry
  1003.     translation then the following work-around might work for you.  
  1004.     This requires that the disk have unused space on {cylinder 0, 
  1005.     head 0}, from sector 2 to sector 16.  Almost all DOS disks that 
  1006.     I have ever seen satisfy this condition, because they usually 
  1007.     start the DOS partition in {cylinder 0, head 0, sector 1}, 
  1008.     leaving most of {cylinder 0, head 0} unused apart from the 
  1009.     partition sector in {cylinder 0, head 0, sector 1}.  However, 
  1010.     many partitioning programs like to hide this fact from you, 
  1011.     and pretend that the DOS partition starts at the front of the 
  1012.     disk; don't believe them until you have checked with a raw 
  1013.     disk editor.
  1014.  
  1015.         0.  Make sure you have adequate backups.
  1016.  
  1017.         1.  Use a partition sector editor (fdisk, pfdisk, os-bs, 
  1018.             booteasy, Norton utilities, whatever) to mark the partition 
  1019.             that you want for NetBSD as bootable with type 0xA5 
  1020.             (decimal 165).
  1021.  
  1022.         2.  Halt the system.  Boot the NetBSD kernel copy floppy.  
  1023.         When it asks you to insert the floppy for the root file 
  1024.         system, switch to the Install-1 floppy and press enter.
  1025.  
  1026.         3.  Answer all the installation prompts, using numbers based 
  1027.         on the translated geometry.  When it asks if you really 
  1028.         want to label the disk, be brave and say yes.
  1029.  
  1030.         4.  Halt the system.  Boot to DOS.  Run a disk editor program, 
  1031.         such as Norton utilities.
  1032.  
  1033.         5.1.  Verify that the partition sector in {cyl 0, head 0, 
  1034.         sec 1} is undamaged.  Verify that the disklabel program 
  1035.         run as part of the NetBSD install has written the NetBSD 
  1036.         primary boot block to {cylinder xx, head 0, sector 1}, 
  1037.         written the disk label to {cyl xx, head 0, sec 2}, and 
  1038.         written the secondary boot program to {cyl xx, head 0, 
  1039.         sectors 3 to 16}.  ("xx" represents the translated 
  1040.         cylinder number you chose for the start of the NetBSD 
  1041.         partition.  You did choose to start on a cylinder boundary, 
  1042.         I hope.)
  1043.  
  1044.         5.2.  Verify that the space in {cyl 0, head 0, sectors 2 to 
  1045.         16} is still available.  Copy the fifteen sectors containing 
  1046.         the NetBSD disk label and secondary boot block from {cyl 
  1047.         xx, head 0, sectors 2 to 16} to {cyl 0, head 0, sectors 2 
  1048.         to 16}.
  1049.  
  1050.         5.3.  Edit the partition table in {cyl 0, head 0, sec 1}.  
  1051.         Change the system ID of the NetBSD partition from 0xA5 
  1052.         (decimal 165) to something else (I use 0xA4, decimal 164), 
  1053.         but keep it flagged as bootable.  This will let you boot 
  1054.         to the NetBSD primary boot block.
  1055.  
  1056.         5.4.  Edit one of the previously unused partition table entries 
  1057.         (I hope you have one), to contain the following information: 
  1058.         {sys id = 0xA5, boot flag = 0, start cylinder/head/sector = 
  1059.         0/0/1, end cylinder/head/sector = anything, initial 
  1060.         offset = 0, total size = anything}.  This will tell the 
  1061.         NetBSD primary boot block, or a NetBSD system booted from 
  1062.         a floppy, that it should look for the NetBSD disk label 
  1063.         in {cyl 0, head 0, sec 2}.
  1064.  
  1065.         6.  Halt the system.  Boot the NetBSD kernel copy floppy.  When it
  1066.             asks you to insert the floppy for the root file system, just 
  1067.             press enter without changing disks.
  1068.  
  1069.         7.  Copy the kernel, and proceed with the rest of the installation 
  1070.             as per the instructions provided with NetBSD.  It should now 
  1071.             work because of the trickery with the partition table etc.
  1072.  
  1073.  
  1074. 2.6    Common installation problems.
  1075.  
  1076.     There are many common installation problems.  This section covers
  1077.     the most basic and common of these problems.  In addition to this
  1078.     section, you should also read through the other sections of the
  1079.     FAQ, since many of the less common questions are answered in other
  1080.     places in the doc.
  1081.  
  1082. 2.6.1    Swap space not identified correctly.
  1083.     
  1084.     There are several levels of problems associated with swap space.  
  1085.     The first is that the swap space on a second disk will not get 
  1086.     used if it is not in your /etc/fstab file.  Your /etc/fstab should 
  1087.     have the swap space identified.  The following is a representative 
  1088.     fstab:
  1089.     
  1090.     /dev/wd0a        /        ufs  rw 1 1
  1091.     /dev/wd1b        swap        swap sw 0 0
  1092.      
  1093.     Another common question is that the install program installs the
  1094.     swap partition in the 'b' partition, but does not mark it correctly
  1095.     as a swap partition.  The swapping software will use the swap 
  1096.     partition regardless of what it is called, but it should still be
  1097.     identified in the disklabel as the swap partition.  Use 'disklabel'
  1098.     to change the partition type from 'unused' to 'swap'.
  1099.  
  1100.     NOTE:  I mean it when I say that 386bsd will use the b: partition
  1101.     for swap without regard to what you called it.  If it was your 
  1102.     root partition, it will be toast the first time you try to swap
  1103.     a process out to disk.  I'm not kidding!
  1104.  
  1105.  
  1106. 2.6.2    Endless reboot cycles.
  1107.     
  1108.     Endless reboot cycles are the single most vexing aspect of 386bsd.  
  1109.     Part of the problem is that the 0.1 distribution boot routines 
  1110.     were never checked against many types of computers and have bugs.  
  1111.     Most of the bugs are fixed in the patchkit, but that doesn't do 
  1112.     the average novice user any good.
  1113.     
  1114.     In general, this will show up as a "bad disk label" error, and 
  1115.     can result in in not booting from the hard drive "most of the time".  
  1116.     You may be able to partially (or even completely) work around this 
  1117.     problem by making your machine run at a lower clock rate.
  1118.  
  1119.     This problem is the result of the kernel reading the wrong register 
  1120.     waiting for the drive controller to come ready.  On some 
  1121.     controllers, this isn't a problem; on others, it's fatal.
  1122.     This problem is solved for almost all controllers in the patchkit
  1123.     and both FreeBSD and NetBSD.
  1124.  
  1125.     The correct solution is to use a patched "dist.fs" or "fixit.fs" 
  1126.     boot disk.  These have been provided by the patchkit maintainers 
  1127.     and are located on the machine agate.berkeley.edu in the directory 
  1128.     pub/386BSD/386bsd-0.1/unofficial/patchkit.  In addition, new
  1129.     patches kernels or a NetBSD kernel may be able to solve your 
  1130.     immediate problems.
  1131.  
  1132.     Another incarnation of this symptom is that the disk geometry on 
  1133.     your disk label (as installed by install) is different than the 
  1134.     geometry that your hard drive controller thinks it is using.  This 
  1135.     will most often manifest itself on controllers that insist on 
  1136.     operating in some type of translation mode.  Normally the fix is to 
  1137.     find out what the controller geometry is and make the disk label 
  1138.     agree.  There are programs available to help with this problem.  
  1139.  
  1140.     Julian's new boot blocks may also solve this problem.  They are 
  1141.     available where fine precompiled kernels may be found.  Also, they
  1142.     are included in the patchkit as of version 0.2.2.
  1143.  
  1144.  
  1145. 2.7    The computer just sits there, or 'that isn't right'.
  1146.     
  1147.     This class of problems is sometimes caused by an incorrect FTP of 
  1148.     the boot disk.  Make sure that the files were grabbed in 'binary' 
  1149.     mode and that the size reported back is 1244000 bytes.  Use the 
  1150.     Unix program 'dd' or the DOS program RAWRITE to put these files 
  1151.     onto the diskette.  In addition, this is the 'miscellaneous' 
  1152.     section of the FAQ.  These problems are included here because they
  1153.     are usually preceded by 'I just finished installing...'
  1154.  
  1155.  
  1156. 2.7.1    The boot disk works all right on one computer but not another. 
  1157.  
  1158.     This could be a problem with many different pieces, some of which are: 
  1159.  
  1160.     - Misconfigured hardware.  The iomem, IRQ, and other board settings 
  1161.     must match the ones listed in the INSTALL.NOTES.  Unfortunately, the 
  1162.     INSTALL.NOTES are on the disk that will not boot.  You can grab them 
  1163.     via FTP from /pub/386BSD/386bsd-0.1/filesystem.
  1164.  
  1165.     - Unsupported hardware.  There are several SCSI controllers on the 
  1166.     market that are not fully supported by 386bsd.  The Ultrastore 24F 
  1167.     (when not running in ISA emulation mode) is a good example of this.  
  1168.     There are also some network cards that are not directly supported 
  1169.     in 386bsd.  If you get into a real bind, you can post a question 
  1170.     to comp.os.386bsd.questions, and one of the many experienced 386bsd 
  1171.     gurus that reads that group will probably try to help you.
  1172.  
  1173.     
  1174. 2.7.2    The screen has "flashing multicolored characters and ptdi81061 
  1175.     prompt" error?
  1176.     
  1177.     The problem is that the code checking the return from the read of 
  1178.     the CMOS RAM value falls through in the case of an invalid value.  
  1179.     What really is needed is the non-existence "else" case for a bad 
  1180.     CMOS setup, which goes and probes memory to see it's size.  What 
  1181.     currently happens is that the code falls through, the Maxmem is 
  1182.     set to zero, and the maxmem and physmem are set to -1 (this is a 
  1183.     bad thing).
  1184.     
  1185.     To solve this, Terry Lambert wrote a program in (forgive him!) 
  1186.     Turbo C to read and write CMOS values, so that he could force the 
  1187.     memory count to the correct value.  For a machine with a base 
  1188.     memory of 640K, the expected value in CMOS is 0280 (in bytes 
  1189.     0x16 and 0x15, respectively).  What the AT&T boxes and the HP 
  1190.     Vectra have is 027f, so it falls through to the default case and 
  1191.     blows up.
  1192.     
  1193.     The quick and dirty work-around:  If you download the new patchkit 
  1194.     bootables from agate.berkeley.edu they have fixed these problems.  
  1195.     If not, you can use uzap (available for anon ftp from 
  1196.     wuarchive.wustl.edu, located at mirrors2/unix-c/editors/uzap.tar-z) 
  1197.     to binary edit the dist.fs at byte offset 946834; it should be 
  1198.     changed from 81FE8002 to 81FE7F02.  This is the compare for 640K 
  1199.     in the bogus code.  You can look for the pattern 81FE8002 in the 
  1200.     other *.fs files, including fixit.fs, and change it there, if you 
  1201.     MUST use one of them instead.
  1202.     
  1203.     It should be noted that, if you download uzap, you should "touch" 
  1204.     uzap.c, as otherwise, make will try to use lex to create it, and
  1205.     will probably fail.  This is due to the tar extraction order from
  1206.     the uzap tar archive.
  1207.  
  1208.  
  1209. 2.7.3a    I get the error "isr 15 and error: isr 17" on an NE2000 card.
  1210. 2.7.3b    I have some card on IRQ2 and it doesn't work; why?
  1211. 2.7.3c    I am getting lousy performance out of my network card.  What are 
  1212.         some of the other possibilities?
  1213.     
  1214.     The description of this problem is that one of the cards in your 
  1215.     system; most likely the VGA card, is either generating interrupts 
  1216.     or is causing the IRQ 2 to be actively disabled.  The VGA card uses
  1217.     IRQ 2 during vertical retrace to prevent sparklies.
  1218.  
  1219.     One solution would be to plan on not using your Ethernet card until 
  1220.     you have rebuilt the kernel so that it expects it at an interrupt 
  1221.     other than IRQ 2 or 9, re-jumper or reconfigure the card to match the 
  1222.     IRQ you have selected, and enable it.  
  1223.     
  1224.     From time to time, this problem will manifest itself as a general
  1225.     tendency of the network card to transfer either very sporadically
  1226.     or very slowly. It is precisely the same problem.
  1227.  
  1228.     James Van Artsdalen (email at james@bigtex.cactus.org) has given us 
  1229.     a solution:
  1230.     
  1231.     --------------------------------------------------------------------
  1232.     Some VGA cards use IRQ 2 for a vertical retrace interrupt.  Even 
  1233.     when the interrupt is not enabled in the VGA, some cards drive 
  1234.     IRQ 2 inactive instead of leaving the signal tristate.
  1235.  
  1236.     If this is the problem, you can use Scotch tape to cover the IRQ 2 
  1237.     signal on the VGA's ISA connector.
  1238.     --------------------------------------------------------------------
  1239.     
  1240.     There has been some discussion as to whether scotch tape is really 
  1241.     appropriate inside a card slot.  My answer would be "yes".  This is 
  1242.     because the alternate solution of cutting the trace on the video 
  1243.     board seems, to my mind, to reduce the value of the board.  It is 
  1244.     possible that, in the future, with a bi-bipartite driver, you would 
  1245.     want to catch the retrace interrupt to get rid of "sparklies" or to 
  1246.     implement a driver for a very high resolution monitor for X.  If 
  1247.     this happens, given a choice between alcohol and solder, I vote for 
  1248.     alcohol.
  1249.     
  1250.     Either way, you will probably find that your VGA card uses IRQ 2
  1251.     strictly for compatibility with older cards.  With the advent of
  1252.     dual-ported memory for video cards, virtually all of these types
  1253.     of problems have disappeared.
  1254.  
  1255.  
  1256. 2.7.4    What is the difference between IRQ2 and IRQ9?  Are they really
  1257.     the same, or are they really different?  
  1258.  
  1259.     On the XT, there was one interrupt controller, an Intel 8259, which
  1260.     handled 8 interrupts numbered IRQ0 through IRQ7.  IRQs 2 through 7
  1261.     were accessible via bus lines IRQ2 through IRQ7.
  1262.  
  1263.     The AT had two interrupt controllers.  Due to the design of the 
  1264.     8259, one has to be the master and the rest (up to 8) must be 
  1265.     slaves.  Each slave controller output its interrupt request to 
  1266.     and input on the master controller.  In the case of the AT, the
  1267.     master controller handles IRQ0 through IRQ7.  The slave handles
  1268.     IRQ8 through IRQ15.  The interrupt request from the slave to the
  1269.     master goes through IRQ2, which is termed the cascase input.
  1270.  
  1271.     This means. of course, that the bus line for IRQ2 could no longer
  1272.     be used for external interrupts.  Instead, the bus line that WAS
  1273.     IRQ2 in the XT became IRQ9 on the AT.  This whole issue is 
  1274.     confused further by the fact that some vendors refer to this
  1275.     external interrupt as IRQ2, while others refer to it as IRQ9.  In
  1276.     either case, if you are talking about an external interrupt, it
  1277.     means the same thing.
  1278.  
  1279.     BTW, IRQ8 is used for the Real Time Clock, and does not have an
  1280.     external interrupt.  Here is a map, in case anyone still needs it:
  1281.  
  1282.         Internal    External    Function
  1283.         IRQ0        n/a        Refresh/Timer
  1284.         IRQ1        n/a        Keyboard
  1285.         IRQ2        n/a        Cascade Input to Master
  1286.         IRQ3        IRQ3        Free (Com port)
  1287.         IRQ4        IRQ4        Free (Com port)
  1288.         IRQ5        IRQ5        Free 
  1289.         IRQ6        IRQ6        Free
  1290.         IRQ7        IRQ7        Free (Printer)
  1291.         IRQ8        n/a        Real Time Clock
  1292.         IRQ9        IRQ2        Free (Network card)
  1293.         IRQ10        IRQ10        Free
  1294.  
  1295.         etc.
  1296.  
  1297.  
  1298. 2.7.5    Some of my SCSI devices (like a tape drive) don't work; why?
  1299.     
  1300.     That is because the original SCSI drivers didn't recognize any 
  1301.     devices past the first two (ID 0 and ID 1).  Also, there was a bug 
  1302.     in the distribution floppy regarding the devices at ID 6.  The 
  1303.     'dev' files for that id need to be remade.  Use MAKEDEV to do that.
  1304.  
  1305.     The disks and tapes will be recognized and configured when they 
  1306.     are first accessed. 
  1307.     
  1308.     A new and improved SCSI driver has been written by Julian Elischer 
  1309.     and is available from many sources.  It includes support for many 
  1310.     new types of SCSI controllers and many devices that are thereby 
  1311.     attached.  This driver is included in the patchkit.
  1312.  
  1313.     In addition, many of these types of devices are supported in 
  1314.     FreeBSD and NetBSD.  If one of the devices you are interested
  1315.     in using is not supported in 386BSD, you might try one of these
  1316.     newer systems.
  1317.  
  1318.     Even with the newer systems, you run the risk of having a 
  1319.     porblem with a SCSI device from time to time.  There are some
  1320.     cards (like the new Adaptec 27* series) that software drivers 
  1321.     are either not in the works or the documentation is simply
  1322.     unavailable.  Another culprit here is that some machines are
  1323.     very touchy about the quality and length of cables, as well 
  1324.     as SCSI IDs.  There was one report of a older hard drive that
  1325.     took a little longer to spin up than the rest of the drives
  1326.     in the chain.  Whenever this drive was put early in the ID
  1327.     string (like 1 or 2) it would be 'not founf' but if it was
  1328.     placed near the end (like after the tape drive) it would have
  1329.     spun up and been found.
  1330.  
  1331.     Who says computers are logical?
  1332.  
  1333.  
  1334. 2.7.6    I try to run 'ps' or 'w' and get ': cannot get namelist'
  1335.     from the TinyBSD kernel.  What did I do wrong?
  1336.  
  1337.     Nothing.  There is a class of programs that interact directly with 
  1338.     the current kernel.  These programs include 'ps', 'w', 'uptime', and 
  1339.     others.  The shell on the TinyBSD disk is not capable of supporting 
  1340.     these programs because the symbol table that these programs use has 
  1341.     been stripped out of the kernel to save space.  The easiest way to 
  1342.     fix this is to get a  different kernel (build it yourself, or from 
  1343.     agate.berkeley.edu or one of the other FTP sites).  Of course, you 
  1344.     can have a fully functional system with these programs, but they are 
  1345.     nice to have.  
  1346.  
  1347.  
  1348. 2.7.7    I get a 'Floating point constant out of range' when I try to compile
  1349.     package 'n'.  What is broke?
  1350.  
  1351.     This problem was encountered during many package compilations, 
  1352.     including compiling gcc-2.3.3 under NetBSD-0.8.  
  1353.  
  1354.     NetBSD-0.9, and presumably FreeBSD, contain a repaired printf()
  1355.     function, which corrects this problem.  The easiest solution for
  1356.     this (and MANY other) problems is to upgrade.  In addition, these
  1357.     systems also include gcc-2.3.3 (or newer) as the default compiler.
  1358.  
  1359.     There is also a circular dependency for protoize.o/unprotoize.o 
  1360.     in the Makefile. Add the lines
  1361.  
  1362.           touch protoize.o
  1363.           touch unprotoize.o
  1364.  
  1365.     after the line:
  1366.  
  1367.           touch stamp-proto
  1368.  
  1369.     After this "make bootstrap" will run to completion.
  1370.  
  1371.     gas apparently has bugs too.  It should produce +Infinity.  I 
  1372.     think it is OK internally but it may be trusting the library 
  1373.     too much.  gcc can easily be changed to avoid printf for output, 
  1374.     but input is harder.
  1375.  
  1376.      One of the problems is that various pieces of code rely on the
  1377.      value of DBL_MAX.  A kludge to fix it is to change the line
  1378.      below:
  1379.  
  1380.     #define DBL_MAX         1.7976931348623157E+308
  1381.  
  1382.     One value that works is
  1383.  
  1384.      #define DBL_MAX         1.7976931348623147E+308
  1385.                                             ^ was 5
  1386.  
  1387.     This is a kludge, but it does mostly work.
  1388.  
  1389.  
  1390.     The problem is entirely in printf() (really in cvt()), NOT in
  1391.     atof().  I have inspected the output of atof() bit by bit, and 
  1392.     it is well within IEEE specification.
  1393.  
  1394.     The digits `157' are the `best' approximation.
  1395.  
  1396.     The code for printf() generates a representation which is not even 
  1397.     in the range of doubles.  Below are the details:
  1398.  
  1399.     atof("1.7976931348623157e+308") returns 
  1400.     
  1401.          0x7fefffffffffffff
  1402.  
  1403.     which is the maximum double value and is correct.  However, 
  1404.     printf() of the previous yields `1.7976931348623168e+308', which 
  1405.     isn't even within the floating point range.  It is clearly printf() 
  1406.     that is broken, and a quick inspection of the code is enough to 
  1407.     determine that it uses a pessimal algorithm.
  1408.  
  1409.     atof() has been tested with many other values, and it has never 
  1410.     been off by more than is allowed by IEEE 754 (though it is not 
  1411.     optimal).
  1412.  
  1413.  
  1414. 2.7.8    I want to use the Adaptec 1542C SCSI controller.  What are the 
  1415.     problems/tricks you need to know to get it working?
  1416.  
  1417.     The first thing to check when trying to use the 1542C is the setting 
  1418.     of 'Enable Disconnection' under the 'SCSI Device Configuration' 
  1419.     menu.  It should be set to YES for all devices, as the manual warns 
  1420.     you. 
  1421.  
  1422.     Matthias Urlichs (urlichs@smurf.ira.uka.de) has provided this 
  1423.     description of the types of things that can cause problems for the
  1424.     controller and devices attached to it.
  1425.     
  1426.     The problem is that the Adaptec 1542C has (a) rather powerful line 
  1427.     drivers, and (b) is sensitive to transient signals which can be 
  1428.     induced by them via either a bad cable or a bad external terminator.
  1429.  
  1430.     A bad cable is almost any cable which doesn't meet SCSI-2 specs.
  1431.  
  1432.     A bad external terminator is one which doesn't adequately buffer 
  1433.     its resistor network.
  1434.  
  1435.     So...
  1436.  
  1437.     - Remove the internal terminator from the last drive in your chain. 
  1438.       Replace with an active SCSI-2 external terminator.  Side 
  1439.       improvement: active terminators consume a bit less power.
  1440.  
  1441.     - Check cables.  Specifically, some cables carry less than the 
  1442.       nominal 50 signal wires. Manufacturers sometimes think they can 
  1443.       get away with this because almost all odd-numbered pins are GROUND 
  1444.       anyway. So, if pins 1 and 3 or 3 and 5 are connected, you're 
  1445.       likely to have a marginal cable.
  1446.  
  1447.     - Make sure that the terminator power is supplied by all devices 
  1448.       and that the power pin is actually connected on your cable. The 
  1449.       problem here is that some idiot device manufacturers save on 
  1450.       2-cent diodes, which means that the thing will pull terminator 
  1451.       power to ground if it's not plugged in.  (Two of these on one 
  1452.       bus are even worse.)
  1453.  
  1454.     - Consider creating your own cabling. Take a 50-wire flat ribbon 
  1455.       and press the appropriate connectors onto it in precisely the 
  1456.       right places. (Move your devices as to minimize cable length.) 
  1457.       Be aware that if a device has two external connectors, you must 
  1458.       take the SCSI bus in at one connector and out at the other 
  1459.       -- don't leave the other connector dangling; this isn't within 
  1460.       the SCSI specs because the cable usually is too long.
  1461.  
  1462.     - Better but more expensive: use 2-twisted cable. (I.e., wires 1&2 
  1463.       are twisted around each other, wire 3&4, ...) This will improve 
  1464.       reliability because the wires are twisted at different rates. 
  1465.       These cables have short non-twisted segments every 50 cm (1.5') 
  1466.       so that you can press on your connectors instead of heating up 
  1467.       that soldering iron.
  1468.  
  1469.     - While you're rebuilding your system anyway...: If you have more 
  1470.       than one drive per power supply, check if these drives have 
  1471.       adequate condensors to buffer their power.  I have two 80-MB 
  1472.       Seagates which refused to work more than a few hours without 
  1473.       glitches -- then I soldered two 10-uF Tantals onto their power 
  1474.       connector and they've been flawless ever since.
  1475.  
  1476.     The terminator power is pin 26. Be aware that SCSI counts pins as 
  1477.     they appear on a ribbon cable, not as they're sometimes numbered 
  1478.     on the connectors.  Pin 25 is supposed to be disconnected.
  1479.  
  1480. 2.7.9    Did anyone ever find out on how to use the 3c509 etherlink III 
  1481.     card yet for bsd?
  1482.  
  1483.     Herb Peyerl (hpeyerl@fsa.ca) responds:
  1484.  
  1485.     I have a mostly working 3c509 driver that I've been working on 
  1486.     for far too long.  There are a couple of problems with it that 
  1487.     I've addressed (in my mind mostly).  I have several things I have 
  1488.     to do before I can go back to working on it (mostly Windsurfing, 
  1489.     waterskiing, suntanning, climbing, and drinking)...
  1490.  
  1491.     I have yet to look at the recently announced Linux 3c509 driver 
  1492.     but plan to do that to see if it can address any of the problems 
  1493.     that I'm having.
  1494.  
  1495.     I always offer to give out my existing code on the off chance i
  1496.     that someone has more energy and time than I do to get it working.
  1497.     But invariably I end up getting requests to photocopy and mail my 
  1498.     documentation which is something I'm tiring of doing.
  1499.  
  1500.     So, to everyone who's waiting for a 3c509 driver, I say "keep 
  1501.     waiting, it'll happen someday"...
  1502.  
  1503.  
  1504. 2.8    Other common problems that are attributed to the installation
  1505.     process but are caused other places.
  1506.     
  1507. 2.8.1    Why don't the man pages for "magic" and "file" work?
  1508.  
  1509.     The manual page for magic and file all have two dots before the 
  1510.     commands,  e.g.. "..SH" it should be ".SH" just delete one of the 
  1511.     double dots in the whole file and then it will work.  These man 
  1512.     pages are fixed by both the patch-kit, NetBSD, and FreeBSD.  The
  1513.     only time this problem every occurs is when you are using the
  1514.     distribution from one of the old CD-ROM distributions are get the
  1515.     original 386bsd 0.1 release.
  1516.  
  1517.  
  1518. 2.8.2    Why is apropos broke?
  1519.  
  1520.     The Makefile in /usr/othersrc/share/man/Makefile creates the 
  1521.     whatis.db.  The problem is that it doesn't strip the backspaces in 
  1522.     the title and apropos can't handle that.  So add a "col -b" to strip 
  1523.     those.
  1524.  
  1525.     excerpt from the Makefile.
  1526.  
  1527.     makedb:
  1528.        for file in `find /usr/share/man -type f -name '*.0' -print`; do \
  1529.         sed -n -f /usr/share/man/makewhatis.sed $$file; \
  1530.        done | col -b | sort -u > whatis.db
  1531.        install -o ${BINOWN} -g ${BINGRP} -m 444 whatis.db \
  1532.                   ${DESTDIR}/usr/share/man
  1533.  
  1534.     This problem is also solved in the patchkit, and other *BSD releases.
  1535.  
  1536.     Also, if the Makefile is moved to the /usr/share/man directory, the 
  1537.     whatis.db will reside where it needs to eventually reside, and the 
  1538.     install will wipe it out.  An easy fix for that problem is to change 
  1539.     the two references of whatis.db in the excerpt above to 
  1540.     /tmp/whatis.db.  This will ensure the file is correctly built and 
  1541.     installed.
  1542.  
  1543.  
  1544. 2.8.3    I want to use more than 16 Megabytes of memory.  Will any of the 
  1545.     BSD based systems support it?
  1546.  
  1547.     Early on, 386bsd 0.1 would choke radically on any system that had
  1548.     more than 8M of memory.  With the advent of the patchkit, this 
  1549.     problem was, for the most part, solved; memory could then expand to
  1550.     the 16M limit inherent in the ISA bus.
  1551.  
  1552.     As people started using VESA and EISA busses, however, attempts 
  1553.     were made to push the envelope even further.  Memory limits have 
  1554.     expanded seemingly without limit.  Since the EISA bus (for example) 
  1555.     has 32 address lines, it is capable of supporting more memory than 
  1556.     the ISA bus with its 24 address lines.  While the 386 and 486 are
  1557.     capable of addresses up to 4 Gigabytes (considerably more than the 
  1558.     ISA bus allows) the ISA bus is still the primary limitation.
  1559.  
  1560.     When using NetBSD and FreeBSD, there is no SOFTWARE limitation on 
  1561.     more than 16Meg of memory.  There are still hardware limitations.
  1562.     The limit is caused by DMA controllers which copy memory images
  1563.     around the system.  Many cards which people use in VESA and EISA
  1564.     machines either emulate ISA cards (in order to work with *BSD) or
  1565.     are really ISA cards.  There are reports of people having trouble 
  1566.     with more than 64Meg of memory, but anyone rich enough to have
  1567.     that kind of memory should be paying for his OS. :-)
  1568.  
  1569.     Jordan K Hubbard (jkh@thrush.lotus.com) has provided this 
  1570.     explanation of the distinction:
  1571.  
  1572.     Just so long as you're using a DMA-using disk controller in EISA 
  1573.     mode, rather than ISA mode, you can use more than 16 Meg of memory.
  1574.  
  1575.     For those who may find such a distinction confusing, let me explain:
  1576.  
  1577.     You can use an ISA controller (such as an Adaptec 1542) in an EISA
  1578.     machine, but as it will still think it's in an ISA box and refuse to
  1579.     use the extra address lines, this is no different than having an
  1580.     ISA machine as far as >16MB is concerned.
  1581.  
  1582.     You can use an EISA controller in "ISA mode", meaning it uses the
  1583.     older protocols for compatability reasons (examples being Adaptec 
  1584.     1742 in "standard" mode, DTC 3290 in "Adaptec" mode, etc) and 
  1585.     again, does not use the extra address lines.
  1586.  
  1587.     The only way to get full EISA, 32MB-of-memory-and-everything, mode 
  1588.     is to use an EISA controller in full EISA mode (for Adaptec 1742, 
  1589.     this is "enhanced" mode, for DTC 3290 it's "DTC" mode).
  1590.  
  1591.     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1592.  
  1593.     In addition, several other types of EISA controllers which do NOT
  1594.     use DMA will not cause problems.  IDE, ESDI, and RLL controllers
  1595.     are examples of this type of card.  The discussion above also applies
  1596.     to VESA and VLB cards. 
  1597.  
  1598.     So, the bottom line is that you are limited to the amount of memory
  1599.     that your DMA equipped devices can access.  Once again, the weakest
  1600.     link is the strength of your machine.
  1601.  
  1602.  
  1603. 2.8.4    I tried to use a device in my computer that should be there.  When 
  1604.     I did, I got a "Device not configured error."  What do I do now?
  1605.  
  1606.     Garrett A. Wollman (wollman@emba.uvm.edu) provides us with this
  1607.     brief discussion in answer to a specific question.  It wears well
  1608.     as a generic answer as well.
  1609.  
  1610.     When any program tells you ``Device not configured'', it's trying 
  1611.     to tell you something very important about what you tried to do:
  1612.     namely, that the device you tried to access is not configured 
  1613.     into the running operating system.  This is the error message 
  1614.     corresponding to ENXIO.
  1615.  
  1616.     There are three major causes for this error:
  1617.  
  1618.     1) The kind of device you requested was not configured into the
  1619.        system.  This is R.W.'s problem; the generic kernels 
  1620.        are not distributed with the Berkeley Packet Filter enabled by 
  1621.        default.  To correct this, you must add the appropriate device or
  1622.        pseudo-device to your kernel configuration file and recompile.  
  1623.        (In this particular case, `pseudo-device bpfilter
  1624.        number-of-network-interfaces'.)
  1625.  
  1626.     2) The kind of device you requested was configured into the system,
  1627.        but either the device you requested would use more than the
  1628.        maximum you configured into the system, or if a physical device,
  1629.        was not found during autoconfiguration.  To solve this, either
  1630.        change your configuration file, or change the I/O settings on the
  1631.        device to match what the file says.
  1632.  
  1633.     3) The major or minor device number specified by the device's
  1634.        entry(ies) in /dev is incorrect.  To solve this, re-MAKEDEV the
  1635.        device (read the MAKEDEV script for more details).  Hopefully
  1636.        whatever change caused the kernel's internal device tables to get
  1637.        changed also updated your MAKEDEV script; otherwise, you will have
  1638.        to grovel through the kernel to see what is going on.
  1639.  
  1640. -- 
  1641. ------
  1642. TSgt Dave Burgess               | Dave Burgess
  1643. NCOIC, USSTRATCOM/J6444         | *BSD FAQ Maintainer
  1644. Offutt AFB, NE                  | Burgess@hrd769.brooks.af.mil
  1645.  
  1646.  
  1647.  
  1648.