Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 1999 17:02:12 -0700 (PDT)
From:      grog@FreeBSD.ORG (Greg Lehey)
To:        FreeBSD-questions@FreeBSD.org
Subject:   "The Complete FreeBSD", second edition: errata and addenda
Message-ID:  <19990417000212.D4AB014E34@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help








          Errata and addenda for the Complete FreeBSD, second edition




                        Last revision: 25 February 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 <grog@FreeBSD.org.>

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 <sue@welearn.com.au> 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 <gfm@readybox.com> 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 <stuart@internationalschool.co.uk> and <gkaplan@cas-
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 <r-beer@onu.edu> 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 <gurab@lineone.net>  and  Francois  Jacques  <fran-
cois.jacques@callisto.si.usherb.ca> for drawing this to my attention.

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
name.  In particular, the Logitech protocol  only  applies  to  older  Logitech

                                                                         Page 7






Install ports when installing the system


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
files: /etc/csh.login to be executed on login, /etc/csh.cshrc  to  be  executed

Page 8






                    Errata and addenda for the Complete FreeBSD, second edition


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 9






Install ports when installing the system


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 10






                    Errata and addenda for the Complete FreeBSD, second edition


Thanks to Lars Koller  <Lars.Koeller@Uni-Bielefeld.DE> 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 , page *******, for more details.  As we shall see, /var is a file
system intended to store data that changes frequently.

Thanks to Charlie Sorsby <crs@hgo.net> 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

                                                                        Page 11






Install ports when installing the system


device name or the directory name.  For  example,  to  unmount  the  CD-ROM  we
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):

=== root@freebie (/dev/ttyp2) /cd1 16 -> umount /cd1
umount: /cd1: Device busy
=== root@freebie (/dev/ttyp2) /cd1 17 -> cd
=== root@freebie (/dev/ttyp2) ~ 18 -> umount /cd1
=== root@freebie (/dev/ttyp2) ~ 19 ->

Thanks to Ken Deboy <glockr@locked_and_loaded.reno.nv.us> 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 <karl@softronex.dynip.com> for pointing out this error.






Page 12






                    Errata and addenda for the Complete FreeBSD, second edition


Page 197, first line
____________________

The text of the first full sentence reads:

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 <nrice@emu.sourcee.com> 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:




                                                                        Page 13






Install ports when installing the system


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  <tgj@worldnet.att.net>  for  bringing  this  to  my
attention.

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  <dunham@dunham.org>  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 <kaiserc@fltg.net> 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:





Page 14






                    Errata and addenda for the Complete FreeBSD, second edition


# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cd /
# cat /cdrom/src/ssys.[a-d]* | tar xzvf -

Thanks    to    Raymond    Noel   <raynoel@videotron.ca>,   Suttipan   Limanond
<b0l6604@unix.tamu.edu> and Satwant <wizkid11@xnet.com> for finding this one in
several small slices.

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  <c.raven@ukonline.co.uk> 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.

                                                                        Page 15






Install ports when installing the system


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 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 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 2.2.7 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

Page 16






                    Errata and addenda for the Complete FreeBSD, second edition


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 <dan@dpcsys.com> 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 <mark@fang.cs.sunyit.edu> 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
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 <brian@Awfulhak.org> for this information.

Page 397
________

In the section ``Nicknames'', the example should read:





                                                                        Page 17






Install ports when installing the system


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  <c.raven@ukonline.co.uk> for drawing this to my
attention.

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

Page 18






                    Errata and addenda for the Complete FreeBSD, second edition


  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 <laskavy@hedgehog.cs.msu.su> for drawing this to my
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.

                                                                        Page 19






Install ports when installing the system


Thanks to Mark S. Reichman <mark@borg.com> 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
directory  sbin,  not  bin).   Check  both  locations  if you run into trouble.
Thanks to Sue Blake <sue@welearn.com.au> 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

Page 20






                    Errata and addenda for the Complete FreeBSD, second edition


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 21





To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990417000212.D4AB014E34>