Welcome to the FreeBSD 2.X FAQ ! This document tries to answer
some of the most frequently asked questions about FreeBSD 2.X (or
later, unless specifically indicated). If there's something you're
having trouble with and you just don't see it here, then please
send mail to:
FreeBSD 2.X is a UN*X type 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, 386BSD. There have been many additions and
bug fixes made throughout the entire system, some of the
highlights of which are:
You'll need a 386 or better PC, with 4 Mo or more of RAM and at
least 60 MB of hard disk space. It can run with a low end MDA
card but to run X11R6, a VGA or better video card is needed.
See the section on
The distribution is available via anonymous ftp from:
The following mailing lists are provided for FreeBSD users and
developers. For more information, send to
<majordomo@FreeBSD.ORG> and include a single line saying
``help'' in the body of your message.
The FreeBSD-commit list has been broken up into groups dealing
with different areas of interest. Please see the FreeBSD mailing
list FAQ in:
Example:
To subscribe to the
subscribe questions john.smith@foo.bar (John Smith)
To unsubscribe, it is as easy. Just remember to send your request
to
There are two newsgroups currently dedicated to FreeBSD:
There currently aren't any books written specifically for
FreeBSD, although some people are supposedly working on some.
The FreeBSD Documentation Project exists, you may contact (or
better join them) on the doc mailing list:
One good source of additional information is the
``[comp.unix.bsd] NetBSD, FreeBSD, and 386BSD (0.1)
FAQ''. Much of the information is relevant to FreeBSD, and this
FAQ is posted around twice a month to the following newsgroups:
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 renumeration 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, I believe, one of the most fundamental goals of Free
Software and one that we enthusiastically support.
- Our GNU code does make for some strings, which we dislike and
- endevour to replace whenver possible, but at least those strings
- are in the direction of greater, rather than lesser, "openness"
- in how the code is shared and distributed and so is a string we
- can reasonably live with.
+ That code in our source tree which falls under the GNU Public License
+ (GPL) or GNU Library Public License (GLPL) 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, endevor to replace such software with submissions
+ under the more relaxed BSD copyright whenever possible.
If your machine is already running DOS and has little or no free
space available for FreeBSD's installation, all is not lost! You
may find the ``tools/ subdirectory on the FreeBSD CDROM or on the
various FreeBSD ftp sites, to be quite useful.
FIPS allows you to split an existing DOS partition into two
pieces, preserving the original partition and allowing you to
install onto the second free piece. You first ``defrag'' your
DOS partition, using the DOS 6.xx
No. If you are using a utility such as Stacker(tm) or
DoubleSpace(tm), FreeBSD will only be able to use whatever
portion of the filesystem you leave uncompressed. The rest of
the filesystem will show up as one large file (the
stacked/dblspaced file!).
This feature isn't in FreeBSD 2.1 but should be in 2.2. We've
laid all the groundwork for making this happen, now we just need
to do the last 1% of the work involved.
Not yet! We'd like to add support for this someday, but are
still lacking anyone to actually do the work. Ongoing work with
Linux's
if you're interested in joining this effort!
However, there is a neat utility called ``
If you are installing 2.1.0R 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.0R; with these tapes,
you will get an error that complains about the record size being
too big.
This depends. If you don't have DOS (or another operating
system) on the system, you can just keep the drive in native mode
and simply make sure that your root partition is below 1024 so
the BIOS can boot the kernel from it. It you also have DOS/some
other OS on the drive then your best bet is to find out what
parameters that it thinks you have before installing FreeBSD.
When FreeBSD's installation procedure prompts you for these
values, you should then enter them rather than simply going with
the defaults.
There is a freely available utility distributed with FreeBSD
called ``tools/dos-tools
subdirectory) which can be used for this purpose.
See question above. This is classically a case of FreeBSD and
DOS or some other OS conflicting over their ideas of disk
geometry. 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.
I have made an entry in /etc/disktab, but
when I try to label the drive the following happens:
FreeBSD's bad block (the ``
No. FreeBSD 2.X comes with bounce buffers which allows your bus
mastering controller access to greater than 16MB.
This is usually caused by an interrupt conflict (e.g., two boards
using the same IRQ). FreeBSD prior to 2.0.5R used to be tolerant
of this, and the network driver would still function in the
presence of IRQ conflicts. However, with 2.0.5R and later, IRQ
conflicts are no longer tolerated.
In general, no. However, we would strongly recommend that you
install, at a minimum, the ``/usr/src directly, but rather in some other location
with appropriate symbolic links to duplicate the top-level
structure of the source tree.)
Having the sources on-line and knowing how to build a system with
them will make it much easier for you to upgrade to future
releases of FreeBSD.
If it is not absolutely imperative that you use DES style
encryption, you can use FreeBSD's default encryption for even
FreeBSD supports ST-506 (sometimes called ``MFM''), RLL, and ESDI
drives, which are usually connected to WD-1002, WD-1003, or
WD-1006/7 controllers (although clones should also work).
FreeBSD also supports IDE and SCSI hard drives.
FreeBSD supports the following SCSI controllers:
Any SCSI drive connected to a supported controller.
FreeBSD supports the AHA-2xxx line of disks. The GPL portions
of the old drivers have been re-written and now it is fully
under the Berkeley style copyright.
FreeBSD supports the Logitech and ATI Inport bus mice. You need
to add the following line to the kernel config file and recompile
for the Logitech and ATI mice:
You'll have to add the following lines to your kernel
configuration file and recompile:
FreeBSD supports SCSI, QIC-02 and QIC-40/80 (Floppy based) tape
drives. This includes 8-mm (aka Exabyte) and DAT drives.
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. The SoundBlaster 16 ASP cards are not yet
supported. The Microsoft Sound System is also supported.
There is support for the following cards:
Generally no, but there are circumstances where you will take a
hit, either in performance or accuracy of the math emulation code
(see the section ). In
particular, drawing arcs in X will be VERY slow. It is highly
recommended that you buy a math co-processor; it's well worth it.
Here is a listing of drivers that do not fit into any of the
above areas.
Yes. Please look at the file Systems.FAQ. This file is
a listing of hardware that people are running in their machines.
Please note, this is a raw listing of equipment that other users
have sent in, and does not constitute any kind of endorsement by
the FreeBSD Project.
Yes it can on certain machines. Please look in the
Contact the following company:
Lasermoon Ltd
Yes, X Inside Incorporated sells their Accelerated-X product for
FreeBSD and other Intel based systems.
This high performance X Server offers easy configuration, support
for multiple concurrent video boards and is distributed in binary
form only.
Price is $99.50 (promotional price for Linux/FreeBSD
version) for the 1.1 version, which is available now.
This product is for FreeBSD 1.1 and runs under 2.0 with the
FreeBSD 1.1 compatibility libs (``
Yes! Conetic Software Systems has ported their C/base and C/books
datebase systems to FreeBSD 2.0.5 and higher.
RenderMorphics, Ltd. sells a high-speed 3D rendering package for
FreeBSD called ``Reality Lab'' (tm).
Send email to
First, get the XFree86(tm) distribution of X11R6 from
for more details.
You will need to add the alternate math emulator to your kernel,
you do this by adding the following to your kernel config file
and it will be compiled in.
Yes. We support the concept of a ``package'', which is
essentially a gzipped binary distribution with a little extra
intelligence embedded in it for doing any custom installation
work required. Packages can also be installed or deinstalled
again easily without having to know the gory details. CDROM
people will have a packages/ directory on their CD,
others can get the currently available packages from:
You have to use either ``/''). For example, if ``
chmod 555 foo/
With the trailing slash,
You have to tell /dev/cd0c'', under /mnt, you would execute:
This generally means that there is no CDROM in the CDROM drive.
Feed the drive something.
This can be caused by bad hardware (memory, motherboard, etc.).
Try running a memory-testing program on your PC. Note that, even
though every memory testing program you try will report your
memory as being fine, it's possible for slightly marginal memory
to pass all memory tests, yet fail under operating conditions
(such as during busmastering DMA from a SCSI controller like the
Adaptec 1542).
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
If the console is not currently displaying X Window, just press
Alt-F1 to Alt-F12.
Edit /etc/ttys and add entries for ``
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
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
``
ttyvb "/usr/libexec/getty Pc" cons25 on secure
to:
Read this:
SUP stands for Software Update Protocol, and was developed by CMU
for keeping their development trees in sync. We use it to keep
remote sites in sync with our central development sources.
Unless you have direct internet connectivity, and don't care too
much about the cost/duration of the sessions, you shouldn't use
sup. For those ``low/expensive-bandwidth'' applications, we have
developed
for more about that.
To use it, you need to have direct internet connectivity (not
just mail or news). First, pick up the
Second, read the
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!
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!
/usr/src/share/examples/sup/*-supfile, or you may grab
updated supfiles from:
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.
If you define 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 use the
for more information.
Newer BSD based systems have a ``/usr/src/Makefile.
Please take a look at the FAQ for submiting code to FreeBSD at:
Before you can compile a kernel, you need either the complete
The problem here is that FreeBSD has code built-in to keep the
kernel from getting trashed due t hardware or software
conflicts. The way to fix this is to leave out the IRQ settings
on other ports besides the first. Here is a example:
You need to uncomment the following line in the generic config
file (or add it to your config file), add a ``
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
disk fd0 at fdc0 drive 0 ^^^^^^^^^
disk fd1 at fdc0 drive 1
#tape ft0 at fdc0 drive 2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Next, you create a device called /dev/ft0 by going into
/dev and run the following command:
Yes, FreeBSD supports System V-style IPC. This includes shared
memory, messages and semaphores. You need to add the following
lines to your kernel config to enable them.
Several different groups have expressed interest in working on
multi-architecture support for FreeBSD. If you are interested in
doing so, please contact the developers at
<platforms@FreeBSD.ORG> for more information on our
strategy for porting.
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 MAKEDEV code to create any special files
your device uses. If you do not, or are unable to because of
licensing restrictions, then character major number 32 and block
major number 8 have been reserved specifically for this purpose;
please use them. In any case, we'd appreciate hearing about your
driver on <hackers@FreeBSD.ORG>.
As for 2.0.5R, the primary configuration file is
/etc/sysconfig. All the options are to be specified in
this one and the other one (/etc/rc and
/etc/netstart) just include it.
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.
The /etc/rc.local is here as always and is the place to
put additional services like /etc/rc.serial is for serial port initialization
(e.g. locking the port characterictics, and so on.).
The /etc/rc.i386 is for Intel-specifics setting like the
iBCS2 emulation.
Starting with 2.1.0R, you can have "local" startup files in a
directory specified in /etc/sysconfig:
Use the <roberto@FreeBSD.ORG> about it. It is currently
under further development.
Please have a look at the section of the Handbook on printing. It
should cover most of your problem. See
The kbdcontrol program has an option to load a keyboard map file.
Under /usr/share/syscons/keymaps are a number of map
files. Choose the one relevant to your system and load it.
The logic that attempts to detect an out of data
/var/db/kvm_*.db files sometimes fails and using a
mismatched file can sometimes lead to panics.
If this happens, reboot single-user and do:
Please read the diskless section in the Handbook. It is in
/usr/share/doc/handbook or use the following WWW link:
Internet standards and good engineering practice prohibit us from
providing packet forwarding by default in FreeBSD. You can
however enable this feature by changing the following variable to
/etc/sysconfig:
Yes. See the man pages for /usr/share/doc/handbook or use the following
link:
In the Berkeley networking framework, network interfaces are only
directly accessible by kernel code. Please see the
/etc/netstart file and the manual pages for the various
network programs mentioned there for more information. If this
leaves you totally confused, then you should pick up a book
describing network administration on another BSD-related
operating system; with few significant exceptions, administering
networking on FreeBSD is basically the same as on SunOS 4.0 or
Ultrix.
Add ``
ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff
If you want to use the other ports, you'll have to specify an
additional parameter on the
Certain PC network cards are better than others (to put it
mildly) and can sometimes cause problems with network intensive
applications like NFS.
See
Some versions of the Linux NFS code only accept mount requests
from a priviledged port; try
Sun workstations running SunOS 4.X only accept mount requests
from a priviledged port; try
Try disabling the TCP extentions in /etc/sysconfig by
changing the following variable to NO:
Multicast host operations are fully supported in FreeBSD 2.0 by
default. If you want your box to run as a multicast router, you
will need to load the
Product Description Where
--------------- ----------------------- ---------------------------------------
faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt
imm/immserv IMage Multicast ftp.hawaii.edu:/paccom/imm.src.tar.Z
for jpg/gif images.
nv Network Video. ftp.parc.xerox.com:
/pub/net-reseach/exp/nv3.3alpha.tar.Z
vat LBL Visual Audio Tool. ftp.ee.lbl.gov:
/conferencing/vat/i386-vat.tar.Z
wb LBL White Board. ftp.ee.lbl.gov:
/conferencing/wb/i386-wb.tar.Z
mmcc MultiMedia Conference ftp.isi.edu:
Control program /confctrl/mmcc/mmcc-intel.tar.Z
rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c
quality of RTP packets.
vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z
and nv.
This section answers common questions about serial communications
with FreeBSD.
As the FreeBSD kernel boots, it will probe for the serial ports
in your system for which the kernel was configured. You can
either watch your system closely for the messages it prints or
run the command
Don't worry, they have been merged with the
The third serial port, /dev/cuaa2 for dial-out devices, and on
/dev/ttyd2 for dial-in devices. What's the difference
between these two classes of devices?
You use /dev/ttydX in blocking mode, a process will wait for the
corresponding
Again, the section on kernel configuration provides information
about configuring your kernel. For a multiport serial card,
place an
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
The flags indicate that the master port has minor number 7
(
Not yet. You'll have to use a different irq for each card.
The
stty -a -f /dev/ttyd1
When you change the settings to this device, the settings are in
effect until the device is closed. When it's reopened, it goes
back to the default set. To make changes to the default set, you
can open and adjust the settings of the ``initial state'' device.
For example, to turn on XON/XOFF flow control by default for ttyd5, do:
So you want to become an Internet service provider, eh? First,
you'll need one or more modems that can autoanswer. Your modem
will need to assert carrier-detect when it detects a carrier and
not assert it all the time. It will need to hang up the phone
and reset itself when the data terminal ready (RTS/CTS
flow control or no local flow control at all. Finally, it must
use a constant speed between the computer and itself, but (to be
nice to your callers) it should negotiate a speed between itself
and the remote modem.
For many Hayes command-set--compatible modems, this command will
make these settings and store them in nonvolatile memory:
If you're using another computer as a terminal into your FreeBSD
system, get a null modem cable to go between the two serial
ports. If you're using an actual terminal, see its accompanying
instructions.
Then, modify /etc/ttys, like above. For example, if
you're hooking up a WYSE-50 terminal to the fifth serial port,
use an entry like this:
On your system, the programs
chmod 4511 /usr/bin/tip
You don't have to run this command for
Actually, the man page for /etc/remote file.
The Hayes driver isn't smart enough to recognize some of the
advanced features of newer modems---messages like /usr/src/usr.bin/tip/tip Obviously you need the source
distribution to do this.
Edit the line ``
Make what's called a ``/etc/remote file. For example, if your modem's hooked
up to the first serial port, /dev/cuaa0, then put in the
following line:
Or use cu as root with the following command:
The /etc/phones for a phone number. But the /etc/remote. Escape it with a backslash:
Put what's called a ``/etc/remote file. For example:
Put in an entry for
Yes. Use the /etc/remote:
Sure. Make an entry for your university in /etc/remote
and use \@ for the
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
Then, list the phone numbers for the university in
/etc/phones:
CTRL+P is the default ``force'' character, used to tell $HOME/.tiprc
file:
You must've pressed CTRL+A,
force=^^
raisechar=^^
The ^^ is SHIFT+CTRL+6.
If you're talking to another UNIX system, you can send and
receive files with
~p
To receive files, start the sending program on the remote end.
Then, type ``
If you see a problem with this FAQ, or wish to submit an entry,
please mail us at