And to any others we've forgotten, apologies and heartfelt thanks!
From 2.0.5R to 2.2.1R, the primary configuration file is
/etc/sysconfig. All the options are to be specified in
this file and other files such as Look in the /etc/sysconfig file and change the value to
match your system. This file is filled with comments to show what
to put in there.
In post-2.2.1 and 3.0, /etc/sysconfig was renamed
to a more self-describing /etc/rc.local is here as always and may be used to
start up additional local services like The /etc/rc.serial is for serial port initialization
(e.g. locking the port characteristics, and so on.).
The /etc/rc.i386 is for Intel-specifics settings, such
as iBCS2 emulation or the PC system console configuration.
Starting with 2.1.0R, you can also have "local" startup files in a
directory specified in /etc/sysconfig (or
/etc/rc.conf):
Each file ending in If you want to ensure a certain execution order without changing all
the file names, you can use a scheme similar to the following with
digits prepended to each file name to insure the ordering:
It can be seen as ugly (or SysV :-)) but it provides a simple and
regular scheme for locally-added packages without resorting to
magical editing of /etc/rc.local. Many of the ports/packages
assume that /usr/local/etc/rc.d is a local startup directory.
Use the To remove the user again, use the See the Disk Formatting Tutorial at
Whether it's a removable drive like a ZIP or an EZ drive (or
even a floppy, if you want to use it that way), or a new hard
disk, once it's installed and recognized by the system, and
you have your cartridge/floppy/whatever slotted in, things are
pretty much the same for all devices.
Please take a look at Most ports should be available for the 2.2, 3.x and 4.0
branches, and many of them should work on 2.1.x systems as
well. Each time a FreeBSD release is made, a snapshot of the
ports tree at the time of release in also included in the
ports/ directory.
We also support the concept of a ``package'', essentially no
more than a gzipped binary distribution with a little extra
intelligence embedded in it for doing whatever custom installation
work is required. A package can be installed and uninstalled
again easily without having to know the gory details of which
files it includes.
Use the package installation menu in /stand/sysinstall
(under the post-configuration menu item) or invoke the
pkg_add(1) command on the specific package files you're
interested in installing. Package files can usually be identified by
their .tgz suffix and CDROM distribution people will have
a packages/All directory on their CD which contains such
files. They can also be downloaded over the net for various versions
of FreeBSD at the following locations:
or your nearest local mirror site.
Note that all ports may not be available as packages since
new ones are constantly being added. It is always a good
idea to check back periodically to see which packages are available
- at the
You are trying to run a package for 2.2/3.x/4.0 on a 2.1.x system. Please take a look at the previous section and get the correct port/package for your system.
You don't have a math co-processor, right?
You will need to add the alternative math emulator to your kernel;
you do this by adding the following to your kernel config file
and it will be compiled in.
You first need to edit the /etc/sysconfig
- (or It will load the You'll then need to set up /compat/ibcs2/dev to look like:
You just need socksys to go to After installing the inn package or port, an excellent place to
start is Use the Port, Luke! A pre-patched version of Apache is available
in the ports tree.
Yes. Please see Yes. Please see If you're running a FreeBSD version that lags significantly behind
-current or -stable, you may need a ports upgrade kit from
-
There are currently three active/semi-active branches in the FreeBSD
- To make a release you need to do three things: First, you need to
be running a kernel with the Second, you have to have the whole CVS repository at hand.
To get this you can use Then run Finally, you need a chunk of empty space to build into. Let's
say it's in /some/big/filesystem, and from the example
above you've got the CVS repository in /home/ncvs:
An entire release will be built in
/some/big/filesystem/release and you will have a full FTP-type
installation in /some/big/filesystem/release/R/ftp when you're
done. If you want to build your SNAP along some other branch than
-current, you can also add
The entire process of creating installation disks and source and
binary archives is automated by various targets in
/usr/src/release/Makefile. The information there should
be enough to get you started. However, it should be said that this
involves doing a ``make world'' and will therefore take up a lot of
time and disk space.
Yes, this is the general idea; as its name might suggest,
``make world'' rebuilds every system binary from scratch, so you can be
certain of having a clean and consistent environment at the end (which
is why it takes so long).
If the environment variable ${DESTDIR}.
Some random combination of shared libraries modifications and
program rebuilds can cause this to fail in ``
The Adaptec 1542 SCSI host adapters allow the user to configure
their bus access speed in software. Previous versions of the
1542 driver tried to determine the fastest usable speed and set
the adapter to that. We found that this breaks some users'
systems, so you now have to define the ``
Yes, you can do this
Newer BSD based systems have a ``Here is an example from /usr/src/Makefile.
Please take a look at And thanks for the thought!
By: In a nutshell, there a few I/O ports that all of the PnP boards
respond to when the host asks if anyone is out there. So when
the PnP probe routine starts, he asks if there are any PnP boards
present, and all the PnP boards respond with their model # to
a I/O read of the same port, so the probe routine gets a wired-OR
``yes'' to that question. At least one bit will be on in that
reply. Then the probe code is able to cause boards with board
model IDs (assigned by Microsoft/Intel) lower than X to go
``off-line''. It then looks to see if any boards are still
responding to the query. If the answer was ``The IDs are two 32-bit fields (hence 2ˆ64) + 8 bit checksum.
The first 32 bits are a vendor identifier. They never come out
and say it, but it appears to be assumed that different types of
boards from the same vendor could have different 32-bit vendor
ids. The idea of needing 32 bits just for unique manufacturers
is a bit excessive.
The lower 32 bits are a serial #, ethernet address, something
that makes this one board unique. The vendor must never produce
a second board that has the same lower 32 bits unless the upper
32 bits are also different. So you can have multiple boards of
the same type in the machine and the full 64 bits will still be
unique.
The 32 bit groups can never be all zero. This allows the
wired-OR to show non-zero bits during the initial binary search.
Once the system has identified all the board IDs present, it will
reactivate each board, one at a time (via the same I/O ports),
and find out what resources the given board needs, what interrupt
choices are available, etc. A scan is made over all the boards
to collect this information.
This info is then combined with info from any ECU files on the
hard disk or wired into the MLB BIOS. The ECU and BIOS PnP
support for hardware on the MLB is usually synthetic, and the
peripherals don't really do genuine PnP. However by examining
the BIOS info plus the ECU info, the probe routines can cause the
devices that are PnP to avoid those devices the probe code cannot
relocate.
Then the PnP devices are visited once more and given their I/O,
DMA, IRQ and Memory-map address assignments. The devices will
then appear at those locations and remain there until the next
reboot, although there is nothing that says you can't move them
around whenever you want.
There is a lot of oversimplification above, but you should get
the general idea.
Microsoft took over some of the primary printer status ports to
do PnP, on the logic that no boards decoded those addresses for
the opposing I/O cycles. I found a genuine IBM printer board
that did decode writes of the status port during the early PnP
proposal review period, but MS said ``tough''. So they do a
write to the printer status port for setting addresses, plus that
use that address +
Several groups of people have expressed interest in working on
multi-architecture ports for FreeBSD and the FreeBSD/AXP (ALPHA)
port is one such effort which has been quite successful, now
available in 3.0 SNAPshot release form at This depends on whether or not you plan on making the driver
publicly available. If you do, then please send us a copy of the
driver source code, plus the appropriate modifications to
files.i386, a sample configuration file entry, and the
- appropriate
In answer to the question of alternative layout policies for
directories, the scheme that is currently in use is unchanged
from what I wrote in 1983. I wrote that policy for the original
fast filesystem, and never revisited it. It works well at keeping
cylinder groups from filling up. As several of you have noted,
it works poorly for find. Most filesystems are created from
archives that were created by a depth first search (aka ftw).
These directories end up being striped across the cylinder groups
thus creating a worst possible senario for future depth first
searches. If one knew the total number of directories to be
created, the solution would be to create (total / fs_ncg) per
cylinder group before moving on. Obviously, one would have to
create some heuristic to guess at this number. Even using a
small fixed number like say 10 would make an order of magnitude
improvement. To differentiate restores from normal operation
(when the current algorithm is probably more sensible), you
could use the clustering of up to 10 if they were all done
within a ten second window. Anyway, my conclusion is that this
is an area ripe for experimentation. Kirk McKusick, September 1998
[This section was extracted from a mail written by
[<ben@rosengart.com> posted the following panic
message]
[When] you see a message like this, it's not enough to just
reproduce it and send it in. The instruction pointer value that
I highlighted up there is important; unfortunately, it's also
configuration dependent. In other words, the value varies
depending on the exact kernel image that you're using. If you're
using a GENERIC kernel image from one of the snapshots, then
it's possible for somebody else to track down the offending
function, but if you're running a custom kernel then only
What you should do is this:
I see people constantly show panic messages like this but
rarely do I see someone take the time to match up the
instruction pointer with a function in the kernel symbol table.
The best way to track down the cause of a panic is by
capturing a crash dump, then using
In any case, the method I normally use is this:
[Note: Now that FreeBSD 3.x kernels are Elf by default,
you should use
Note that YOU DO To make sure you capture a crash dump, you need edit
/etc/rc.conf and set /etc/rc.conf, the /var/crash.
NOTE: FreeBSD crash dumps are usually the same size as the
physical RAM size of your machine. That is, if you have 64MB of
RAM, you will get a 64MB crash dump. Therefore you must make sure
there's enough space in /var/crash to hold the dump.
Alternatively, you run Once you have recovered the crash dump, you can get a stack
trace with
Note that there may be several screens worth of information;
ideally you should use Now, if you're really insane and have a second computer, you
can also configure [Bill adds: "I forgot to mention one thing: if you have
DDB enabled and the kernel drops into the debugger, you can
force a panic (and a crash dump) just by typing 'panic' at the
ddb prompt. It may stop in the debugger again during the panic
phase. If it does, type 'continue' and it will finish the crash
dump." -ed]
The ELF toolchain does not, by default, make the symbols
defined in an executable visible to the dynamic linker.
Consequently dlsym() searches on handles obtained
from calls to dlopen(NULL, flags) will fail to find
such symbols.
If you want to search, using dlsym(), for symbols
present in the main executable of a process, you need to link
the executable using the -export-dynamic option to the
-
By default, the kernel address space is 256 MB on FreeBSD 3.x
and 1 GB on FreeBSD 4.x. If you run a network-intensive server
(e.g. a large FTP or HTTP server), you might find that 256 MB is
not enough.
So how do you increase the address space? There are two aspects
to this. First, you need to tell the kernel to reserve a larger
portion of the address space for itself. Second, since the
kernel is loaded at the top of the address space, you need to
lower the load address so it doesn't bump its head against the
ceiling.
The first goal is achieved by increasing the value of
src/sys/i386/include/pmap.h. Here's what
it looks like for a 1 GB address space:
To find the correct value of
To achieve the second goal, you need to compute the correct load
address: simply subtract the address space size (in bytes) from
0x100100000; the result is 0xc0100000 for a 1 GB address space.
Set src/sys/i386/conf/Makefile.i386
to that value; then set the location counter in the beginning of
the section listing in src/sys/i386/conf/kernel.script
to the same value, as follows:
Then reconfig and rebuild your kernel. You will probably have
problems with /usr/include/vm/.
NOTE: the size of the kernel address space must be a multiple of
four megabytes.
- [
FreeBSD supports EIDE and SCSI drives (with a compatible
controller; see the next section), and all drives using the
original "Western Digital" interface (MFM, RLL, ESDI, and
of course IDE). A few ESDI controllers that use proprietary
interfaces may not work: stick to WD1002/3/6/7 interfaces
and clones.
See the complete list in the
Any SCSI drive connected to a supported controller is supported.
The following proprietary CD-ROM interfaces are also supported:
All non-SCSI cards are known to be extremely slow compared to
SCSI drives, and some ATAPI CDROMs may not work.
As of 2.2 the FreeBSD CDROM from Walnut Creek supports booting
directly from the CD.
FreeBSD supports the SCSI ZIP drive out of the box, of course. The
ZIP drive can only be set to run at SCSI target IDs 5 or 6, but if
your SCSI host adapter's BIOS supports it you can even boot from
it. I don't know which host adapters let you boot from targets
other than 0 or 1... look at your docs (and let me know if it works
out for you).
ATAPI (IDE) Zip drives are supported in FreeBSD 2.2.6 and
later releases.
FreeBSD has contained support for Parallel Port Zip Drives since
version 3.0. If you are using a sufficiently up to date version, then
you should check that your kernel contains the scbus0, da0
, ppbus0, and vp0 drivers (the GENERIC kernel
contains everything except vp0). With all these drivers present, the
Parallel Port drive should be available as /dev/da0s4. Disks can
be mounted using mount /dev/da0s4 /mnt OR (for dos disks)
mount_msdos /dev/da0s4 /mnt as appropriate.
Also check out ,
and .
Apart from the IDE version of the EZ drive, these are all SCSI
devices, so the should all look like SCSI disks to FreeBSD, and
the IDE EZ should look like an IDE drive.
See .
There is a list of these in the Some unnamed clone cards have also been known to work, especially
those that claim to be AST compatible.
- Check the FreeBSD supports the bus mouse and the InPort bus mouse from such
manufactures as Microsoft, Logitech and ATI. The bus device driver
is compiled in the GENERIC kernel by default. If you are building
a custom kernel with the bus mouse driver, make sure to add the
following line to the kernel config file:
The bus mouse usually comes with an dedicatd interface card.
It may allow you to set the port address and the IRQ number other
than shown above. Refer to the manual of your mouse and the
- If you're running a post-2.2.5 version of FreeBSD, the necessary
driver, psm, is included and enabled in the kernel. The kernel
should detect your PS/2 mouse at boot time.
If you're running a previous but relatively recent version of
FreeBSD (2.1.x or better) then you can simply enable it in the
kernel configuration menu at installation time, otherwise later with
-c at the boot: prompt. It is disabled by default, so you will need
to enable it explicitly.
If you're running an older version of FreeBSD then you'll have to
add the following lines to your kernel configuration file and compile
a new kernel:
See the Once you have a kernel detecting psm0 correctly at boot time,
make sure that an entry for psm0 exists in /dev. You can do this
by typing:
when logged in as root.
If you are using the default console driver, syscons, you can
use a mouse pointer in text consoles to cut & paste text.
Run the mouse daemon, moused, and turn on the mouse pointer
in the virtual console:
Where xxxx is the mouse device name and yyyy
is a protocol type for the mouse. See the
- You may wish to run the mouse daemon automatically when the
system starts. In version 2.2.1, set the following variables in
/etc/sysconfig.
Staring from FreeBSD 2.2.6, the mouse daemon is capable of
determining the correct protocol type automatically unless the mouse
is a relatively old serial mouse model. Specify ``auto'' as
the protocol to invoke automatic detection.
When the mouse daemon is running, access to the mouse needs to be
coordinated between the mouse daemon and other programs such as the
X Window. Refer to
on this issue".
Once you get the mouse daemon running (see ), hold down the button 1 (left button)
and move the mouse to select a region of
text. Then, press the button 2 (middle button) or the button 3 (right
button) to paste it at the text cursor.
In versions 2.2.6 and later, pressing the button 2 will paste
the text. Pressing the button 3 will ``extend'' the selected region
of text. If your mouse does not have the middle button, you may wish
to emulate it or remap buttons using moused options. See the
- The answer is, unfortunately, ``It depends.'' These mice with
additional features require specialized driver in most cases.
Unless the mouse device driver or the user program has specific
support for the mouse, it will act just like a standard two, or
three button mouse.
Please refer to . And check out on the Mobile
Computing page.
FreeBSD supports SCSI, QIC-36 (with a QIC-02 interface) and
QIC-40/80 (Floppy based) tape drives. This includes 8-mm (aka Exabyte)
and DAT drives. The QIC-40/80 drives are known to be slow.
Some of the early 8-mm drives are not quite compatible with SCSI-2,
and may not work well with FreeBSD.
FreeBSD 2.2 supports SCSI changers using the If you're not using FreeBSD supports the SoundBlaster, SoundBlaster Pro, SoundBlaster
16, Pro Audio Spectrum 16, AdLib and Gravis UltraSound sound cards.
There is also limited support for MPU-401 and compatible MIDI cards.
Cards conforming to the Microsoft Sound System specification are also
supported through the pcm driver.
You generally need just one floppy image, the floppies/boot.flp file, which you image-copy onto a 1.44MB floppy and then boot from in order to download the rest (and the installation will manage your TCP/IP connection, deal with tapes, CDROMs, floppies, DOS partitions, whatever's necessary to get the rest of the bits installed).
If you need to download the distributions yourself (for a DOS
filesystem install, for instance), below are some recommendations
for distributions to grab:
Full instructions on this procedure and a little bit more about
installation issues in general can be found in the A 3.5 inch (1.44MB) floppy can accomodate 1474560 bytes of data.
The boot image is exactly 1474560 bytes in size.
Common mistakes when preparing the boot floppy are:
Some FTP clients default their transfer mode to ascii
and attempt to change any end-of-line characters received to match
the conventions used by the client's system.
This will almost invariably corrupt the boot image. Check the
size of the downloaded boot image: if it is not exactly
that on the server, then the download process is suspect.
To workaround: type binary at the FTP command prompt
after getting connected to the server and before starting the
download of the image.
Programs like copy will not work as the boot
image has been created to be booted into directly. The image has
the complete content of the floppy, track for track, and is not
meant to be placed on the floppy as a regular file.
You have to transfer it to the floppy ``raw'', using the
low-level tools (e.g. fdimage or rawrite)
described in the Installation instructions can be found in the
You'll need a 386 or better PC, with 5 MB or more of RAM and at
least 60 MB of hard disk space. It can run with a low end MDA
graphics card but to run X11R6, a VGA or better video card is needed.
See also the section on
FreeBSD 2.1.7 was the last version of FreeBSD that could be installed
on a 4MB system. Newer versions of FreeBSD, like 2.2, need at least 5MB
to install on a new system.
All versions of FreeBSD, including 3.0, will RUN in 4MB of ram, they
just can't run the installation program in 4MB. You can add
extra memory for the install process, if you like, and then
after the system is up and running, go back to 4MB. Or you could
always just swap your disk into a system which has >4MB, install onto
it and then swap it back.
There are also situations in which FreeBSD 2.1.7 will not install
in 4 MB. To be exact: it does not install with 640 kB base + 3 MB
extended memory. If your motherboard can remap some of the ``lost''
memory out of the 640kB to 1MB region, then you may still be able
to get FreeBSD 2.1.7 up.
Try to go into your BIOS setup and look for a ``remap'' option.
Enable it. You may also have to disable ROM shadowing.
It may be easier to get 4 more MB just for the install. Build a
custom kernel with only the options you need and then get the 4
MB out again.
You may also install 2.0.5 and then upgrade your system to 2.1.7
with the ``upgrade'' option of the 2.1.7 installation program.
After the installation, if you build a custom kernel, it will run
in 4 MB. Someone has even succeeded in booting with 2 MB (the
system was almost unusable though :-))
Currently there's no way to *just* make a custom install floppy.
You have to cut a whole new release, which will include your install
floppy. There's some code in /usr/src/release/floppies/Makefile
that's supposed to let you *just* make those floppies, but it's not
really gelled yet.
To make a custom release, follow the instructions .
Have a look at Install Windows 95 first, after that FreeBSD. FreeBSD's boot
manager will then manage to boot Win95 and FreeBSD. If you
install Windows 95 second, it will boorishly overwrite your
boot manager without even asking. If that happens, see
the next section.
You can reinstall the boot manager FreeBSD comes with in one of
two ways:
and the boot manager will be reinstalled.
FreeBSD's bad block (the If you have a SCSI drive with bad blocks, see .
If you're seeing things like the machine grinding to a halt or
spontaneously rebooting when you try to boot the install floppy,
here are three questions to ask yourself:-
There have also been reports of Netscape causing problems when
downloading the boot floppy, so it's probably best to use a different
FTP client if you can.
If you are installing 2.1.7R from tape, you must create the tape
using a tar blocksize of 10 (5120 bytes). The default tar
blocksize is 20 (10240 bytes), and tapes created using this
default size cannot be used to install 2.1.7R; with these tapes,
you will get an error that complains about the record size being
too big.
Get a laplink cable. Make sure both computer have a kernel
with lpt driver support.
Plug in the laplink cable into the parallel interface.
Configure the network interface parameters for lp0 on both
sites as root. For example, if you want connect the host max
with moritz
Thats all! Please read also the manpages
- You should also add the hosts to /etc/hosts
To check if it works do:
on max:
Connect the two computers using a Laplink parallel cable to use
this feature:
See also on the Mobile Computing page.
(By the "geometry" of a disk, we mean the number of cylinders,
heads and sectors/track on a disk - I'll refer to this as
C/H/S for convenience. This is how the PC's BIOS works out
which area on a disk to read/write from).
This seems to cause a lot of confusion for some reason. First
of all, the All that matters is the For SCSI disks, the geometry to use depends on whether extended
translation support is turned on in your controller (this is
often referred to as "support for DOS disks >1GB" or something
similar). If it's turned off, then use N cylinders, 64 heads
and 32 sectors/track, where 'N' is the capacity of the disk in
MB. For example, a 2GB disk should pretend to have 2048 cylinders,
64 heads and 32 sectors/track.
If it If you are not sure about this, or FreeBSD fails to detect the
geometry correctly during installation, the simplest way around
this is usually to create a small DOS partition on the disk. The
correct geometry should then be detected (and you can always remove
the DOS partition in the partition editor if you don't want to keep
it, or leave it around for programming network cards and the like).
Alternatively, there is a freely available utility distributed with
FreeBSD called ``tools
subdirectory on the FreeBSD CDROM or on the various FreeBSD
ftp sites) which can be used to work out what geometry the other
operating systems on the disk are using. You can then enter this
geometry in the partition editor.
Yes. You must make sure that your root partition is below 1024
cylinders so the BIOS can boot the kernel from it. (Note that this
is a limitation in the PC's BIOS, not FreeBSD).
For a SCSI drive, this will normally imply that the root partition
will be in the first 1024MB (or in the first 4096MB if extended
translation is turned on - see previous question). For IDE, the
corresponding figure is 504MB.
FreeBSD recognizes the Ontrack Disk Manager and makes allowances
for it. Other disk managers are not supported.
If you just want to use the disk with FreeBSD you don't need a
disk manager. Just configure the disk for as much space as the
BIOS can deal with (usually 504 megabytes), and FreeBSD
should figure out how much space you really have. If you're using
an old disk with an MFM controller, you may need to explicitly
tell FreeBSD how many cylinders to use.
If you want to use the disk with FreeBSD and another operating
system, you may be able to do without a disk manager: just make sure
the the FreeBSD boot partition and the slice for the other
operating system are in the first 1024 cylinders. If you're
reasonably careful, a 20 megabyte boot partition should be plenty.
This is classically a case of FreeBSD and DOS or some other OS
conflicting over their ideas of disk You will have to reinstall FreeBSD, but obeying the
instructions given above will almost always get you going.
This is another symptom of the problem described in the preceding
question. Your BIOS geometry and FreeBSD geometry settings do
not agree! If your controller or BIOS supports cylinder
translation (often marked as ``>1GB drive support''), try
toggling its setting and reinstalling FreeBSD.
Apart from performance issues, no. FreeBSD 2.X comes with bounce
buffers which allow your bus mastering controller access to greater
than 16MB. (Note that this should only be required if you are using
ISA devices, although one or two broken EISA and VLB devices may
need it as well).
Not at all! Check out the Let me guess. You removed You need to uncomment the following line in the generic config
file (or add it to your config file), add a `` line and recompile.
Next, you create a device called /dev/ft0 by going into
/dev and run the following command:
for the first device. You will have a device called /dev/ft0, which you can
write to through a special program to manage it called
``
+ url="http://www.FreeBSD.org/cgi/man.cgi?ft" name="ft">
for further details.
Versions previous to /usr/src/sbin/ft in
diff --git a/FAQ/misc.sgml b/FAQ/misc.sgml
index daf3745eff..be5de3b43b 100644
--- a/FAQ/misc.sgml
+++ b/FAQ/misc.sgml
@@ -1,428 +1,428 @@
-
+
FreeBSD only appears to use more swap than Linux. In actual fact,
it does not. The main difference between FreeBSD and Linux in this
regard is that FreeBSD will proactively move entirely idle, unused pages
of main memory into swap in order to make more main memory available
for active use. Linux tends to only move pages to swap as a last resort.
The perceived heavier use of swap is balanced by the more efficient use
of main memory.
Note that while FreeBSD is proactive in this regard, it does not
arbitrarily decide to swap pages when the system is truely idle. Thus
you will not find your system all paged out when you get up in the
morning after leaving it idle overnight.
To understand why FreeBSD uses the a.out format, you must
first know a little about the 3 currently "dominant" executable
formats for UNIX:
The oldest and `classic' unix object format. It uses a
short and compact header with a magic number at the beginning
that's often used to characterize the format (see
- The SVR3 object format. The header now comprises a section
table, so you can have more than just .text, .data, and .bss
sections. The successor to FreeBSD tries to work around this problem somewhat by
providing a utility for branding a known for more information.
FreeBSD comes from the "classic" camp and has traditionally used
- the Back in the dim, dark past, there was simple hardware. This
simple hardware supported a simple, small system. a.out was
completely adequate for the job of representing binaries on this
simple system (a PDP-11). As people ported unix from this
simple system, they retained the a.out format because it was
sufficient for the early ports of unix to architectures like the
Motorola 68k, VAXen, etc.
Then some bright hardware engineer decided that if he could
force software to do some sleazy tricks, then he'd be able to
shave a few gates off the design and allow his CPU core to run
faster. While it was made to work with this new kind of
hardware (known these days as RISC), In addition, program sizes were getting huge and disks (and
physical memory) were still relatively small so the concept of a
shared library was born. The VM system also became more
sophisticated. While each one of these advancements was done
using the However, as time passed, the build tools that FreeBSD derived
their build tools from (the assembler and loader especially)
evolved in two parallel trees. The FreeBSD tree added shared
libraries and fixed some bugs. The GNU folks that originally
write these programs rewrote them and added simpler support for
building cross compilers, plugging in different formats at will,
etc. Since many people wanted to build cross compilers
targeting FreeBSD, they were out of luck since the older sources
that FreeBSD had for as and ld weren't up to the task. The new
gnu tools chain (binutils) does support cross compiling,
You have to use either `` and
- With the trailing slash, You'd think it'd be easy enough to change If you're absolutely confident in your ability to find and fix
these sorts of problems for yourself when and if they pop up, you
can increase the login name length in earlier releases by editing
/usr/include/utmp.h and changing UT_NAMESIZE accordingly. You must
also update MAXLOGNAME in /usr/include/sys/param.h to match
the UT_NAMESIZE change. Finally, if you build from sources, don't
forget that /usr/include is updated each time! Change the appropriate
files in /usr/src/.. instead. Yes, starting with version 3.0 you can using BSDI's if you're interested in
joining this ongoing effort!
For pre-3.0 systems, there is a neat utility called
- SUP is not bandwidth friendly, and has been retired. The current
recommended method to keep your sources up to date is
Q. Has anyone done any temperature testing while running FreeBSD?
I know Linux runs cooler than dos, but have never seen a mention of
FreeBSD. It seems to run really hot.
A. No, but we have done numerous taste tests on blindfolded
volunteers who have also had 250 micrograms of LSD-25
administered beforehand. 35% of the volunteers said that FreeBSD
tasted sort of orange, whereas Linux tasted like purple haze.
Neither group mentioned any particular variances in temperature
that I can remember. We eventually had to throw the results of
this survey out entirely anyway when we found that too many
volunteers were wandering out of the room during the tests, thus
skewing the results. I think most of the volunteers are at Apple
now, working on their new ``scratch and sniff'' GUI. It's a
funny old business we're in!
Seriously, both FreeBSD and Linux use the ``
Q. Is there anything "odd" that FreeBSD does when compiling the
kernel which would cause the memory to make a scratchy sound? When
compiling (and for a brief moment after recognizing the floppy drive
upon startup, as well), a strange scratchy sound emanates from what
appears to be the memory banks.
A. Yes! You'll see frequent references to ``daemons'' in the BSD
documentation, and what most people don't know is that this
refers to genuine, non-corporeal entities that now possess your
computer. The scratchy sound coming from your memory is actually
high-pitched whispering exchanged among the daemons as they best
decide how to deal with various system administration tasks.
If the noise gets to you, a good ``fdisk /mbr'' from DOS
will get rid of them, but don't be surprised if they react
adversely and try to stop you. In fact, if at any point during
the exercise you hear the satanic voice of Bill Gates coming from
the built-in speaker, take off running and don't ever look back!
Freed from the counterbalancing influence of the BSD daemons, the
twin demons of DOS and Windows are often able to re-assert total
control over your machine to the eternal damnation of your soul.
Given a choice, I think I'd prefer to get used to the scratchy
noises, myself!
MFC is an acronym for 'Merged From -CURRENT.' It's used in the CVS
logs to denote when a change was migrated from the CURRENT to the STABLE
branches.
It stands for something in a secret language that only
members can know. It doesn't translate literally but its ok to
tell you that BSD's translation is something between, 'Formula-1
Racing Team', 'Penguins are tasty snacks', and 'We have a better
sense of humor than Linux.' :-)
Seriously, BSD is an acronym for 'Berkeley Software
Distribution', which is the name the Berkeley CSRG (Computer
Systems Research Group) chose for their Unix distribution way
back when.
One thousand, one hundred and seventy-two:
Twenty-three to complain to -current about the lights being
out;
Four to claim that it is a configuration problem, and that
such matters really belong on -questions;
Three to submit PRs about it, one of which is misfiled under
doc and consists only of "it's dark";
One to commit an untested lightbulb which breaks buildworld,
then back it out five minutes later;
Eight to flame the PR originators for not including patches
in their PRs;
Five to complain about buildworld being broken;
Thirty-one to answer that it works for them, and they must
have cvsupped at a bad time;
One to post a patch for a new lightbulb to -hackers;
One to complain that he had patches for this three years ago,
but when he sent them to -current they were just ignored, and he
has had bad experiences with the PR system; besides, the
proposed new lightbulb is non-reflexive;
Thirty-seven to scream that lightbulbs do not belong in the
base system, that committers have no right to do things like
this without consulting the Community, and WHAT IS -CORE DOING
ABOUT IT!?
Two hundred to complain about the color of the bicycle shed;
Three to point out that the patch breaks style(9);
Seventeen to complain that the proposed new lightbulb is
under GPL;
Five hundred and eighty-six to engage in a flame war about
the comparative advantages of the GPL, the BSD license, the MIT
license, the NPL, and the personal hygiene of unnamed FSF
founders;
Seven to move various portions of the thread to -chat and
-advocacy;
One to commit the suggested lightbulb, even though it shines
dimmer than the old one;
Two to back it out with a furious flame of a commit message,
arguing that FreeBSD is better off in the dark than with a dim
lightbulb;
Forty-six to argue vociferously about the backing out of the
dim lightbulb and demanding a statement from -core;
Eleven to request a smaller lightbulb so it will fit their
Tamagotchi if we ever decide to port FreeBSD to that platform;
Seventy-three to complain about the SNR on -hackers and -chat
and unsubscribe in protest;
Thirteen to post "unsubscribe", "How do I unsubscribe?", or
"Please remove me from the list", followed by the usual footer;
One to commit a working lightbulb while everybody is too busy
flaming everybody else to notice;
Thirty-one to point out that the new lightbulb would shine
0.364% brighter if compiled with TenDRA (although it will have
to be reshaped into a cube), and that FreeBSD should therefore
switch to TenDRA instead of EGCS;
One to complain that the new lightbulb lacks fairings;
Nine (including the PR originators) to ask "what is MFC?";
Fifty-seven to complain about the lights being out two weeks
after the bulb has been changed.
-
diff --git a/FAQ/network.sgml b/FAQ/network.sgml
index 2e4df37f50..dfa44f6ad7 100644
--- a/FAQ/network.sgml
+++ b/FAQ/network.sgml
@@ -1,1295 +1,1295 @@
-
+
Welcome to the FreeBSD 2.X FAQ!
As is usual with Usenet FAQs, this document aims to cover the most
frequently asked questions concerning the FreeBSD operating system
(and of course answer them!). Although originally intended to reduce
bandwidth and avoid the same old questions being asked over and over
again, FAQs have become recognized as valuable information resources.
Every effort has been made to make this FAQ as informative as
possible; if you have any suggestions as to how it may be improved,
- please feel free to mail them to the Briefly, FreeBSD 2.X is a UN*X-like operating system based on
U.C. Berkeley's 4.4BSD-lite release for the i386 platform. It is
also based indirectly on William Jolitz's port of U.C. Berkeley's
Net/2 to the i386, known as 386BSD, though very little of the 386BSD
code remains. A fuller description of what FreeBSD is and how
- it can work for you may be found on the FreeBSD is used by companies, Internet Service Providers, researchers,
computer professionals, students and home users all over the world
in their work, education and recreation. See some of them in the
For more detailed information on FreeBSD, please see the
The goals of the FreeBSD Project are to provide software that may
be used for any purpose and without strings attached. Many of us
have a significant investment in the code (and project) and would
certainly not mind a little financial compensation now and then,
but we're definitely not prepared to insist on it. We believe
that our first and foremost "mission" is to provide code to any
and all comers, and for whatever purpose, so that the code gets
the widest possible use and provides the widest possible benefit.
This is, we believe, one of the most fundamental goals of Free
Software and one that we enthusiastically support.
That code in our source tree which falls under the GNU General
Public License (GPL) or GNU Library General Public License (LGPL)
comes with slightly more strings attached, though at least on the
side of enforced access rather than the usual opposite. Due to the
additional complexities that can evolve in the commercial use of
GPL software, we do, however, endeavor to replace such software
with submissions under the more relaxed BSD copyright whenever
possible.
For those of our readers whose first language is not English, it
may be worth pointing out that the word ``free'' is being used in two
ways here, one meaning ``at no cost'', the other meaning ``you can do
whatever you like''. Apart from one or two things you
Version If you are not familiar with the operating system or are not
capable of identifying the difference between a real problem and
a temporary problem, you should not use FreeBSD-current. This
branch sometimes evolves quite quickly and can be un-buildable
for a number of days at a time. People that use FreeBSD-current
are expected to be able to analyze any problems and only report them
if they are deemed to be mistakes rather than ``glitches''. Questions
such as ``make world produces some error about groups'' on the
-current mailing list are sometimes treated with contempt.
Every now and again, a No claims are made that any snapshot can be considered
``production quality'' for any purpose. For stability
and tested mettle, you will have to stick to full releases.
Snapshot releases are directly available from Back when FreeBSD 2.0.5 was released, we decided to branch FreeBSD
development into two parts. One branch was named The -current branch is slowly progressing towards 4.0 and beyond,
the previous 2.2-stable branch having just retired with the release
of 2.2.8. 3.0-stable has now replaced it, the next release coming
up with 3.3 in Q3 1999. 4.0-current is now the "current branch",
with the first 4.0 releases appearing in Q1 2000.
As a general principle, the FreeBSD core team only release a new
version of FreeBSD when they believe that there are sufficient new
features and/or bug fixes to justify one, and are satisfied that the
changes made have settled down sufficiently to avoid compromising the
stability of the release. Many users regard this caution as one of
the best things about FreeBSD, although it can be a little
frustrating when waiting for all the latest goodies to become
available...
Releases are made about every 4 months on average.
For people needing (or wanting) a little more excitement, there are
SNAPs released more frequently, particularly during the month or so
leading up to a release.
FreeBSD 3.x currently runs on the The key decisions concerning the FreeBSD project, such as the
overall direction of the project and who is allowed to add code to
the source tree, are made by a However, most non-trivial changes are discussed in advance in the
, and there are no restrictions
on who may take part in the discussion.
Every significant release of FreeBSD is available via anonymous ftp
- from the FreeBSD is also available via CDROM, from the following place(s):
Walnut Creek CDROM In Australia, you may find it at:
Advanced Multimedia Distributors You can find full information in the You can find full information in the You can find full information in the Yes, most major IRC networks host a FreeBSD chat
channel:
Each of these channels are distinct and are not connected to
each other. Their chat styles also differ, so you may need to try
each to find one suited to your chat style. As with *all* types
of IRC traffic, if you're easily offended or can't deal with lots
of young people (and more than a few older ones) doing the verbal
equivalent of jello wrestling, don't even bother with it.
There is a FreeBSD Documentation Project which you may contact (or
even better, join) on the doc mailing list:
- A FreeBSD ``handbook'' is available, and can be found as:
The definitive printed guide on FreeBSD is ``The Complete FreeBSD'',
written by Greg Lehey and published by Walnut Creek CDROM Books. Now
in its second edition, the book contains 1,750 pages of install &
system administration guidance, program setup help, and manual pages.
The book (and current FreeBSD release) can be ordered from
However, as FreeBSD 2.2.X is based upon Berkeley 4.4BSD-Lite2, most
of the 4.4BSD manuals are applicable to FreeBSD 2.2.X. O'Reilly
and Associates publishes these manuals:
A description of these can be found via WWW as:
For a more in-depth look at the 4.4BSD kernel organization,
you can't go wrong with:
McKusick, Marshall Kirk, Keith Bostic, Michael J Karels,
and John Quarterman. The Design and Implementation of the 4.4BSD Operating
System. Reading, Mass. : Addison-Wesley, 1996. A good book on system administration is:
Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein, The Problem Report database of all open user change requests
may be queried (or submitted to) by using our web-based PR
- The up-to-date FAQ is available from the FreeBSD Web Server or any
mirror as PostScript and plain text (7 bit ASCII and 8-bit Latin1).
As PostScript (about 370KB):
As ASCII text (about 220KB):
As ISO 8859-1 text (about 220KB):
The up-to-date Handbook is available from the FreeBSD Web Server or any
mirror as PostScript and plain text (7 bit ASCII and 8-bit Latin1).
As PostScript (about 1.7MB):
As ASCII text (about 1080KB):
As ISO 8859-1 text (about 1080KB):
True, the ASCII and Latin1 versions of the FAQ and Handbook aren't
strictly plaintext; they contain underlines and overprints that
assume the output is going directly to a dot matrix printer. If you
need to reformat them to be human-readable, run the file through col:
Certainly! There are multiple ways to mirror the Web pages.
Well, we can't pay, but we might arrange a free CD or T-shirt and a
Contributor's Handbook entry if you submit a translation of the
documentation.
The following newsgroups contain pertinent discussion for FreeBSD
users:
Web resources:
The FreeBSD handbook also has a fairly complete
With SCSI drives, the drive should be capable of re-mapping
these automatically. However, many drives are shipped with
this feature disabled, for some mysterious reason...
To enable this, you'll need to edit the first device page mode,
which can be done on FreeBSD by giving the command (as root)
and changing the values of AWRE and ARRE from 0 to 1:-
The following paragraphs were submitted by
For IDE drives, any bad block is usually a sign of potential trouble.
All modern IDE drives come with internal bad-block remapping turned
on. All IDE hard drive manufacturers today offer extensive
warranties and will replace drives with bad blocks on them.
If you still want to attempt to rescue an IDE drive with bad blocks,
you can attempt to download the IDE drive manufacturer's IDE diagnostic
program, and run this against the drive. Sometimes these programs can
be set to force the drive electronics to rescan the drive for bad blocks
and lock them out.
For ESDI, RLL and MFM drives, bad blocks are a normal part of the
drive and are no sign of trouble, generally. With a PC, the disk drive
controller card and BIOS handle the task of locking out bad sectors.
This is fine for operating systems like DOS that use BIOS code to
access the disk. However, FreeBSD's disk driver does not go through
BIOS, therefore a mechanism, bad144, exists that replaces this
functionality. bad144 only works with the wd driver,
it is NOT able to be used with SCSI. bad144 works by entering all bad
sectors found into a special file.
One caveat with bad144 - the bad block special file is placed on the
last track of the disk. As this file may possibly contain a listing for
a bad sector that would occur near the beginning of the disk, where the
/kernel file might be located, it therefore must be accessible to the
bootstrap program that uses BIOS calls to read the kernel file. This
means that the disk with bad144 used on it must not exceed 1024
cylinders, 16 heads, and 63 sectors. This places an effective limit
of 500MB on a disk that is mapped with bad144.
To use bad144, simply set the "Bad Block" scanning to ON in the
FreeBSD fdisk screen during the initial install. This works up through
FreeBSD 2.2.7. The disk must have less than 1024 cylinders. It is
generally recommended that the disk drive has been in operation for at
least 4 hours prior to this to allow for thermal expansion and track
wandering.
If the disk has more than 1024 cylinders (such as a large ESDI drive)
the ESDI controller uses a special translation mode to make it work
under DOS. The wd driver understands about these translation modes,
IF you enter the "translated" geometry with the "set geometry" command
in fdisk. You must also NOT use the "dangerously dedicated" mode of
creating the FreeBSD partition, as this ignores the geometry. Also,
even though fdisk will use your overridden geometry, it still knows the
true size of the disk, and will attempt to create a too large FreeBSD
partition. If the disk geometry is changed to the translated geometry,
the partition MUST be manually created with the number of blocks.
A quick trick to use is to set up the large ESDI disk with the ESDI
controller, boot it with a DOS disk and format it with a DOS partition.
Then, boot the FreeBSD install and in the fdisk screen, read off and
write down the blocksize and block numbers for the DOS partition. Then,
reset the geometry to the same that DOS uses, delete the DOS partition,
and create a "cooperative" FreeBSD partition using the blocksize you
recorded earlier. Then, set the partition bootable and turn on bad
block scanning. During the actual install, bad144 will run first,
before any filesystems are created. (you can view this with an Alt-F2)
If it has any trouble creating the badsector file, you have set too
large a disk geometry - reboot the system and start all over again
(including repartitioning and reformatting with DOS).
If remapping is enabled and you are seeing bad blocks, consider
replacing the drive. The bad blocks will only get worse as time goes on.
This info is specific to the 742a but may also cover other
Buslogic cards. (Bustek = Buslogic)
There are 2 general ``versions'' of the 742a card. They are
hardware revisions A-G, and revisions H - onwards. The revision
letter is located after the Assembly number on the edge of the
card. The 742a has 2 ROM chips on it, one is the BIOS chip and
the other is the Firmware chip. FreeBSD doesn't care what
version of BIOS chip you have but it does care about what version
of firmware chip. Buslogic will send upgrade ROMS out if you
call their tech support dept. The BIOS and Firmware chips are
shipped as a matched pair. You must have the most current
Firmware ROM in your adapter card for your hardware revision.
The REV A-G cards can only accept BIOS/Firmware sets up to
2.41/2.21. The REV H- up cards can accept the most current
BIOS/Firmware sets of 4.70/3.37. The difference between the
firmware sets is that the 3.37 firmware supports ``round robin''
The Buslogic cards also have a serial number on them. If you
have a old hardware revision card you can call the Buslogic RMA
department and give them the serial number and attempt to
exchange the card for a newer hardware revision. If the card is
young enough they will do so.
FreeBSD 2.1 only supports Firmware revisions 2.21 onward. If you
have a Firmware revision older than this your card will not be
recognized as a Buslogic card. It may be recognized as an
Adaptec 1540, however. The early Buslogic firmware contains an
AHA1540 ``emulation'' mode. This is not a good thing for an EISA
card, however.
If you have an old hardware revision card and you obtain the 2.21
firmware for it, you will need to check the position of jumper W1
to B-C, the default is A-B.
The easiest way is to simply specify that you want to run X
during the installation process.
Then read and follow the documentation on the You may also wish to investigate the Xaccel server.
See the section on or
for more details.
If you are using syscons (the default console driver), you can
configure FreeBSD to support a mouse pointer on each virtual
screen. In order to avoid conflicting with X, syscons supports
a virtual device called ``/dev/sysmouse''. All mouse events
received from the real mouse device are written to the sysmouse
device, using the MouseSystems protocol. If you wish to use your
mouse on one or more virtual consoles, Some people prefer to use ``/dev/mouse'' under X. To
make this work, ``/dev/mouse'' should be linked to
- Try turning off the Num Lock key.
If your Num Lock key is on by default at boot-time, you may add
the following line in the ``
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
Virtual consoles, put simply, enable you to have several
simultaneous sessions on the same machine without doing anything
complicated like setting up a network or running X.
When the system starts, it will display a login prompt on
the monitor after displaying all the boot messages. You can
then type in your login name and password and start working (or
playing!) on the first virtual console.
At some point, you will probably wish to start another
session, perhaps to look at documentation for a program
you are running or to read your mail while waiting for an
FTP transfer to finish. Just do Alt-F2 (hold down the Alt
key and press the F2 key), and you will find a login prompt
waiting for you on the second ``virtual console''! When you
want to go back to the original session, do Alt-F1.
The default FreeBSD installation has three virtual consoles
enabled, and Alt-F1, Alt-F2, and Alt-F3 will switch between
these virtual consoles.
To enable more of them, edit Use as many or as few as you want. The more virtual terminals
you have, the more resources that are used; this can be important
if you have 8MB RAM or less. You may also want to change the
`` to:
If your keyboard has only ten function keys, you would end up with:
(You could also just delete these lines.)
Once you have edited Next, the easiest (and cleanest) way to activate the virtual
consoles is to reboot. However, if you really don't want to
reboot, you can just shut down the X Window system and execute (as
kill -HUP 1
It's imperative that you completely shut down X Window if it is
running, before running this command. If you don't, your system
will probably appear to hang/lock up after executing the kill
command.
If the console is currently displaying X Window, you can use
Ctrl-Alt-F1, etc. to switch to a virtual console. Note, however,
that once you've switched away from X Window to a virtual
terminal, you may use only the Alt- function key to switch to another
virtual terminal or back to X Window. You do not need to also press the
Ctrl key. If you use the control key to switch back to X on some
older releases, you can find your text console stuck in ``control-lock''
mode. Tap the control key to wake it up again.
There are two schools of thought on how to start The ttys method has the advantage
of documenting which vty X will start on and passing the responsibility
of restarting the X server on logout to init. The rc.local method
makes it easy to kill xdm if there is a problem starting the X server.
If loaded from rc.local, A previous version of the FAQ said to add the
/usr/X11R6/lib/X11/xdm/Xservers file. This is not necessary:
X will use the first free
If you start This is because of the way console permissions are set by default.
On a multi-user system, one doesn't necessarily want just any user
to be able to write on the system console. For users who are logging
directly onto a machine with a VTY, the
- In a nutshell, make sure an uncommented line of the form
is in Your mouse and the mouse driver may have somewhat become out of
synchronization.
In versions 2.2.5 and earlier, switching away from X to a
virtual terminal and getting back to X again may make them
re-synchronized. If the problem occurs often, you may add the
following option in your kernel configuration file and recompile it.