The trouble with books is that you can't update them the way you can a web page or any other online documentation. The result is that most leading edge computer books are out of date almost before they are printed. Unfortunately, ``The Complete FreeBSD'', published by Walnut Creek, is no exception. Inevitably, a number of bugs and changes have surfaced.
The following is a list of modifications which go beyond simple typos. They relate to the third edition, formatted on 17 May 1999. You'll find this information on page iv (the page before the beginning of the Table of Contents). See the end of this document for instructions on how to find the errata for an older version.
You can get the current document in four forms:
Be careful selecting this file with a web browser: it is often impossible to reload the document, and you may see a previously cached version.
You'll boot your system in at least two different ways: initially you'll boot from floppy or CD-ROM in order to install the system. Later, after the system is installed, you'll boot from hard disk. The procedure is almost identical, so we'll look at both versions in the following examples.
Replace the text from the middle of page 191 with:
If you're booting from 1.44 MB floppies, you will then see:
Please insert MFS root floppy and press enter:When you insert the MFS root floppy and press Enter, you see more twirling batons, then the UserConfig screen appears.
nfs_client_enable="YES" # This host is an NFS client (or NO). nfs_server_enable="YES" # This host is an NFS server (or NO).
Modern disks make provisions for recovering from such errors by allocating an alternate sector for the data. IDE drives do this automatically, but with SCSI drives you have the option of enabling or disabling reallocation. Usually it is turned on when you buy them, but occasionally it is not. When installing a new disk, you should check that the parameters ARRE (Auto Read Reallocation Enable) and AWRE (Auto Write Reallocation Enable) are turned on. For example, to check and set the values for disk da1, you would enter:
# camcontrol modepage da1 -m 1 -e -P 3 # scsi -f /dev/rda1c -m 1 -e -P 3This command will start up your favourite editor (either the one specified in the EDITOR environment variable, or vi by default) with the following data:
AWRE (Auto Write Reallocation Enbld): 0 ARRE (Auto Read Reallocation Enbld): 1 TB (Transfer Block): 0 RC (Read Continuous): 0 EER (Enable Early Recovery): 0 PER (Post Error): 0 DTE (Disable Transfer on Error): 0 DCR (Disable Correction): 0 Read Retry Count: 16 Correction Span: 41 Head Offset Count: 0 Data Strobe Offset Count: 0 Write Retry Count: 16 Recovery Time Limit: 0The values for AWRE and ARRE should both be 1. If they aren't, as in this case, where AWRE is 0, change the data with the editor, save it, and exit. The camcontrol program will write the data back to the disk and enable the option.
Thanks to Francisco Reyes for pointing out this problem.
Next, change to the build directory and build the kernel:
# cd ../../compile/FREEBIE # make depend # make
The make depend is needed even if the directory has just been created: apart from creating dependency information, it also creates some files needed for the build.Thanks to Mark Ovens for drawing this to my attention, and to Francisco Reyes and Bill Fumerola for pointing out that it still wasn't fixed in the third edition.
defaultrouter="139.130.136.129" # Set to default gateway (or NO). static_routes="" # Set to static route list (or leave empty). gateway_enable="YES" # Set to YES if this host will be a gateway.This is the normal way to set the default route on a point-to-point interface. In fact, for PPP you don't need to specify the default address: the PPP packages will set it for you when the link comes up. This makes it possible to set default routes when you're forced to use dynamic IP addresses, where you don't know the address at this point. We'll see how PPP does this on page 446.
In the first example on page 410, the sixth example on page 412 and the second example on page 413, replace the defaultrouter definition with:
defaultrouter="139.130.237.65" # Set to default gateway (or NO).
Thanks to Andreas Longwitz for pointing out this error.
Greg's home page |