Errata and addenda for the Complete FreeBSD, second edition
Last revision: 21 June 1999
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. In-
evitably, a number of bugs and changes have surfaced.
The following is a list of modifications which go beyond simple typos. They
relate to the second edition, formatted on 16 December 1997. If you have this
book, please check this list. If you have the first edition of 19 July 1996,
please check ftp://ftp.lemis.com/pub/cfbsd/errata-1. This same file is also
available via the web link http://www.lemis.com/.
This list is available in four forms:
o A PostScript version, suitable for printing out, at
ftp://ftp.lemis.com/pub/cfbsd/errata-2.ps. See page 222 of the book to find
out how to print out PostScript. If at all possible, please take this
document: it's closest to the original text.
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.
o An enhanced ASCII version at ftp://ftp.lemis.com/pub/cfbsd/errata-2.txt. When
viewed with more or less, this version will show some highlighting and
underlining. It's not suitable for direct viewing.
o An ASCII-only version at ftp://ftp.lemis.com/pub/cfbsd/errata-2.ascii. This
version is posted every week to the FreeBSD-questions mailing list. Only
take this version if you have real problems with PostScript: I can't be sure
that the lack of different fonts won't confuse the meaning.
o A web version at http://www.lemis.com/errata-2.html.
All these modifications have been applied to the ongoing source text of the
book, so if you buy a later edition, they will be in it as well. If you find a
Page 1
The Complete FreeBSD
bug or a suspected bug in the book, please contact me at <[EMAIL PROTECTED]>
General changes
_______________
o In a number of places, I suggest the use of the following command to find
process information:
$ ps aux | grep foo
Unfortunately, ps is sensitive to the column width of the terminal emulator
upon which it is working. This command usually works fine on a relatively
wide xterm, but if you're running on an 80-column terminal, it may truncate
exactly the information you're looking for, so you end up with no output.
You can fix that with the w option:
$ ps waux | grep foo
Thanks to Sue Blake <[EMAIL PROTECTED]> for this information
Location of the sample files
____________________________
On the 2.2.5 CD-ROM only, the location of the sample files does not match the
specifications in the book (/book on the first CD-ROM). The 2.2.5 CD-ROM came
out before the book, and it contains the files on the third (repository) CD-ROM
as a single gzipped tar file /xperimnt/cfbsd/cfbsd.tar.gz. It contains the
following files:
drwxr-xr-x jkh/jkh 0 Oct 17 13:01 1997 cfbsd/
drwxr-xr-x jkh/jkh 0 Oct 17 13:01 1997 cfbsd/mutt/
-rw-r--r-- jkh/jkh 352 Oct 15 15:21 1997 cfbsd/mutt/.mail_aliases
-rw-r--r-- jkh/jkh 9394 Oct 15 15:22 1997 cfbsd/mutt/.muttrc
drwxr-xr-x jkh/jkh 0 Oct 17 14:02 1997 cfbsd/scripts/
-rw-r--r-- jkh/jkh 18281 Oct 16 16:52 1997 cfbsd/scripts/.fvwm2rc
-rwxr-xr-x jkh/jkh 1392 Oct 17 12:54 1997 cfbsd/scripts/install-desktop
-rw-r--r-- jkh/jkh 296 Oct 17 12:35 1997 cfbsd/scripts/.xinitrc
-rwxr-xr-x jkh/jkh 622 Oct 17 13:51 1997 cfbsd/scripts/install-rcfiles
-rw-r--r-- jkh/jkh 1133 Oct 17 13:00 1997 cfbsd/scripts/Uutry
-rw-r--r-- jkh/jkh 1028 Oct 17 14:02 1997 cfbsd/scripts/README
drwxr-xr-x jkh/jkh 0 Oct 18 19:32 1997 cfbsd/docs/
-rw-r--r-- jkh/jkh 199111 Oct 16 14:29 1997 cfbsd/docs/packages.txt
Page 2
Errata and addenda for the Complete FreeBSD, second edition
-rw-r--r-- jkh/jkh 189333 Oct 16 14:28 1997 cfbsd/docs/packages-by-category.txt
-rw-r--r-- jkh/jkh 188108 Oct 16 14:29 1997 cfbsd/docs/packages.ps
-rw-r--r-- jkh/jkh 226439 Oct 16 14:27 1997 cfbsd/docs/packages-by-category.ps
-rw-r--r-- jkh/jkh 788 Oct 16 15:01 1997 cfbsd/README
-rw-r--r-- jkh/jkh 248 Oct 17 11:52 1997 cfbsd/errata
To extract one of these files, say cfbsd/docs/packages.txt, and assuming you
have the CD-ROM mounted as /cdrom, enter:
# cd /usr/share/doc
# tar xvzf /cdrom/xperimnt/cfbsd/cfbsd.tar.gz cfbsd/docs/packages.txt
See page 209 for more information on using tar.
These files are an early version of what is described in the book. I'll put up
some updated versions on ftp://ftp.lemis.com/ in the near future.
Thanks to Frank McCormick <[EMAIL PROTECTED]> for drawing this to my attention.
Chapter 8: Setting up X11
_________________________
For FreeBSD 2.2.7, this chapter has changed sufficiently to make it impractical
to distribute errata. You can download the PostScript version from
ftp://www.lemis.com/pub/cfbsd/xsetup.ps, or the ASCII version from
ftp://www.lemis.com/pub/cfbsd/xsetup.txt. No HTML version is available.
Page xxxiv
__________
Before the discussion of the shell prompts in the middle of the page, add:
In this book, I recommend the use of the Bourne shell or one of its descendents
(sh, bash, pdksh, ksh or zsh). With the exception of sh, they are all in the
Ports Collection. I personally use the bash shell.
This is a personal preference, and a recommendation, but it's not the standard
shell. The standard BSD shell is the C shell (csh), which has a fuller-
featured descendent tcsh. In particular, the standard installation sets the
root user up with a csh. See page 152 (in this errata) for details of how to
change the shell.
Page 3
General changes
Page 11: Reading the handbook
_____________________________
The CD-ROM now includes Netscape. Replace the last paragraph on the page and
the example on the following page with:
If you're running X, you can use a browser like netscape to read the handbook.
If you don't have X running yet, use lynx. Both of these programs are included
on the CD-ROM. To install them, enter:
# pkg_add /cdrom/packages/All/netscape-communicator-4.5.tgz
or
# pkg_add /cdrom/packages/All/lynx-2.8.1.1.tgz
The numbers after the name (4.5 and 2.8.1.1) may change after this book has
been printed. Use ls to list the names if you can't find these particular
versions.
Note that lynx is not a complete substitute for netscape: since it is text-
only, it is not capable of displaying the large majority of web pages
correctly. It will suffice for reading most of the handbook, however.
Thanks to Stuart Henderson <[EMAIL PROTECTED]> and <[EMAIL PROTECTED]
tle.net> for drawing this to my attention.
Page 12: Printing the handbook
______________________________
The instructions for formatting the handbook are obsolete. Replace the section
starting Alternatively, you can print out the handbook with the following text:
Alternatively, you can print out the handbook. You need to have the
documentation sources (/usr/doc) installed on your system. You can find them
on the second CD-ROM in the directory of the same name. To install them, first
mount your CD-ROM (see page 175). Then enter:
$ cd /cdrom/usr/doc/handbook
$ mkdir -p /usr/doc/handbook you may need to be root for this operation
$ cp -pr * /usr/doc/handbook
You have a choice of formats for the output:
o ascii will give you plain 7-bit ASCII output, suitable for reading on a
character-mode terminal.
Page 4
Errata and addenda for the Complete FreeBSD, second edition
o html will give you HTML output, suitable for browsing with a web browser.
o latex will give you LATEX format, suitable for further processing with TEX
and LATEX.
o ps will give you PostScript output, probably the best choice for printing.
o roff will give you output in troff source. You can process this output with
nroff or troff, but it's currently not very polished. LATEX output is a
better choice if you want to process it further.
Once you have decided your format, use make to create the document. For
example, if you decide on PostScript format, you would enter:
$ make FORMATS=ps
This creates a file handbook.ps which you can then print to a PostScript
printer or with the aid of ghostscript (see page 222).
Thanks to Bob Beer <[EMAIL PROTECTED]> for drawing this to my attention.
Page 45: Preparing floppies for installation
_____________________________________________
Replace the paragraph below the list of file names (in the middle of the page)
with:
The floppy set should contain the file bin.inf and the ones whose names start
with bin. followed by two letters. These other files are all 240640 bytes
long, except for the final one which is usually shorter. Use the MS-DOS COPY
program to copy as many files as will fit onto each disk (5 or 6) until you've
got all the distributions you want packed up in this fashion. Copy each
distribution into subdirectory corresponding to the base name--for example,
copy the bin distribution to the files A:\BIN\BIN.INF, A:\BIN\BIN.AA and so on.
Page 80 and 81
______________
In a couple of examples, the FreeBSD partition is shown as type 164. It should
be 165. Thanks to an unknown contributer for this correction (sorry, I lost
your name).
Page 5
General changes
Page 88: setting up for dumping
_______________________________
The example mentions a variable savecore in /etc/rc.conf. This variable is no
longer used--it's enough to set the variable dumpdev.
Page 92
_______
At the end of the section How to install a package add the text:
Alternatively, you can install packages from the /stand/sysinstall Final
Configuration Menu. We saw this menu on page in figure 4-14 on page 71. When
you start sysinstall from the command line, you get to this menu by selecting
Index, and then selecting Configure.
Page 93
_______
Before the heading Install ports from the first CD-ROM add:
Install ports when installing the system
________________________________________
The file ports/ports.tgz on the first CD-ROM is a tar archive containing all
the ports. You can install it with the base system if you select the Custom
distribution and include the ports collection. If you didn't install them at
the time, use the following method to install them all (about 40 MB). Make
sure your CD-ROM is mounted (in this example on /cdrom), and enter:
Page 96
_______
Replace the example at the top of the page with:
Instead, do:
# cd /cd4/ports/distfiles
# mkdir -p /usr/ports/distfiles make sure you have a distfiles directory
# for i in *; do
> ln -s /cd4/ports/distfiles/$i /usr/ports/distfiles/$i
> done
Page 6
Errata and addenda for the Complete FreeBSD, second edition
If you're using csh or tcsh, enter:
# cd /cd4/ports/distfiles
# mkdir -p /usr/ports/distfiles make sure you have a distfiles directory
# foreach i (*)
? ln -s /cd4/ports/distfiles/$i /usr/ports/distfiles/$i
? end
Thanks to Christopher Raven <[EMAIL PROTECTED]> and Francois Jacques <fran-
[EMAIL PROTECTED]> for drawing this to my attention.
Page 104
________
The examples at the bottom of the page and the top of the next page specify the
wrong directory (/usr). It should be /usr/X11R6. Replace the examples with:
For a full install, choose /cdrom/dists/XF86331/X331*.tgz. If you are using
sh, enter:
# cd /usr/X11R6
# for i in /cdrom/dists/XF86331/X331*.tgz; do
# tar xzf $i
# done
If you are using csh, enter:
% cd /usr/X11R6
% foreach i (/cdrom/dists/XF86331/X331*.tgz)
% tar xzf $i
% end
For a minimal installation, first choose a server archive corresponding to your
VGA board. If table 8-2 on page 103 doesn't give you enough information, check
the server man pages, starting on page 1545, which list the VGA chip sets
supported by each server. For example, if you have an ET4000 based board you
will use the XF86_SVGA server. In this case you would enter:
# cd /usr/X11R6
# tar xzf /cdrom/dists/XF86331/X331SVGA.tgz substitute your server name here
# for i in bin fnts lib xicf; do
# tar xzf /cdrom/dists/XF86331/X331$i.tgz
# done
Page 7
Install ports when installing the system
If you are using csh, enter:
% cd /usr/X11R6
% tar xzf /cdrom/dists/XF86331/X331SVGA.tgz substitute your server name here
% foreach i (bin fnts lib xicf)
% tar xzf /cdrom/dists/XF86331/$i
% end
Thanks to Manuel Enrique Garcia Cuesta <[EMAIL PROTECTED]> for pointing out
this one.
Page 128
________
Replace the complete text below the example with the following:
These values are defaults, and many are either incorrect for FreeBSD (for
example the device name /dev/com1) or do not apply at all (for example Xqueue).
If you are configuring manually, select one Protocol and one Device entry from
the following selection. If you must use a two-button mouse, uncomment the
keyword Emulate3Buttons--in this mode, pressing both mouse buttons simultane-
ously within Emulate3Timeout milliseconds causes the server to report a middle
button press.
Section "Pointer"
Protocol "Microsoft" for Microsoft protocol mice
Protocol "MouseMan" for Logitech mice
Protocol "PS/2" for a PS/2 mouse
Protocol "Busmouse" for a bus mouse
Device "/dev/ttyd0" for a mouse on the first serial port
Device "/dev/ttyd1" for a mouse on the second serial port
Device "/dev/ttyd2" for a mouse on the third serial port
Device "/dev/ttyd3" for a mouse on the fourth serial port
Device "/dev/psm0" for a PS/2 mouse
Device "/dev/mse0" for a bus mouse
Emulate3Buttons only for a two-button mouse
EndSection
You'll notice that the protocol name does not always match the manufacturer's
Page 8
Errata and addenda for the Complete FreeBSD, second edition
name. In particular, the Logitech protocol only applies to older Logitech
mice. The newer ones use either the MouseMan or Microsoft protocols. Nearly
all modern serial mice run one of these two protocols, and most run both.
If you are using a bus mouse or a PS/2 mouse, make sure that the device driver
is included in the kernel. The GENERIC kernel contains drivers for both mice,
but the PS/2 driver is disabled. Use UserConfig (see page 50) to enable it.
Page 140
________
Just before the paragraph The super user add the following paragraph:
If you do manage to lose the root password, all may not be lost. Reboot the
machine to single user mode (see page 157), and enter:
# mount -u / mount root file system read/write
# mount /usr mount /usr file system (if separate)
# passwd root change the password for root
Enter new password:
Enter password again:
# ^D enter ctrl-D to continue with startup
If you have a separate /usr file system (the normal case), you need to mount it
as well, since the passwd program is in the directory /usr/bin. Note that you
should explicitly state the name root: in single user mode, the system doesn't
have the concept of user IDs.
Page 148
________
Replace the text at the top of the page with:
Modern shells supply command line editing which resembles the editors vi or
Emacs. In bash, sh, ksh, and zsh you can make the choice by entering
Page 152
________
After figure 10-8, add the following text:
It would be tedious for every user to put settings in their private
initialization files, so the shells also read a system-wide default file. For
the Bourne shell family, it is /etc/profile, while the C shell family has three
Page 9
Install ports when installing the system
files: /etc/csh.login to be executed on login, /etc/csh.cshrc to be executed
when a new shell is started after you log in, and /etc/csh.logout to be
executed when you stop a shell. The start files are executed before the
corresponding individual files.
In addition, login classes (page 141) offer another method of setting
environment variables at a global level.
Changing your shell
___________________
The FreeBSD installation gives root a C shell, csh. This is the traditional
Berkeley shell, but it has a number of disadvantages: command line editing is
very primitive, and the script language is significantly different from that of
the Bourne shell, which is the de facto standard for shell scripts: if you stay
with the C shell, you may still need to understand the Bourne shell. The
latest version of the Bourne shell sh also includes some command line editing.
See page 148 for details of how to enable it.
You can get better command line editing with tcsh, in the Ports Collection.
You can get both better command line editing and Bourne shell syntax with bash,
also in the Ports Collection.
If you have root access, you can use vipw to change your shell, but there's a
more general way: use chsh (Change Shell). Simply run the program. It starts
your favourite editor (as defined by the EDITOR environment variable). Here's
an example before:
#Changing user database information for velte.
Shell: /bin/csh
Full Name: Jack Velte
Location:
Office Phone:
Home Phone:
You can change anything after the colons. For example, you might change this
to:
#Changing user database information for velte.
Shell: /usr/local/bin/bash
Full Name: Jack Velte
Location: On the road
Office Phone: +1-408-555-1999
Home Phone:
Page 10
Errata and addenda for the Complete FreeBSD, second edition
chsh checks and updates the password files when you save the modifications and
exit the editor. The next time you log in, you get the new shell. chsh tries
to ensure you don't make any mistakes--for example, it won't let you enter the
name of a shell which isn't mentioned in the file /etc/shells--but it's a very
good idea to check the shell before logging out. You can try this with su,
which you normally use to become super user:
bumble# su velte
Password:
su-2.00$ note the new prompt
There are a couple of problems in using tcsh or bash as a root shell:
o The shell for root must be on the root file system, otherwise it will not
work in single user mode. Unfortunately, most ports of shells put the shell
in the directory /usr/local/bin, which is almost never on the root file
system.
o Most shells are dynamically linked: they rely on library routines in files
such as /usr/lib/libc.a. These files are not available in single user mode,
so the shells won't work. You can solve this problem by creating statically
linked versions of the shell, but this requires programming experience beyond
the scope of this book.
If you can get hold of a statically linked version, perform the following steps
to install it:
o Copy the shell to /bin, for example:
# cp /usr/local/bin/bash /bin
o Add the name of the shell to /etc/shells, in this example the line in bold
print:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/sh
/bin/csh
/bin/bash
You can then change the shell for root as described above.
Page 11
Install ports when installing the system
Thanks to Lars Koller <[EMAIL PROTECTED]> for drawing this to my
attention.
Page 160
________
Replace the text at the fourth bullet with the augmented text:
The second-level boot locates the kernel, by default the file /kernel on the
root file system, and loads it into memory. It prints the Boot: prompt at this
point so that you can influence this choice--see the man page on page 579 for
more details of what you can enter at this prompt.
Page 169
________
Replace the last paragraph on the page with:
The standard solution for these problems is to relocate the /tmp file system to
a different directory, say /usr/tmp, and create a symbolic link from /usr/tmp
to /tmp--see Chapter 4, Installing FreeBSD, page 72, for more details.
Thanks to Charlie Sorsby <[EMAIL PROTECTED]> for drawing this to my attention.
Page 176
________
Add the following paragraph
Unmounting file systems
When you mount a file system, the system assumes it is going to stay there, and
in the interests of efficiency it delays writing data back to the file system.
This is the same effect we discussed on page 158. As a result, if you want to
stop using a file system, you need to tell the system about it. You do this
with the umount command. Note the spelling--there's no n in the command name.
You need to do this even with read-only media such as CD-ROMs: the system
assumes it can access the data from a mounted file system, and it gets quite
unhappy if it can't. Where possible, it locks removable media so that you
can't remove them from the device until you unmount them.
Using umount is straightforward: just tell it what to unmount, either the
device name or the directory name. For example, to unmount the CD-ROM we
Page 12
Errata and addenda for the Complete FreeBSD, second edition
mounted in the example above, you could enter one of these commands:
# umount /dev/cd1a
# umount /cd1
Before unmounting a file system, umount checks that nobody is using it. If
somebody is using it, it will refuse to unmount it with a message like umount:
/cd1: Device busy. This message often occurs because you have changed your
directory to a directory on the file system you want to remove. For example
(which also shows the usefulness of having directory names in the prompt):
=== [EMAIL PROTECTED] (/dev/ttyp2) /cd1 16 -> umount /cd1
umount: /cd1: Device busy
=== [EMAIL PROTECTED] (/dev/ttyp2) /cd1 17 -> cd
=== [EMAIL PROTECTED] (/dev/ttyp2) ~ 18 -> umount /cd1
=== [EMAIL PROTECTED] (/dev/ttyp2) ~ 19 ->
Thanks to Ken Deboy <[EMAIL PROTECTED]> for pointing out this
omission.
Page 180
________
The example in the middle of the page should read:
For example, to generate a second set of 32 pseudo-terminals, enter:
# cd /dev
# ./MAKEDEV pty1
You can generate up to 256 pseudo-terminals. They are named ttyp0 through
ttypv, ttyq0 through ttyqv, ttyr0 through ttyrv, ttys0 through ttysv, ttyP0
through ttyPv, ttyQ0 through ttyQv, ttyR0 through ttyRv and ttyS0 through
ttySv. To create each set of 32 terminals, use the number of the set: the
first set is pty0, and the eighth set is pty7. Note that some processes, such
as xterm, only look at ttyp0 through ttysv.
Thanks to Karl Wagner <[EMAIL PROTECTED]> for pointing out this error.
Page 197, first line
____________________
The text of the first full sentence reads:
Page 13
Install ports when installing the system
The first name, up the the symbol, is the label.
In fact, it should read:
The first name, up to the | symbol, is the label.
Page 208, middle of page
________________________
The example shows the file name /dev/rst0 when using the Bourne shell, and
/dev/nrst0 when using C shell and friends. This is inconsistent; use
/dev/nrst0 with any shell if you want a non-rewinding tape, or /dev/rst0 if you
want a rewinding tape.
Thanks to Norman C Rice <[EMAIL PROTECTED]> for pointing out this one.
Page 219
________
Before the section Testing the spooler add the following section:
As we saw above, the line printer daemon lpd is responsible for printing
spooled jobs. By default it isn't started at boot time. If you're root, you
can start it by name:
# lpd
Normally, however, you will want it to be started automatically when the system
starts up. You do this by setting the variable lpd_enable in /etc/rc.conf:
lpd_enable="YES" # Run the line printer daemon
See page for more details of /etc/rc.conf.
Another line in /etc/rc.conf refers to the line printer daemon:
lpd_flags="" # Flags to lpd (if enabled).
You don't normally need to change this line. See the man page for lpd for
details of the flags.
Thanks to Tommy G. James <[EMAIL PROTECTED]> for bringing this to my
attention.
Page 14
Errata and addenda for the Complete FreeBSD, second edition
Page 231
________
Replace the first line of the example with:
xhost presto bumble gw
The original version allowed anybody on the Internet to access your system.
Thanks to Jerry Dunham <[EMAIL PROTECTED]> for drawing this one to my
attention.
Page 237
________
In the section Installing the sample desktop, replace the first paragraph with:
You'll find all the files described in this chapter on the first CD-ROM
(Installation CD-ROM) in the directory /book. Remember that you must mount the
CD-ROM before you can access the files--see page 175 for further details. The
individual scripts are in the directory /book/scripts, but you'll probably find
it easier to install them with the script install-desktop:
Thanks to Chris Kaiser <[EMAIL PROTECTED]> for drawing this to my attention.
Page 242
________
The instructions for extracting the source files from CD-ROM in the middle of
page 242 are incorrect. You'll find the kernel sources on the first CD-ROM in
the directory /src. Replace the example with:
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cd /
# cat /cdrom/src/ssys.[a-d]* | tar xzvf -
Thanks to Raymond Noel <[EMAIL PROTECTED]>, Suttipan Limanond
<[EMAIL PROTECTED]> and Satwant <[EMAIL PROTECTED]> for finding this one in
several small slices.
Page 15
Install ports when installing the system
Page 257
________
Replace the paragraph Berkeley Packet Filter with:
pseudo-device bpfilter
______________________
The Berkeley Packet Filter (bpf) allows you to capture packets crossing a
network interface to disk or to examine them with the tcpdump program. Note
that this capability represents a significant compromise of network security.
The number after bpfilter is the number of concurrent processes that can use
the facility. Not all network interfaces support bpf.
In order to use the Berkeley Packet Filter, you must also create the device
nodes /dev/bpf0 to /dev/bpf3 (if you're using the default number 4). Current-
ly, MAKEDEV doesn't help much--you need to create each device separately:
# cd /dev
# ./MAKEDEV bpf0
# ./MAKEDEV bpf1
# ./MAKEDEV bpf2
# ./MAKEDEV bpf3
Thanks to Christopher Raven <[EMAIL PROTECTED]> for drawing this to my
attention.
Page 264
________
In the list of disk driver flags, add:
o Bit 12 (0x1000) enables LBA (logical block addressing mode). If this bit is
not set, the driver accesses the disk in CHS (cylinder/head/sector) mode.
o In CHS mode, if bits 11 to 8 are not equal to 0, they specify the number of
heads to assume (between 1 and 15). The driver recalculates the number of
cylinders to make up the total size of the disk.
Page 16
Errata and addenda for the Complete FreeBSD, second edition
Page 273, ``Building the kernel''
_________________________________
Replace the example with:
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 <[EMAIL PROTECTED]> for drawing this to my attention.
Page 283, ``Creating the source tree''
______________________________________
Add a third point to what you need to know:
3. Possibly, the date of the last update that you want to be included in the
checkout. If you specify this date, cvs ignores any more recent updates.
This option is often useful when somebody discovers a recently introduced bug
in -CURRENT: you check out the modules as they were before the bug was
introduced. You specify the date with the -D option, for example -D "10
December 1997".
Page 285, after the second example.
___________________________________
Add the text:
If you need to check out an older version, for example if there are problems
with the most recent version of -CURRENT, you could enter:
# cvs co -D "10 December 1997" src/sys
This command checks out the kernel sources as of 10 December 1997.
Page 17
Install ports when installing the system
Page 294
________
Add the following section:
Problems executing Linux binaries
_________________________________
One of the problems with the ELF format used by more recent Linux binaries is
that they usually contain no information to identify them as Linux binaries.
They might equally well be BSD/OS or UnixWare binaries. That's not really a
problem at this point, since the only ELF format that FreeBSD 3.2 understands
is Linux, but FreeBSD-CURRENT recognizes a native FreeBSD ELF format as well,
and of course that's the default. If you want to run a Linux ELF binary on
such a system, you must brand the executable using the program brandelf. For
example, to brand the StarOffice program swriter3, you would enter:
# brandelf -t linux /usr/local/StarOffice-3.1/linux-x86/bin/swriter3
Thanks to Dan Busarow <[EMAIL PROTECTED]> for bringing this to my attention.
Page 364, middle of page
________________________
Change the text from:
The names MYADDR and HISADDR are keywords which represent the addresses at each
end of the link. They must be written as shown, though they may be in lower
case.
to
The names MYADDR and HISADDR are keywords which represent the addresses at each
end of the link. They must be written as shown, though newer versions of ppp
allow you to write them in lower case.
Thanks to Mark S. Reichman <[EMAIL PROTECTED]> for this correction.
Page 368
________
Replace the paragraph after the second example with:
In FreeBSD version 3.0 and later, specify the options PPP_BSDCOMP and
Page 18
Errata and addenda for the Complete FreeBSD, second edition
PPP_DEFLATE to enable two kinds of compression. You'll also need to specify
the corresponding option in Kernel PPP's configuration file. These options are
not available in FreeBSD version 2.
Thanks to Brian Somers <[EMAIL PROTECTED]> for this information.
Page 397
________
In the section ``Nicknames'', the example should read:
www IN CNAME freebie
ftp IN CNAME presto
In other words, there should be a space between CNAME and the system name.
Page 422
________
Replace the text above the example with:
tcpdump is a program which monitors a network interface and displays selected
information which passes through it. It uses the Berkeley Packet Filter (bpf),
an optional component of the kernel. It is not included in the GENERIC kernel:
see page 257 for information on how to configure it.
If you don't configure the Berkeley Packet Filter, you will get a message like
tcpdump: /dev/bpf0: device not configured
If you forget to create the devices for bpf, you will get a message like:
tcpdump: /dev/bpf0: No such file or directory
Since tcpdump poses a potential security problem, you must be root in order to
run it. The simplest way to run it is without any parameters. This will cause
tcpdump to monitor and display all traffic on the first active network
interface, normally Ethernet:
Thanks to Christopher Raven <[EMAIL PROTECTED]> for drawing this to my
attention.
Page 19
Install ports when installing the system
Page 423
________
The description at the top of the page incorrectly uses the term IP address
instead of Ethernet address. In addition, a page number reference is
incorrect. Replace the paragraph with:
o Line 1 shows an ARP request: system presto is looking for the Ethernet
address of wait. It would appear that wait is currently not responding,
since there is no reply.
o Line 2 is not an IP message at all. tcpdump shows the Ethernet addresses and
the beginning of the packet. We don't consider this kind of request in this
book.
o Line 3 is a broadcast ntp message. We looked at ntp on page 160.
o Line 4 is another attempt by presto to find the IP address of wait.
o Line 5 is a broadcast message from bumble on the rwho port, giving
information about its current load averages and how long it has been up. See
the man page for rwho on page 1167 for more information.
o Line 6 is from a TCP connection between port 6000 on freebie and port 1089 on
presto. It is sending 384 bytes (with the sequence numbers 536925467 to
536925851; see page 305), and is acknowledging that the last byte it received
from presto had the sequence number 325114346. The window size is 17280.
o Line 7 is another ARP request. presto is looking for the Ethernet address of
freebie. How can that happen? We've just seen that they have a TCP
connection. In fact, ARP information expires after 20 minutes. It's quite
possible that all connections between presto and freebie have been dormant
for this period, so presto needs to find freebie's IP address again.
o Line 8 is the ARP reply from freebie to presto giving its Ethernet address.
o Line 9 shows a reply from presto on the connection to freebie that we saw on
line 6. It acknowledges the data up to sequence number 536925851, but
doesn't send any itself.
o Line 10 shows another 448 bytes of data from freebie to presto, and
acknowledging the same sequence number from presto as in line 6.
Thanks to Sergei S. Laskavy <[EMAIL PROTECTED]> for drawing this to my
Page 20
Errata and addenda for the Complete FreeBSD, second edition
attention.
Page 450: anonymous ftp
_______________________
Replace the paragraph starting with Create a user ftp:
Create a user ftp, with the anonymous ftp directory as the home directory and
the shell /dev/null. Using /dev/null as the shell makes it impossible to log
in as user ftp, but does not interfere with the use of anonymous ftp. ftp can
be a member of group bin, or you can create a new group ftp by adding the group
to /etc/group. See page 138 for more details of adding users, and the man page
on page 805 for adding groups.
Thanks to Mark S. Reichman <[EMAIL PROTECTED]> for drawing this to my attention.
Page 466, before the ps example
_______________________________
Add another bullet:
o Finally, you may find it convenient to let some other system handle all your
mail delivery for you: you just send anything you can't deliver locally to
this other host, which sendmail calls a smart host. This is particularly
convenient if you send your mail with UUCP.
To tell sendmail to use a smart host (in our case, mail.example.net), find
the following line in sendmail.cf:
# "Smart" relay host (may be null)
DS
Change it to:
# "Smart" relay host (may be null)
DSmail.example.net
Page 478, ``Running Apache''
____________________________
The text describes the location of the server as /usr/local/www/server/httpd.
This appears to depend on where you get the port from. Some people report the
file being at the more likely location /usr/local/sbin/httpd (though note the
Page 21
Install ports when installing the system
directory sbin, not bin). Check both locations if you run into trouble.
Thanks to Sue Blake <[EMAIL PROTECTED]> for this information.
Page 492
________
Replace references to nmdb with nmbd.
Page 493
________
Replace the last paragraph on the page with:
socket options is hardly mentioned in the documentation, but it's very
important: many Microsoft implementations of TCP/IP are inefficient and
establish a new TCP more often than necessary. Select the socket options
TCP_NODELAY and IPTOS_LOWDELAY, which can speed up the response time of such
applications by over 95%.
Page 22
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-questions" in the body of the message