Frequently Asked Questions for FreeBSD 4.X, 5.X, and 6.X

The FreeBSD Documentation Project

This is the FAQ for FreeBSD versions 4.X, 5.X, and 6.X. All entries are assumed to be relevant to FreeBSD 4.0 and later, unless otherwise noted. If you are interested in helping with this project, send email to the FreeBSD documentation project mailing list. The latest version of this document is always available from the FreeBSD World Wide Web server. It may also be downloaded as one large HTML file with HTTP or as plain text, PostScript®, PDF, etc. from the FreeBSD FTP server. You may also want to Search the FAQ.

Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Important: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

FreeBSD is a registered trademark of the FreeBSD Foundation.

3Com and HomeConnect are registered trademarks of 3Com Corporation.

Adobe, Acrobat, Acrobat Reader, and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Sound Blaster is a trademark of Creative Technology Ltd. in the United States and/or other countries.

CVSup is a registered trademark of John D. Polstra.

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both.

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Iomega, Zip, and Jaz are either registered trademarks or trademarks of Iomega Corporation in the United States and/or other countries.

Linux is a registered trademark of Linus Torvalds.

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

MIPS and R4000 are registered trademarks of MIPS Technologies, Inc. in the United States and other countries.

Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries.

Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries.

Oracle is a registered trademark of Oracle Corporation.

Silicon Graphics, SGI, and OpenGL are registered trademarks of Silicon Graphics, Inc., in the United States and/or other countries worldwide.

Sparc, Sparc64, SPARCEngine, and UltraSPARC are trademarks of SPARC International, Inc in the United States and other countries. Products bearing SPARC trademarks are based upon architecture developed by Sun Microsystems, Inc.

Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, and Ultra are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

U.S. Robotics and Sportster are registered trademarks of U.S. Robotics Corporation.

XFree86 is a trademark of The XFree86 Project, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.


Table of Contents
1 Introduction
2 Documentation and Support
3 Installation
4 Hardware compatibility
4.1 General
4.2 Architectures and processors
4.3 Hard drives, tape drives, and CD and DVD drives
4.4 Keyboards and mice
4.5 Networking and serial devices
4.6 Sound devices
4.7 Other hardware
5 Troubleshooting
6 Commercial Applications
7 User Applications
8 Kernel Configuration
9 Disks, Filesystems, and Boot Loaders
10 System Administration
11 The X Window System and Virtual Consoles
12 Networking
13 Security
14 PPP
15 Serial Communications
16 Miscellaneous Questions
17 The FreeBSD Funnies
18 Advanced Topics
19 Acknowledgments
Bibliography
List of Tables
3-1. Maximum file sizes
12-1. Network cards based on the DEC PCI chipset
List of Examples
11-1. “InputDevice” Section for Wheeled Mouse in XFree86™ and Xorg configuration file
11-2. “.emacs” example for naive page scrolling with Wheeled Mouse (optional)

Chapter 1 Introduction

Welcome to the FreeBSD 4.X-6.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 FreeBSD documentation project mailing list.

1.1. What is FreeBSD?
1.2. What is the goal of the FreeBSD Project?
1.3. Does the FreeBSD license have any restrictions?
1.4. Can FreeBSD replace my current operating system?
1.5. Why is it called FreeBSD?
1.6. What are the differences between FreeBSD and NetBSD, OpenBSD, and other open source BSD operating systems?
1.7. What is the latest version of FreeBSD?
1.8. What is FreeBSD-CURRENT?
1.9. What is the FreeBSD-STABLE concept?
1.10. When are FreeBSD releases made?
1.11. Who is responsible for FreeBSD?
1.12. Where can I get FreeBSD?
1.13. How do I access the Problem Report database?
1.14. What other sources of information are there?

1.1. What is FreeBSD?

Briefly, FreeBSD is a UNIX® like operating system for the Alpha/AXP, AMD64 and Intel® EM64T, i386™ IA-64, PC-98, and UltraSPARC® platforms based on U.C. Berkeley's “4.4BSD-Lite” release, with some “4.4BSD-Lite2” enhancements. 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 home page.

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.

For more detailed information on FreeBSD, please see the FreeBSD Handbook.

1.2. What is the goal of the FreeBSD Project?

The goal of the FreeBSD Project is 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 definitely do not 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 FreeBSD license whenever possible.

1.3. Does the FreeBSD license have any restrictions?

Yes. Those restrictions do not control how you use the code, merely how you treat the FreeBSD Project itself. If you have serious license concerns, read the actual license. For the simply curious, the license can be summarized like this.

  • Do not claim that you wrote this.

  • Do not sue us if it breaks.

1.4. Can FreeBSD replace my current operating system?

For most people, yes. But this question is not quite that cut-and-dried.

Most people do not actually use an operating system. They use applications. The applications are what really use the operating system. FreeBSD is designed to provide a robust and full-featured environment for applications. It supports a wide variety of web browsers, office suites, email readers, graphics programs, programming environments, network servers, and just about everything else you might want. Most of these applications can be managed through the Ports Collection.

If you need to use an application that is only available on one operating system, you simply cannot replace that operating system. Chances are there is a very similar application on FreeBSD, however. If you want a solid office or Internet server, a reliable workstation, or just the ability to do your job without interruptions, FreeBSD will almost certainly do everything you need. Many computer users across the world, including both novices and experienced UNIX administrators, use FreeBSD as their only desktop operating system.

If you are migrating to FreeBSD from some other UNIX environment, you already know most of what you need to. If your background is in graphic-driven operating systems such as Windows® and older versions of Mac OS®, expect to invest additional time learning the UNIX way of doing things. This FAQ and the FreeBSD Handbook are excellent places to start.

1.5. Why is it called FreeBSD?

  • It may be used free of charge, even by commercial users.

  • Full source for the operating system is freely available, and the minimum possible restrictions have been placed upon its use, distribution and incorporation into other work (commercial or non-commercial).

  • Anyone who has an improvement or bug fix is free to submit their code and have it added to the source tree (subject to one or two obvious provisions).

  • It is 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 cannot do with the FreeBSD code, for example pretending you wrote it, you can really do whatever you like with it.

1.6. What are the differences between FreeBSD and NetBSD, OpenBSD, and other open source BSD operating systems?

James Howard wrote a good explanation of the history and differences between the various projects for DaemonNews, called The BSD Family Tree which goes a fair way to answering this question.

1.7. What is the latest version of FreeBSD?

At this point in FreeBSD's development, there are three parallel development branches; releases are being made from two of the three branches. The 5.X series of releases is being made from the 5-STABLE branch and the 6.X series of releases from 6-STABLE.

Up until the release of 5.3, the 4.X series was the one known as -STABLE. However, as of 5.3, the 4.X branch will be designated for an “extended support” status and receive only fixes for major problems, such as security-related fixes. There will be more releases made from the 5-STABLE branch, but it is considered a “legacy” branch and most current work will only become a part of 6-STABLE.

Version 6.2 is the latest release from the 6-STABLE branch; it was released in Jan 2007. Version 5.5 is the latest release from the 5-STABLE branch; it was released in May 2006.

Briefly, -STABLE is aimed at the ISP, corporate user, or any user who wants stability and a minimal number of changes compared to the new (and possibly unstable) features of the latest -CURRENT snapshot. Releases can come from either branch, but -CURRENT should only be used if you are prepared for its increased volatility (relative to -STABLE, that is).

Releases are made every few months. While many people stay more up-to-date with the FreeBSD sources (see the questions on FreeBSD-CURRENT and FreeBSD-STABLE) than that, doing so is more of a commitment, as the sources are a moving target.

More information on FreeBSD releases can be found on the Release Engineering page on the FreeBSD Web site.

1.8. What is FreeBSD-CURRENT?

FreeBSD-CURRENT is the development version of the operating system, which will in due course become the new FreeBSD-STABLE branch. As such, it is really only of interest to developers working on the system and die-hard hobbyists. See the relevant section in the handbook for details on running -CURRENT.

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 may be treated with contempt.

Every day, snapshot releases are made based on the current state of the -CURRENT and -STABLE branches. Distributions of the occasional snapshot are made available. The goals behind each snapshot release are:

  • To test the latest version of the installation software.

  • To give people who would like to run -CURRENT or -STABLE but who do not have the time or bandwidth to follow it on a day-to-day basis an easy way of bootstrapping it onto their systems.

  • To preserve a fixed reference point for the code in question, just in case we break something really badly later. (Although CVS normally prevents anything horrible like this happening :)

  • To ensure that all new features and fixes in need of testing have the greatest possible number of potential testers.

No claims are made that any -CURRENT snapshot can be considered “production quality” for any purpose. If you want to run a stable and fully tested system, you will have to stick to full releases, or use the -STABLE snapshots.

Snapshot releases are directly available from ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/.

Snapshots are generated, on the average, daily for all actively developed branches.

1.9. What is the FreeBSD-STABLE concept?

Back when FreeBSD 2.0.5 was released, FreeBSD development branched in two. One branch was named -STABLE, one -CURRENT. FreeBSD-STABLE is intended for Internet Service Providers and other commercial enterprises for whom sudden shifts or experimental features are quite undesirable. It receives only well-tested bug fixes and other small incremental enhancements. FreeBSD-CURRENT, on the other hand, has been one unbroken line since 2.0 was released, leading towards 6.0-RELEASE and beyond. Just before 6.0-RELEASE, the 6-STABLE branch was created, and FreeBSD-CURRENT became 7-CURRENT. For more detailed information, see “ FreeBSD Release Engineering: Creating the Release Branch”.

The 2.2-STABLE branch was retired with the release of 2.2.8. The 3-STABLE branch has ended with the release of 3.5.1, the final 3.X release. The only changes made to either of these branches will be, for the most part, security-related bug fixes. Support for the 4-STABLE and 5-STABLE branches will continue for some time but focus primarily on security-related bug fixes and other serious issues.

6.2-STABLE is the actively developed -STABLE branch. The latest release on the 6.2-STABLE branch is 6.2-RELEASE, which was released in Jan 2007.

The 7-CURRENT branch is the actively developed -CURRENT branch toward the next generation of FreeBSD. See What is FreeBSD-CURRENT? for more information on this branch.

1.10. When are FreeBSD releases made?

The Release Engineering Team releases a new version of FreeBSD about every four months, on average. Release dates are announced well in advance, so that the people working on the system know when their projects need to be finished and tested. A testing period precedes each release, in order to ensure that the addition of new features does not compromise the stability of the release. Many users regard this caution as one of the best things about FreeBSD, even though waiting for all the latest goodies to reach -STABLE can be a little frustrating.

More information on the release engineering process (including a schedule of upcoming releases) can be found on the release engineering pages on the FreeBSD Web site.

For people who need or want a little more excitement, binary snapshots are made daily as discussed above.

1.11. Who is responsible for FreeBSD?

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 core team of 9 people. There is a much larger team of more than 300 committers who are authorized to make changes directly to the FreeBSD source tree.

However, most non-trivial changes are discussed in advance in the mailing lists, and there are no restrictions on who may take part in the discussion.

1.12. Where can I get FreeBSD?

Every significant release of FreeBSD is available via anonymous FTP from the FreeBSD FTP site:

Information about obtaining FreeBSD on CD, DVD, and other media can be found in the Handbook.

1.13. How do I access the Problem Report database?

The Problem Report database of all user change requests may be queried by using our web-based PR query interface.

The send-pr(1) command can be used to submit problem reports and change requests via electronic mail. Alternatively, the web-based problem report submission interface can be used to submit problem reports through a web browser.

Before submitting a problem report, please read Writing FreeBSD Problem Reports, an article on how to write good problem reports.

1.14. What other sources of information are there?

Please check the Documentation list on the main FreeBSD web site.


Chapter 2 Documentation and Support

2.1. What good books are there about FreeBSD?
2.2. Is the documentation available in other formats, such as plain text (ASCII), or PostScript?
2.3. Where do I find info on the FreeBSD mailing lists?
2.4. What FreeBSD news groups are available?
2.5. Are there FreeBSD IRC (Internet Relay Chat) channels?
2.6. Where can I get commercial FreeBSD training and support?

2.1. What good books are there about FreeBSD?

The project produces a wide range of documentation, available online from this link: http://www.FreeBSD.org/docs.html. The same documents are available as packages, that you can easily install on your FreeBSD system. More details on documentation packages can be found in the next paragraphs.

In addition, the Bibliography at the end of this FAQ, and the one in the Handbook reference other recommended books.

2.2. Is the documentation available in other formats, such as plain text (ASCII), or PostScript?

Yes. The documentation is available in a number of different formats and compression schemes on the FreeBSD FTP site, in the /pub/FreeBSD/doc/ directory.

The documentation is categorized in a number of different ways. These include:

  • The document's name, such as faq, or handbook.

  • The document's language and encoding. These are based on the locale names you will find under /usr/share/locale on your FreeBSD system. The current languages and encodings that we have for documentation are as follows:

    Name Meaning
    en_US.ISO8859-1 US English
    de_DE.ISO8859-1 German
    es_ES.ISO8859-1 Spanish
    fr_FR.ISO8859-1 French
    it_IT.ISO8859-15 Italian
    ja_JP.eucJP Japanese (EUC encoding)
    ru_RU.KOI8-R Russian (KOI8-R encoding)
    zh_CN.GB2312 Simplified Chinese (GB2312 encoding)
    zh_TW.Big5 Traditional Chinese (Big5 encoding)

    Note: Some documents may not be available in all languages.

  • The document's format. We produce the documentation in a number of different output formats. Each format has its own advantages and disadvantages. Some formats are better suited for online reading, while others are meant to be aesthetically pleasing when printed on paper. Having the documentation available in any of these formats ensures that our readers will be able to read the parts they are interested in, either on their monitor, or on paper after printing the documents. The currently available formats are:

    Format Meaning
    html-split A collection of small, linked, HTML files.
    html One large HTML file containing the entire document
    pdb Palm Pilot database format, for use with the iSilo reader.
    pdf Adobe's Portable Document Format
    ps PostScript
    rtf Microsoft's Rich Text Format[a]
    txt Plain text
    Notes:
    a. Page numbers are not automatically updated when loading this format into Word. Press CTRL+A, CTRL+END, F9 after loading the document, to update the page numbers.
  • The compression and packaging scheme. There are three of these currently in use.

    1. Where the format is html-split, the files are bundled up using tar(1). The resulting .tar file is then compressed using the compression schemes detailed in the next point.

    2. All the other formats generate one file, called book.format (i.e., book.pdb, book.html, and so on).

      These files are then compressed using two compression schemes.

      Scheme Description
      zip The Zip format. If you want to uncompress this on FreeBSD you will need to install the archivers/unzip port first.
      bz2 The BZip2 format. Less widespread than Zip, but generally gives smaller files. Install the archivers/bzip2 port to uncompress these files.

      So the PostScript version of the Handbook, compressed using BZip2 will be stored in a file called book.ps.bz2 in the handbook/ directory.

After choosing the format and compression mechanism that you want to download, you must then decide whether or not you want to download the document as a FreeBSD package.

The advantage of downloading and installing the package is that the documentation can then be managed using the normal FreeBSD package management comments, such as pkg_add(1) and pkg_delete(1).

If you decide to download and install the package then you must know the filename to download. The documentation-as-packages files are stored in a directory called packages. Each package file looks like document-name.lang.encoding.format.tgz.

For example, the FAQ, in English, formatted as PDF, is in the package called faq.en_US.ISO8859-1.pdf.tgz.

Knowing this, you can use the following command to install the English PDF FAQ package.

# pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz

Having done that, you can use pkg_info(1) to determine where the file has been installed.

# pkg_info -f faq.en_US.ISO8859-1.pdf
Information for faq.en_US.ISO8859-1.pdf:

Packing list:
        Package name: faq.en_US.ISO8859-1.pdf
        CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
File: book.pdf
        CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)

As you can see, book.pdf will have been installed into /usr/share/doc/en_US.ISO8859-1/books/faq.

If you do not want to use the packages then you will have to download the compressed files yourself, uncompress them, and then copy the appropriate documents into place.

For example, the split HTML version of the FAQ, compressed using bzip2(1), can be found in the doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 file. To download and uncompress that file you would have to do this.

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
# bzip2 -d book.html-split.tar.bz2
# tar xvf book.html-split.tar

You will be left with a collection of .html files. The main one is called index.html, which will contain the table of contents, introductory material, and links to the other parts of the document. You can then copy or move these to their final location as necessary.

2.3. Where do I find info on the FreeBSD mailing lists?

You can find full information in the Handbook entry on mailing-lists.

2.4. What FreeBSD news groups are available?

You can find full information in the Handbook entry on newsgroups.

2.5. Are there FreeBSD IRC (Internet Relay Chat) channels?

Yes, most major IRC networks host a FreeBSD chat channel:

  • Channel #FreeBSD on EFNet is a FreeBSD forum, but do not go there for tech support or try to get folks there to help you avoid the pain of reading manual pages or doing your own research. It is a chat channel, first and foremost, and topics there are just as likely to involve sex, sports or nuclear weapons as they are FreeBSD. You Have Been Warned! Available at server irc.chat.org.

  • Channel #FreeBSDhelp on EFNet is a channel dedicated to helping FreeBSD users. They are much more sympathetic to questions than #FreeBSD is.

  • Channel #FreeBSD on DALNET is available at irc.dal.net in the US and irc.eu.dal.net in Europe.

  • Channel #FreeBSDHelp on DALNET is available at irc.dal.net in the US and irc.eu.dal.net in Europe.

  • Channel #FreeBSD on UNDERNET is available at us.undernet.org in the US and eu.undernet.org in Europe. Since it is a help channel, be prepared to read the documents you are referred to.

  • Channel #FreeBSD on RUSNET is a russian-language oriented channel dedicated to helping FreeBSD users. This is also good place for non-technical discussions.

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 are easily offended or cannot deal with lots of young people (and more than a few older ones) doing the verbal equivalent of jello wrestling, do not even bother with it.

2.6. Where can I get commercial FreeBSD training and support?

DaemonNews provides commercial training and support for FreeBSD. More information can be found at their BSD Mall site.

The FreeBSD Mall provides commercial FreeBSD support. You can get more information at their web site.

Any other organizations providing training and support should contact the project in order to be listed here.


Chapter 3 Installation

Nik Clayton
3.1. Which file do I download to get FreeBSD?
3.2. What do I do if the floppy images does not fit on a single floppy?
3.3. Where are the instructions for installing FreeBSD?
3.4. What do I need in order to run FreeBSD?
3.5. I have only 4 MB of RAM. Can I install FreeBSD?
3.6. How can I make my own custom install floppy?
3.7. Can I have more than one operating system on my PC?
3.8. Can Windows co-exist with FreeBSD?
3.9. Windows killed my boot manager! How do I get it back?
3.10. My A, T, or X series IBM Thinkpad locks up when I first booted up my FreeBSD installation. How can I solve this?
3.11. Can I install on a disk with bad blocks?
3.12. Strange things happen when I boot the install floppy! What is happening?
3.13. I booted from my ATAPI CDROM, but the install program says no CDROM is found. Where did it go?
3.14. Can I install on my laptop over PLIP (Parallel Line IP)?
3.15. Which geometry should I use for a disk drive?
3.16. Are there any restrictions on how I divide the disk up?
3.17. Is FreeBSD compatible with any disk managers?
3.18. When I boot FreeBSD for the first time after install I get “Missing Operating System”. What is happening?
3.19. Why can I not get past the boot manager's F? prompt?
3.20. Do I need to install the complete sources?
3.21. Do I need to build a kernel?
3.22. Should I use DES, Blowfish, or MD5 passwords and how do I specify which form my users receive?
3.23. Why does the boot floppy start, but hang at the Probing Devices... screen?
3.24. Why do I get a “panic: can't mount root” error when rebooting the system after installation?
3.25. What are the limits for memory?
3.26. What are the limits for ffs filesystems?
3.27. Why do I get an error message, “archsw.readin.failed” after compiling and booting a new kernel?
3.28. What are these “security profiles”?
3.29. Installation crashes while booting, what can I do?

3.1. Which file do I download to get FreeBSD?

For 4.X you need two floppy images: floppies/kernel.flp and floppies/mfsroot.flp. These images need to be copied onto floppies by tools like fdimage or dd(1). In FreeBSD 5.3 and later, the boot floppies have been restructured and you need floppies/boot.flp and all the floppies/kernX files (of which there are currently two).

If you need to download the distributions yourself (for a DOS filesystem install, for instance), below are some recommendations for distributions to grab:

  • base/ (bin/ in 4.X)

  • manpages/

  • compat*/

  • doc/

  • src/ssys.*

Full instructions on this procedure and a little bit more about installation issues in general can be found in the Handbook entry on installing FreeBSD.

3.2. What do I do if the floppy images does not fit on a single floppy?

A 3.5 inch (1.44MB) floppy can accommodate 1474560 bytes of data. The boot image is exactly 1474560 bytes in size.

Common mistakes when preparing the boot floppy are:

  • Not downloading the floppy image in binary mode when using FTP.

    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.

  • Using the DOS copy command (or equivalent GUI tool) to transfer the boot image to floppy.

    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 guide to FreeBSD.

3.3. Where are the instructions for installing FreeBSD?

Installation instructions can be found in the Handbook entry on installing FreeBSD.

3.4. What do I need in order to run FreeBSD?

For versions prior to 5.X, you will need a 386 or better PC, with 5 MB or more of RAM and at least 60 MB of hard disk space. The FreeBSD installation process requires somewhat more memory so in practice, 16 MB of RAM is a minimum requirement for a standalone FreeBSD system.

For FreeBSD 5.X and later you will need a 486 or better PC, with 24 MB or more of RAM and at least 150 MB of hard disk space.

All versions of FreeBSD can run with a low end MDA graphics card but to run X11R6, a VGA or better video card is needed.

See also Chapter 4.

3.5. I have only 4 MB of RAM. Can I install FreeBSD?

Installing FreeBSD 4.X requires at least 5MB RAM, and installing FreeBSD 5.X and later requires at least 8MB.

All versions of FreeBSD prior to 5.X will run in 4MB of RAM, they just cannot run the installation program in 4MB. You can add extra memory for the install process, and then revert to 4MB after the system is running. Or you could move your disk into a system which has sufficient memory, install onto the disk and then swap it back.

You must build a custom kernel to run in 4MB. Someone has even successfully booted FreeBSD with 2 MB RAM, although the system was almost unusable.

3.6. How can I make my own custom install floppy?

Currently there is no way to just make a custom install floppy. You have to cut a whole new release, which will include your install floppy.

To make a custom release, follow the instructions in the Release Engineering article.

3.7. Can I have more than one operating system on my PC?

Have a look at the multi-OS page.

3.8. Can Windows co-exist with FreeBSD?

Install Windows first, then FreeBSD. FreeBSD's boot manager will then manage to boot Windows and FreeBSD. If you install Windows second, it will boorishly overwrite your boot manager without even asking. If that happens, see the next section.

3.9. Windows killed my boot manager! How do I get it back?

You can reinstall the boot manager FreeBSD comes with in one of three ways:

  • Running DOS, go into the tools/ directory of your FreeBSD distribution and look for bootinst.exe. You run it like so:

    ...\TOOLS> bootinst.exe boot.bin
    

    and the boot manager will be reinstalled.

  • Boot the FreeBSD boot floppy again and go to the Custom installation menu item. Choose Partition. Select the drive which used to contain your boot manager (likely the first one) and when you come to the partition editor for it, as the very first thing (e.g. do not make any changes) select (W)rite. This will ask for confirmation, say yes, and when you get the Boot Manager selection prompt, be sure to select “Boot Manager”. This will re-write the boot manager to disk. Now quit out of the installation menu and reboot off the hard disk as normal.

  • Boot the FreeBSD boot floppy (or CDROM) and choose the “Fixit” menu item. Select either the Fixit floppy or CDROM #2 (the “live” filesystem option) as appropriate and enter the fixit shell. Then execute the following command:

    Fixit# fdisk -B -b /boot/boot0 bootdevice
    

    substituting bootdevice for your real boot device such as ad0 (first IDE disk), ad4 (first IDE disk on auxiliary controller), da0 (first SCSI disk), etc.

3.10. My A, T, or X series IBM Thinkpad locks up when I first booted up my FreeBSD installation. How can I solve this?

A bug in early revisions of IBM's BIOS on these machines mistakenly identifies the FreeBSD partition as a potential FAT suspend-to-disk partition. When the BIOS tries to parse the FreeBSD partition it hangs.

According to IBM[1], the following model/BIOS release numbers incorporate the fix.

Model BIOS revision
T20 IYET49WW or later
T21 KZET22WW or later
A20p IVET62WW or later
A20m IWET54WW or later
A21p KYET27WW or later
A21m KXET24WW or later
A21e KUET30WW

It has been reported that later IBM BIOS revisions may have reintroduced the bug. This message from Jacques Vidrine to the FreeBSD laptop computer mailing list describes a procedure which may work if your newer IBM laptop does not boot FreeBSD properly, and you can upgrade or downgrade the BIOS.

If you have an earlier BIOS, and upgrading is not an option, a workaround is to install FreeBSD, change the partition ID FreeBSD uses, and install new boot blocks that can handle the different partition ID.

First, you will need to restore the machine to a state where it can get through its self-test screen. Doing this requires powering up the machine without letting it find a FreeBSD partition on its primary disk. One way is to remove the hard disk and temporarily move it to an older ThinkPad (such as a ThinkPad 600) or a desktop PC with an appropriate conversion cable. Once it is there, you can delete the FreeBSD partition and move the hard disk back. The ThinkPad should now be in a bootable state again.

With the machine functional again, you can use the workaround procedure described here to get a working FreeBSD installation.

  1. Download boot1 and boot2 from http://people.FreeBSD.org/~bmah/ThinkPad/. Put these files somewhere you will be able to retrieve them later.

  2. Install FreeBSD as normal on to the ThinkPad. Do not use Dangerously Dedicated mode. Do not reboot when the install has finished.

  3. Either switch to the “Emergency Holographic Shell” (ALT+F4) or start a “fixit” shell.

  4. Use fdisk(8) to change the FreeBSD partition ID from 165 to 166 (this is the type used by OpenBSD).

  5. Bring the boot1 and boot2 files to the local filesystem.

  6. Use disklabel(8) to write boot1 and boot2 to your FreeBSD slice.

    # disklabel -B -b boot1 -s boot2 ad0sn
    

    n is the number of the slice where you installed FreeBSD.

  7. Reboot. At the boot prompt you will be given the option of booting OpenBSD. This will actually boot FreeBSD.

Getting this to work in the case where you want to dual boot OpenBSD and FreeBSD on the same laptop is left as an exercise for the reader.

3.11. Can I install on a disk with bad blocks?

You can, but it is a bad idea.

If you are seeing bad block errors with a modern IDE drive, chances are the drive is going to die very soon (the drive's internal remapping functions are no longer sufficient to fix the bad blocks, which means the disk is heavily corrupted); we suggest you buy a new hard drive.

If you have a SCSI drive with bad blocks, see this answer.

3.12. Strange things happen when I boot the install floppy! What is happening?

If you are 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:-

  1. Did you use a new, freshly-formatted, error-free floppy (preferably a brand-new one straight out of the box, as opposed to the magazine cover disk that has been lying under the bed for the last three years)?

  2. Did you download the floppy image in binary (or image) mode? (do not be embarrassed, even the best of us have accidentally downloaded a binary file in ASCII mode at least once!)

  3. If you are using Windows 95 or 98 did you run fdimage or rawrite in pure DOS mode? These operating systems can interfere with programs that write directly to hardware, which the disk creation program does; even running it inside a DOS shell in the GUI can cause this problem.

There have also been reports of Netscape® causing problems when downloading the boot floppy, so it is probably best to use a different FTP client if you can.

3.13. I booted from my ATAPI CDROM, but the install program says no CDROM is found. Where did it go?

The usual cause of this problem is a mis-configured CDROM drive. Many PCs now ship with the CDROM as the slave device on the secondary IDE controller, with no master device on that controller. This is illegal according to the ATAPI specification, but Windows plays fast and loose with the specification, and the BIOS ignores it when booting. This is why the BIOS was able to see the CDROM to boot from it, but why FreeBSD cannot see it to complete the install.

Reconfigure your system so that the CDROM is either the master device on the IDE controller it is attached to, or make sure that it is the slave on an IDE controller that also has a master device.

3.14. Can I install on my laptop over PLIP (Parallel Line IP)?

Yes. Use a standard Laplink cable. If necessary, you can check out the PLIP section of the Handbook for details on parallel port networking.

3.15. Which geometry should I use for a disk drive?

Note: By the “geometry” of a disk, we mean the number of cylinders, heads and sectors/track on a disk. We will 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 causes a lot of confusion among new system administrators. First of all, the physical geometry of a SCSI drive is totally irrelevant, as FreeBSD works in term of disk blocks. In fact, there is no such thing as “the” physical geometry, as the sector density varies across the disk. What manufacturers claim is the “physical geometry” is usually the geometry that they have determined wastes the least space. For IDE disks, FreeBSD does work in terms of C/H/S, but all modern drives internally convert this into block references.

All that matters is the logical geometry. This is the answer that the BIOS gets when it asks the drive “what is your geometry?” It then uses this geometry to access the disk. As FreeBSD uses the BIOS when booting, it is very important to get this right. In particular, if you have more than one operating system on a disk, they must all agree on the geometry. Otherwise you will have serious problems booting!

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 is 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 is turned on (it is often supplied this way to get around certain limitations in MS-DOS®) and the disk capacity is more than 1GB, use M cylinders, 63 sectors per track (not 64), and 255 heads, where M is the disk capacity in MB divided by 7.844238 (!). So our example 2GB drive would have 261 cylinders, 63 sectors per track and 255 heads.

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 BIOS should then detect the correct geometry, and you can always remove the DOS partition in the partition editor if you do not want to keep it. You might want to leave it around for programming network cards and the like, however.

Alternatively, there is a freely available utility distributed with FreeBSD called pfdisk.exe. You can find it in the tools subdirectory on the FreeBSD CDROM or on the various FreeBSD FTP sites. This program 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.

3.16. Are there any restrictions on how I divide the disk up?

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.

3.17. Is FreeBSD compatible with any disk managers?

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 do not 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 are 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 FreeBSD boot partition and the slice for the other operating system are in the first 1024 cylinders. If you are reasonably careful, a 20 megabyte boot partition should be plenty.

3.18. When I boot FreeBSD for the first time after install I get “Missing Operating System”. What is happening?

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.

3.19. Why can I not get past the boot manager's F? prompt?

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.

3.20. Do I need to install the complete sources?

In general, no. However, we would strongly recommend that you install, at a minimum, the base source kit, which includes several of the files mentioned here, and the sys (kernel) source kit, which includes sources for the kernel. There is nothing in the system which requires the presence of the sources to operate, however, except for the kernel-configuration program config(8). With the exception of the kernel sources, our build structure is set up so that you can read-only mount the sources from elsewhere via NFS and still be able to make new binaries (due to the kernel-source restriction, we recommend that you not mount this on /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.

To actually select a subset of the sources, use the Custom menu item when you are in the Distributions menu of the system installation tool.

3.21. Do I need to build a kernel?

Building a new kernel was originally pretty much a required step in a FreeBSD installation, but more recent releases have benefited from the introduction of much friendlier kernel configuration methods. In 4.X and earlier, when at the FreeBSD boot prompt (boot:), use the -c flag and you will be dropped into a visual configuration screen which allows you to configure the kernel's settings for most common ISA cards. In FreeBSD 5.X and later this has been replaced by much more flexible "hints" which can be set from the loader prompt.

It may still be worthwhile building a new kernel containing just the drivers that you need, just to save a bit of RAM, but it is no longer necessary for most systems.

3.22. Should I use DES, Blowfish, or MD5 passwords and how do I specify which form my users receive?

The default password format on FreeBSD is to use MD5-based passwords. These are believed to be more secure than the traditional UNIX password format, which used a scheme based on the DES algorithm. DES passwords are still available if you need to share your password file with legacy operating systems which still use the less secure password format (they are available if you choose to install the “crypto” distribution in sysinstall, or by installing the crypto sources if building from source). Installing the crypto libraries will also allow you to use the Blowfish password format, which is more secure. Which password format to use for new passwords is controlled by the “passwd_format” login capability in /etc/login.conf, which takes values of “des”, “blf” (if these are available) or “md5”. See the login.conf(5) manual page for more information about login capabilities.

3.23. Why does the boot floppy start, but hang at the Probing Devices... screen?

If you have a IDE Zip® or Jaz® drive installed, remove it and try again. The boot floppy can get confused by the drives. After the system is installed you can reconnect the drive. Hopefully this will be fixed in a later release.

3.24. Why do I get a “panic: can't mount root” error when rebooting the system after installation?

This error comes from confusion between the boot block's and the kernel's understanding of the disk devices. The error usually manifests on two-disk IDE systems, with the hard disks arranged as the master or single device on separate IDE controllers, with FreeBSD installed on the secondary IDE controller. The boot blocks think the system is installed on ad0 (the second BIOS disk) while the kernel assigns the first disk on the secondary controller device, ad2. After the device probing, the kernel tries to mount what the boot blocks think is the boot disk, ad0, while it is really ad2, and fails.

To fix the problem, do one of the following:

  1. Reboot the system and hit Enter at the Booting kernel in 10 seconds; hit [Enter] to interrupt prompt. This will drop you into the boot loader.

    Then type set root_disk_unit="disk_number" . disk_number will be 0 if FreeBSD is installed on the master drive on the first IDE controller, 1 if it is installed on the slave on the first IDE controller, 2 if it is installed on the master of the second IDE controller, and 3 if it is installed on the slave of the second IDE controller.

    Then type boot, and your system should boot correctly.

    To make this change permanent (i.e, so you do not have to do this every time you reboot or turn on your FreeBSD machine), put the line root_disk_unit="disk_number" in /boot/loader.conf.local .

  2. Move the FreeBSD disk onto the primary IDE controller, so the hard disks are consecutive.

3.25. What are the limits for memory?

The limit is 4 gigabytes on a standard i386 install. Beginning with FreeBSD versions 4.9 and 5.1, more memory can be supported through pae(4). This does require a kernel recompile, with an extra option to enable PAE:

options       PAE

FreeBSD/pc98 has a limit of 4 GB memory, and PAE can not be used with it. On FreeBSD/alpha, the limit on memory depends on the type of hardware in use - consult the Alpha Hardware Release Notes for details. Other architectures supported by FreeBSD have much higher theoretical limits on maximum memory (many terabytes).

3.26. What are the limits for ffs filesystems?

For ffs filesystems, the maximum theoretical limit is 8 terabytes (2G blocks), or 16TB for the default block size of 8K. In practice, there is a soft limit of 1 terabyte, but with modifications filesystems with 4 terabytes are possible (and exist).

The maximum size of a single ffs file is approximately 1G blocks, or 4TB with a block size of 4K.

Table 3-1. Maximum file sizes

fs block size works should work
4K 4T-1 >4T
8K >32G 32T-1
16K >128G 32T-1
32K >512G 64T-1
64K >2048G 128T-1

When the fs block size is 4K, triple indirect blocks work and everything should be limited by the maximum fs block number that can be represented using triple indirect blocks (approx. 1K^3 + 1K^2 + 1K), but everything is limited by a (wrong) limit of 1G-1 on fs block numbers. The limit on fs block numbers should be 2G-1. There are some bugs for fs block numbers near 2G-1, but such block numbers are unreachable when the fs block size is 4K.

For block sizes of 8K and larger, everything should be limited by the 2G-1 limit on fs block numbers, but is actually limited by the 1G-1 limit on fs block numbers. Using the correct limit of 2G-1 blocks does cause problems.

3.27. Why do I get an error message, “archsw.readin.failed” after compiling and booting a new kernel?

Because your world and kernel are out of sync. This is not supported. Be sure you use make buildworld and make buildkernel to update your kernel.

You can boot by specifying the kernel directly at the second stage, pressing any key when the | shows up before loader is started.

3.28. What are these “security profiles”?

A “security profile” is a set of configuration options that attempts to achieve the desired ratio of security to convenience by enabling and disabling certain programs and other settings. For full details, see the Security Profile section of the Handbook's post-install chapter.

3.29. Installation crashes while booting, what can I do?

Try disabling ACPI support. When the bootloader loads, press the space key. The system displays

OK
. Type
unset acpi_load
and then
boot
.


Chapter 4 Hardware compatibility

4.1 General

4.1.1. I want to get a piece of hardware for my FreeBSD system. Which model/brand/type is best?

4.1.1. I want to get a piece of hardware for my FreeBSD system. Which model/brand/type is best?

This is discussed continually on the FreeBSD mailing lists. Since hardware changes so quickly, however, we expect this. We still strongly recommend that you read through the Hardware notes for FreeBSD 6.2 or 5.5 and search the mailing list archives before asking about the latest and greatest hardware. Chances are a discussion about the type of hardware you are looking for took place just last week.

If you are looking for a laptop, check the FreeBSD-mobile mailing list archives. Otherwise, you probably want the archives for FreeBSD-questions, or possibly a specific mailing list for a particular hardware type.


4.2 Architectures and processors

4.2.1. Does FreeBSD support architectures other than the x86?
4.2.2. Does FreeBSD support Symmetric Multiprocessing (SMP)?

4.2.1. Does FreeBSD support architectures other than the x86?

Yes. FreeBSD currently runs on the Intel x86 and DEC (now Compaq) Alpha architectures. As of FreeBSD 5.0, the AMD64 and Intel EM64T, IA-64, and Sparc64® architectures are also supported. Upcoming platforms are MIPS® and PowerPC®, join the FreeBSD PowerPC porting mailing list or the FreeBSD MIPS porting mailing list respectively for more information about ongoing work on these platforms. For general discussion on new architectures, join the FreeBSD non-Intel platforms porting mailing list.

If your machine has a different architecture and you need something right now, we suggest you look at NetBSD or OpenBSD.

4.2.2. Does FreeBSD support Symmetric Multiprocessing (SMP)?

Yes. SMP was enabled by default in the GENERIC kernel as of FreeBSD 5.2.

The intention was also to enable it by default for the FreeBSD 5.3 release, but problems running the SMP kernel on certain UP machines led to the decision to disable it until those problems can be addressed. This is a priority for FreeBSD 5.4.

In FreeBSD 4.X, SMP is not enabled in the default kernel, so you must recompile your kernel to enable SMP. Take a look at /sys/i386/conf/LINT to learn which options to put in your kernel config file.


4.3 Hard drives, tape drives, and CD and DVD drives

4.3.1. What kind of hard drives does FreeBSD support?
4.3.2. Which SCSI controllers are supported?
4.3.3. What types of tape drives are supported?
4.3.4. Does FreeBSD support tape changers?
4.3.5. Which CDROM drives are supported by FreeBSD?
4.3.6. Which CD-RW drives are supported by FreeBSD?
4.3.7. Does FreeBSD support Zip drives?
4.3.8. Does FreeBSD support Jaz, EZ and other removable drives?

4.3.1. What kind of hard drives does FreeBSD support?

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.

4.3.2. Which SCSI controllers are supported?

See the complete list in the Hardware Notes for FreeBSD 6.2 or 5.5.

4.3.3. What types of tape drives are supported?

FreeBSD supports SCSI and QIC-36 (with a QIC-02 interface). This includes 8-mm (aka Exabyte) and DAT drives.

Some of the early 8-mm drives are not quite compatible with SCSI-2, and may not work well with FreeBSD.

4.3.4. Does FreeBSD support tape changers?

FreeBSD supports SCSI changers using the ch(4) device and the chio(1) command. The details of how you actually control the changer can be found in the chio(1) manual page.

If you are not using AMANDA or some other product that already understands changers, remember that they only know how to move a tape from one point to another, so you need to keep track of which slot a tape is in, and which slot the tape currently in the drive needs to go back to.

4.3.5. Which CDROM drives are supported by FreeBSD?

Any SCSI drive connected to a supported controller is supported.

The following proprietary CDROM interfaces are also supported:

  • Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x Speed).

  • Sony CDU 31/33A

  • Sound Blaster Non-SCSI CDROM

  • Matsushita/Panasonic CDROM

  • ATAPI compatible IDE CDROMs

All non-SCSI cards are known to be extremely slow compared to SCSI drives, and some ATAPI CDROMs may not work.

The official FreeBSD CDROM ISO, and CDROMs from Daemon News and FreeBSD Mall, support booting directly from the CD.

4.3.6. Which CD-RW drives are supported by FreeBSD?

FreeBSD supports any ATAPI-compatible IDE CD-R or CD-RW drive. See burncd(8) for details.

FreeBSD also supports any SCSI CD-R or CD-RW drives. Install and use the cdrecord command from the ports or packages system, and make sure that you have the pass device compiled in your kernel.

4.3.7. Does FreeBSD support Zip drives?

FreeBSD supports SCSI and ATAPI (IDE) Zip drives out of the box. SCSI ZIP drives 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. It is not clear which host adapters support booting from targets other than 0 or 1, so you will have to consult your adapter's documentation if you would like to use this feature.

FreeBSD also supports Parallel Port Zip Drives. 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 the FAQ on removable drives later in this chapter, and the note on “formatting”in the Administration chapter.

4.3.8. Does FreeBSD support Jaz, EZ and other removable drives?

They work. Most of these are SCSI devices, so they look like SCSI disks to FreeBSD. The IDE EZ looks like an IDE drive.

Make sure that any external units are powered on when booting the system.

To change the media while running, check out mount(8), umount(8), and camcontrol(8) (for SCSI devices) or atacontrol(8) (for IDE devices), plus the discussion on using removable drives later in the FAQ.


4.4 Keyboards and mice

4.4.1. Does FreeBSD support my USB keyboard?
4.4.2. I have an unusual bus mouse. How do I set it up?
4.4.3. How do I use my PS/2 (“mouse port” or “keyboard”) mouse?
4.4.4. Is it possible to use a mouse in any way outside the X Window system?
4.4.5. How do I cut and paste text with a mouse in the text console?
4.4.6. My mouse has a fancy wheel and buttons. Can I use them in FreeBSD?
4.4.7. How do I use the mouse/trackball/touchpad on my laptop?

4.4.1. Does FreeBSD support my USB keyboard?

FreeBSD supports USB keyboards out-of-the-box. Enable USB support in /etc/rc.conf.

Once you have USB keyboard support enabled on your system, the AT keyboard becomes /dev/kbd0 and the USB keyboard becomes /dev/kbd1, if both are connected to the system. If there is the USB keyboard only, it will be /dev/ukbd0.

If you want to use the USB keyboard in the console, you have to explicitly tell the console driver to use the existing USB keyboard. This can be done by running the following command as a part of system initialization.

# kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null

Note that if the USB keyboard is the only keyboard, it is accessed as /dev/ukbd0, thus, the command should look like:

# kbdcontrol -k /dev/ukbd0 < /dev/ttyv0 > /dev/null

/etc/rc.i386 is a good place to add the above command.

Once this is done, the USB keyboard should work in the X environment as well without any special settings.

Hot-plugging and unplugging of the USB keyboard may not work quite right yet. We recommend connecting the keyboard before starting the system and leaving it connected until the system is shutdown to avoid troubles.

See the ukbd(4) manual page for more information.

4.4.2. I have an unusual bus mouse. How do I set it up?

FreeBSD supports the bus mouse and the InPort bus mouse from such manufacturers as Microsoft, Logitech and ATI. The GENERIC kernel does not include the device driver. To build a custom kernel with the bus mouse driver, add the following line to the kernel config file:

device mse0 at isa? port 0x23c irq5

Bus mice usually come with dedicated interface cards. These cards 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 mse(4) manual page for more information.

4.4.3. How do I use my PS/2 (“mouse port” or “keyboard”) mouse?

The PS/2 mouse is supported out-of-the-box. The necessary device driver, psm, is included in the kernel.

If your custom kernel does not have this, add the following line to your kernel configuration and compile a new kernel.

device psm0 at atkbdc? irq 12

Once the kernel detects psm0 correctly at boot time, make sure that an entry for psm0 exists in /dev. You can create this entry by typing:

# cd /dev; sh MAKEDEV psm0

when logged in as root.

Note: You can omit this step if you are running FreeBSD 5.0-RELEASE or newer with devfs(5) enabled, since the proper device nodes will be created automatically under /dev.

4.4.4. Is it possible to use a mouse in any way outside the X Window system?

If you are using the default console driver, syscons(4), you can use a mouse pointer in text consoles to cut & paste text. Run the mouse daemon, moused(8), and turn on the mouse pointer in the virtual console:

# moused -p /dev/xxxx -t yyyy
# vidcontrol -m on

Where xxxx is the mouse device name and yyyy is a protocol type for the mouse. The mouse daemon can automatically determine the protocol type of most mice, except old serial mice. Specify the auto protocol to invoke automatic detection. If automatic detection does not work, see the moused(8) manual page for a list of supported protocol types.

If you have a PS/2 mouse, just add moused_enable="YES" to /etc/rc.conf to start the mouse daemon at boot-time. Additionally, if you would like to use the mouse daemon on all virtual terminals instead of just the console, add allscreens_flags="-m on" to /etc/rc.conf.

When the mouse daemon is running, access to the mouse must be coordinated between the mouse daemon and other programs such as X Windows. Refer to the FAQ Why does my mouse not work with X? for more details on this issue.

4.4.5. How do I cut and paste text with a mouse in the text console?

Once you get the mouse daemon running (see the previous section), hold down the button 1 (left button) and move the mouse to select a region of text. Then, press the button 2 (middle button) to paste it at the text cursor. Pressing button 3 (right button) will “extend” the selected region of text.

If your mouse does not have a middle button, you may wish to emulate one or remap buttons using mouse daemon options. See the moused(8) manual page for details.

4.4.6. My mouse has a fancy wheel and buttons. Can I use them in FreeBSD?

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.

For the possible usage of wheels in the X Window environment, refer to that section.

4.4.7. How do I use the mouse/trackball/touchpad on my laptop?


4.5 Networking and serial devices

4.5.1. Which network cards does FreeBSD support?
4.5.2. Why is FreeBSD not finding my internal Plug & Play modem?
4.5.3. Does FreeBSD support software modems, such as Winmodems?
4.5.4. Is there a native driver for the Broadcom 43xx cards?
4.5.5. Which multi-port serial cards are supported by FreeBSD?
4.5.6. How do I get the boot: prompt to show on the serial console?

4.5.1. Which network cards does FreeBSD support?

See the Hardware Notes supplied with each release of FreeBSD for a more complete list.

4.5.2. Why is FreeBSD not finding my internal Plug & Play modem?

You will need to add the modem's PnP ID to the PnP ID list in the serial driver. To enable Plug & Play support, compile a new kernel with controller pnp0 in the configuration file, then reboot the system. The kernel will print the PnP IDs of all the devices it finds. Copy the PnP ID from the modem to the table in /sys/i386/isa/sio.c, at about line 2777. Look for the string SUP1310 in the structure siopnp_ids[] to find the table. Build the kernel again, install, reboot, and your modem should be found.

You may have to manually configure the PnP devices using the pnp command in the boot-time configuration with a command like

pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8

to make the modem show.

4.5.3. Does FreeBSD support software modems, such as Winmodems?

FreeBSD supports many software modems via add-on software. The comms/ltmdm port adds support for modems based on the very popular Lucent LT chipset. The comms/mwavem port supports the modem in IBM Thinkpad 600 and 700 laptops.

You cannot install FreeBSD via a software modem; this software must be installed after the OS is installed.

4.5.4. Is there a native driver for the Broadcom 43xx cards?

No, and there is not likely to be.

Broadcom refuses to publically release programming information for their wireless chipsets, most likely because they use software controlled radios. In order to get FCC type acceptance for their parts, they have to ensure that users cannot arbitrarily set things like operating frequencies, modulation parameters and power output. But without knowing how to program the chipsets, it is nearly impossible to write a driver.

4.5.5. Which multi-port serial cards are supported by FreeBSD?

There is a list of these in the Miscellaneous devices section of the handbook.

Some unnamed clone cards have also been known to work, especially those that claim to be AST compatible.

Check the sio(4) manual page to get more information on configuring such cards.

4.5.6. How do I get the boot: prompt to show on the serial console?

  • Build a kernel with options COMCONSOLE.

  • Create /boot.config and place -P as the only text in the file.

  • Unplug the keyboard from the system.

  • See /usr/src/sys/i386/boot/biosboot/README.serial for information.


4.6 Sound devices

4.6.1. Which sound cards are supported by FreeBSD?
4.6.2. Workarounds for no sound from my pcm(4) sound card?

4.6.1. Which sound cards are supported by FreeBSD?

FreeBSD supports various sound cards including the SoundBlaster®, SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16, AdLib, and Gravis UltraSound sound cards (for more details, see FreeBSD Release Information and the snd(4) manual page). There is also limited support for MPU-401 and compatible MIDI cards. Cards conforming to the Microsoft® Sound System specification are also supported.

Note: This is only for sound! This driver does not support CDROMs, SCSI or joysticks on these cards, except for the SoundBlaster. The SoundBlaster SCSI interface and some non-SCSI CDROMs are supported, but you cannot boot off this device.

4.6.2. Workarounds for no sound from my pcm(4) sound card?

Some sound cards, such as the es1370, set their output volume to 0 at every boot. Run the following command every time the machine boots:

# mixer pcm 100 vol 100 cd 100

4.7 Other hardware

4.7.1. What other devices does FreeBSD support?
4.7.2. Does FreeBSD support power management on my laptop?
4.7.3. How do I disable ACPI?
4.7.4. Why does my Micron system hang at boot time?
4.7.5. The boot floppy hangs on a system with an ASUS K7V motherboard. How do I fix this?
4.7.6. Why does my 3Com® PCI network card not work with my Micron computer?
4.7.7. My PCMCIA card does not work. I have a message: “cbb0: unsupported card type detected.” What can I do?

4.7.1. What other devices does FreeBSD support?

See the Handbook for the list of other devices supported.

4.7.2. Does FreeBSD support power management on my laptop?

FreeBSD 4.X and later support APM on certain machines. Further information can be found in apm(4).

FreeBSD 5.X and later support the ACPI features found in most modern hardware. Further information can be found in acpi(4). If a system supports both APM and ACPI, either can be used. We suggest you try both and choose the one that best fits your needs.

4.7.3. How do I disable ACPI?

Add following line

hint.acpi.0.disabled="1"
into your /boot/device.hints file.

4.7.4. Why does my Micron system hang at boot time?

Certain Micron motherboards have a non-conforming PCI BIOS implementation that causes grief when FreeBSD boots because PCI devices do not get configured at their reported addresses.

Disable the “Plug and Play Operating System” flag in the BIOS to work around this problem.

4.7.5. The boot floppy hangs on a system with an ASUS K7V motherboard. How do I fix this?

Go into the BIOS setup and disable the “boot virus protection”.

4.7.6. Why does my 3Com® PCI network card not work with my Micron computer?

Certain Micron motherboards have a non-conforming PCI BIOS implementation that does not configure PCI devices at the addresses reported. This causes grief when FreeBSD boots.

To work around this problem, disable the “Plug and Play Operating System” flag in the BIOS.

4.7.7. My PCMCIA card does not work. I have a message: “cbb0: unsupported card type detected.” What can I do?

You can try to use the original OLDCARD implementation. Edit your kernel configuration file and remove the following lines:

device cbb
device pccard
device cardbus
Then add:
device pcic
device card 1
Rebuild and install the new kernel as described in Configuring the FreeBSD Kernel.


Chapter 5 Troubleshooting

5.1. Why is FreeBSD finding the wrong amount of memory?
5.2. What do I do when I have bad blocks on my hard drive?
5.3. Why does FreeBSD not detect my HP Netserver's SCSI controller?
5.4. I keep seeing messages like “ed1: timeout”. What do these messages mean?
5.5. Why did my 3Com 3C509 card stop working for no apparent reason?
5.6. My parallel printer is ridiculously slow. What can I do?
5.7. Why do my programs occasionally die with “Signal 11” errors?
5.8. My system crashes with either “Fatal trap 12: page fault in kernel mode”, or “panic:”, and spits out a bunch of information. What should I do?
5.9. Why does the screen go black and lose sync when I boot?
5.10. Why does FreeBSD only use 64 MB of RAM when my system has 128 MB of RAM installed?
5.11. My system has more than 1 GB of RAM, and I'm getting panics with “kmem_map too small” messages. What is wrong?
5.12. My system does not have 1 GB of RAM, and FreeBSD still panics with “kmem_map too small!
5.13. Why do I get the error “/kernel: proc: table is full”?
5.14. Why do I get an error reading “CMAP busy” when rebooting with a new kernel?
5.15. What does the message “ahc0: brkadrint, Illegal Host Access at seqaddr 0x0” mean?
5.16. When I boot my system, I get the error “ahc0: illegal cable configuration”. My cabling is correct. What is going on?
5.17. Why does Sendmail give me an error reading ““mail loops back to myself””?
5.18. Why do full screen applications on remote machines misbehave?
5.19. Why does my machine print “calcru: negative time...”?
5.20. Why is my PnP card no longer found (or found as unknown) since upgrading to FreeBSD 4.X?
5.21. Why do I get the error “nlist failed” when running, for example, top or systat?
5.22. Why does it take so long to connect to my computer via ssh or telnet?
5.23. What does “stray IRQ” mean?
5.24. Why does “file: table is full” show up repeatedly in dmesg?
5.25. Why does the clock on my laptop keep incorrect time?
5.26. Why did my laptop fail to correctly probe PC cards?
5.27. Why does FreeBSD's boot loader display “Read error” and stop after the BIOS screen?
5.28. Another operating system destroyed my Boot Manager. How do I get it back?
5.29. What does the error “swap_pager: indefinite wait buffer:” mean?
5.30. What are “UDMA ICRC” errors, and how do I fix them?
5.31. What is a “lock order reversal”?
5.32. What does “Called ... with the following non-sleepable locks held” mean?
5.33. Why does buildworld/installworld die with the message “touch: not found”?

5.1. Why is FreeBSD finding the wrong amount of memory?

The reason is the difference between physical memory addresses and virtual addresses.

The convention for most PC hardware is to use the memory area between 3.5G and 4G for a special purpose (usually for PCI). This address space is used to access PCI hardware. As a result real, physical memory can not appear in that address space.

What happens to the memory that should appear in that location is dependent on your hardware. Unfortunately, some hardware does nothing and the ability to use that last 500M of RAM is entirely lost.

Luckily, most hardware remaps the memory to a higher location so that it can still be used. However, this can cause some confusion if you watch the boot messages.

On a 32 bit version of FreeBSD, the memory appears lost, since it will be remapped above 4G, which a 32 bit kernel is unable to access. In this case, the solution is to build a PAE enabled kernel. See this FAQ entry for more information.

On a 64 bit version of FreeBSD, or when running a PAE-enabled kernel, FreeBSD will correctly detect and remap the memory so it is usable. During boot, however, it may seem as if FreeBSD is detecting more memory than the system really has. This is normal and the available memory will be corrected as the boot process completes.

5.2. What do I do when I have bad blocks on my hard drive?

With SCSI drives, the drive should be capable of re-mapping these automatically. However, many drives ship with this feature disabled.

To enable bad block remapping edit the first device page mode, which can be done by giving the command (as root)

# camcontrol modepage sd0 -m 1 -e -P 3

and changing the values of AWRE and ARRE from 0 to 1:-

AWRE (Auto Write Reallocation Enbld):  1
ARRE (Auto Read Reallocation Enbld):  1

Modern IDE drives also have bad block remapping features in the controller, and they ship with this feature turned on.

If you see warnings about bad blocks (on either type of drive), it is time to consider replacing the drive. You might be able to use the drive manufacturer's diagnostic program to lock out those bad blocks, but at best this will buy you some time.

5.3. Why does FreeBSD not detect my HP Netserver's SCSI controller?

This is basically a known problem. The EISA on-board SCSI controller in the HP Netserver machines occupies EISA slot number 11, so all the “true” EISA slots are in front of it. Alas, the address space for EISA slots >= 10 collides with the address space assigned to PCI, and FreeBSD's auto-configuration currently cannot handle this situation very well.

So now, the best you can do is to pretend there is no address range clash :), by bumping the kernel option EISA_SLOTS to a value of 12. Configure and compile a kernel, as described in the Handbook entry on configuring the kernel.

Of course, this does present you with a chicken-and-egg problem when installing on such a machine. In order to work around this problem, a special hack is available inside UserConfig. Do not use the “visual” interface, but the plain command-line interface there. Simply type

eisa 12
quit

at the prompt, and install your system as usual. While it is recommended you compile and install a custom kernel anyway.

Hopefully, future versions will have a proper fix for this problem.

Note: You cannot use a dangerously dedicated disk with an HP Netserver. See this note for more info.

5.4. I keep seeing messages like “ed1: timeout”. What do these messages mean?

This is usually caused by an interrupt conflict (e.g., two boards using the same IRQ). Boot with the -c option and change the ed0/de0/... entry to match your board.

If you are using the BNC connector on your network card, you may also see device timeouts because of bad termination. To check this, attach a terminator directly to the NIC (with no cable) and see if the error messages go away.

Some NE2000 compatible cards will give this error if there is no link on the UTP port or if the cable is disconnected.

5.5. Why did my 3Com 3C509 card stop working for no apparent reason?

This card has a bad habit of losing its configuration information. Refresh your card's settings with the DOS utility 3c5x9.exe.

5.6. My parallel printer is ridiculously slow. What can I do?

If the only problem is that the printer is terribly slow, try changing your printer port mode as discussed in the Printer Setup section of the Handbook.

5.7. Why do my programs occasionally die with “Signal 11” errors?

Signal 11 errors are caused when your process has attempted to access memory which the operating system has not granted it access to. If something like this is happening at seemingly random intervals then you need to start investigating things very carefully.

These problems can usually be attributed to either:

  1. If the problem is occurring only in a specific application that you are developing yourself it is probably a bug in your code.

  2. If it is a problem