FreeBSD Handbook

1. Introduction
1.1. FreeBSD in a nutshell
1.2. A brief history of FreeBSD
1.3. FreeBSD Project goals
1.4. About the current release
2. Installing FreeBSD
2.1. Supported Configurations
2.1.1. Disk Controllers
2.1.2. Ethernet cards
2.1.3. Miscellaneous devices
2.2. Preparing for the installation
2.2.1. Before installing from CDROM
2.2.2. Before installing from Floppy
2.2.3. Before installing from a MS-DOS partition
2.2.4. Before installing from QIC/SCSI Tape
2.2.5. Before installing over a network
2.2.5.1. Preparing for NFS installation
2.2.5.2. Preparing for FTP Installation
2.3. Installing FreeBSD
2.3.1. Express installation
2.3.2. Custom installation
2.4. MS-DOS user's Questions and Answers
3. Unix Basics
3.1. The online manual
3.2. GNU Info files
4. Installing applications
4.1. * Installing packages
4.2. The Ports collection
4.2.1. What is the FreeBSD Ports Collection?
4.2.2. How does the system compile with no source code?
4.2.3. Compiling ports from CDROM
4.2.4. Compiling ports using an Internet connection
4.2.5. It doesn't work?!
4.2.6. I've ported a program and I want to make a port out of it. What now?
4.2.7. I've got a good port, what now?
4.2.8. I want to leave the compile going overnight, but some ports don't like this.
4.2.9. The ports collection is weak. What can I do to help?
4.2.10. This FAQ is weak. What can I do?
4.2.11. How do I get more information on all the ports?
4.2.12. I've heard of a new checksum system. What is this for?
5. Configuring the FreeBSD Kernel
5.1. Why build a custom kernel?
5.2. Building and Installing a Custom Kernel
5.3. The Configuration File
5.3.1. Mandatory Keywords
5.3.2. General Options
5.3.3. Filesystem Options
5.3.4. Basic Controllers and Devices
5.3.5. SCSI Device Support
5.3.6. Console, Bus Mouse, and X Server Support
5.3.7. Serial and Parallel Ports
5.3.8. Networking
5.3.9. Sound cards
5.3.10. Pseudo-devices
5.3.11. Joystick, PC Speaker, Miscellaneous
5.4. Making Device Nodes
5.5. If Something Goes Wrong
6. Users, groups and security
6.1. DES, MD5, and Crypt
6.2. S/Key
6.2.1. Secure connection initialization
6.2.2. Insecure connection initialization
6.2.3. Diversion: a login prompt
6.2.4. Generating a single one-time password
6.2.5. Generating multiple one-time passwords
6.2.6. Restricting use of UNIX passwords
6.3. Kerberos
6.3.1. Creating the initial database
6.3.2. Making it all run
6.3.3. Creating the server file
6.3.4. Populating the database
6.3.5. Testing it all out
6.3.6. Adding su privileges
6.3.7. Using other commands
6.4. Firewalls
6.4.1. What is a firewall?
6.4.1.1. Packet filtering routers
6.4.1.2. Proxy servers
6.4.2. What does IPFW allow me to do?
6.4.3. Enabling IPFW on FreeBSD
6.4.4. Configuring IPFW
6.4.4.1. Altering the IPFW rules
6.4.4.2. Listing/flushing the IPFW rules
6.4.5. Example commands for ipfw
6.4.6. Building a packet filtering firewall
7. Printing
7.1. What the Spooler Does
7.2. Why You Should Use the Spooler
7.3. Setting Up the Spooling System
7.4. Simple Printer Setup
7.4.1. Hardware Setup
7.4.1.1. Ports and Cables
7.4.1.2. Parallel Ports
7.4.1.3. Serial Ports
7.4.2. Software Setup
7.4.2.1. Kernel Configuration
Adding /dev Entries for the Ports
Setting the Communication Mode for the Parallel Port
Checking Printer Communications
Checking a Parallel Printer
Checking a Serial Printer
7.4.2.2. Enabling the Spooler: The /etc/printcap File
Naming the Printer
Suppressing Header Pages
Making the Spooling Directory
Identifying the Printer Device
Configuring Spooler Communication
Installing the Text Filter
Trying It Out
Troubleshooting
7.5. Using Printers
7.5.1. Printing Jobs
7.5.2. Checking Jobs
7.5.3. Removing Jobs
7.5.4. Beyond Plain Text: Printing Options
7.5.4.1. Formatting and Conversion Options
7.5.4.2. Job Handling Options
7.5.4.3. Header Page Options
7.5.5. Administrating Printers
7.6. Advanced Printer Setup
7.6.1. Filters
7.6.1.1. How Filters Work
7.6.1.2. Accommodating Plain Text Jobs on PostScript Printers
7.6.1.3. Simulating PostScript on Non-PostScript Printers
7.6.1.4. Conversion Filters
Why Install Conversion Filters?
Which Conversions Filters Should I Install?
Installing Conversion Filters
More Conversion Filter Examples
Automated Conversion: An Alternative To Conversion Filters
7.6.1.5. Output Filters
7.6.1.6. lpf: a Text Filter
7.6.2. Header Pages
7.6.2.1. Enabling Header Pages
7.6.2.2. Controlling Header Pages
7.6.2.3. Accounting for Header Pages
7.6.2.4. Header Pages on PostScript Printers
7.6.3. Networked Printing
7.6.3.1. Printers Installed on Remote Hosts
7.6.3.2. Printers with Networked Data Stream Interfaces
7.6.4. Restricting Printer Usage
7.6.4.1. Restricting Multiple Copies
7.6.4.2. Restricting Access To Printers
7.6.4.3. Controlling Sizes of Jobs Submitted
7.6.4.4. Restricting Jobs from Remote Printers
7.6.5. Accounting for Printer Usage
7.6.5.1. Quick and Dirty Printer Accounting
7.6.5.2. How Can You Count Pages Printed?
7.7. Alternatives to the Standard Spooler
7.8. Acknowledgments
8. The X-Window System
9. PC Hardware compatibility
9.1. Sample Configurations
9.1.1. Jordan's Picks
9.1.1.1. Motherboards
9.1.1.2. Disk Controllers
9.1.1.3. Disk drives
9.1.1.4. Video Cards
9.1.1.5. Monitors
9.1.1.6. Networking
9.1.1.7. Audio
9.2. Core/Processing
9.2.1. Motherboards, busses, and chipsets
9.2.1.1. * ISA
9.2.1.2. * EISA
9.2.1.3. * VLB
9.2.1.4. PCI
9.2.2. * CPUs/FPUs
9.2.3. * Memory
9.2.4. * BIOS
9.3. Input/Output Devices
9.3.1. * Video cards
9.3.2. * Sound cards
9.3.3. Serial ports and multiport cards
9.3.3.1. Digiboard PC/8
9.3.3.2. Boca 16
9.3.4. * Parallel ports
9.3.5. * Modems
9.3.6. * Network cards
9.3.7. * Keyboards
9.3.8. * Mice
9.3.9. * Other
9.4. Storage Devices
9.4.1. Using ESDI hard disks
9.4.1.1. Concepts of ESDI
Physical connections
Device addressing
Termination
9.4.1.2. Using ESDI disks with FreeBSD
ESDI speed variants
Stay on track
Hard or soft sectoring
Low level formatting
Translations
Spare sectoring
Bad block handling
Kernel configuration
9.4.1.3. Particulars on ESDI hardware
Adaptec 2320 controllers
Western Digital WD1007 controllers
Ultrastor U14F controllers
9.4.1.4. Further reading
9.4.1.5. Thanks to...
9.4.2. What is SCSI?
9.4.2.1. Components of SCSI
9.4.2.2. SCSI bus types
Single ended buses
Differential buses
Terminators
Terminator power
Device addressing
Bus layout
9.4.2.3. Using SCSI with FreeBSD
About translations, BIOSes and magic...
SCSI subsystem design
Kernel configuration
Tuning your SCSI kernel setup
Rogue SCSI devices
Busmaster host adapters
9.4.2.4. Tracking down problems
9.4.2.5. Further reading
9.4.3. * Disk/tape controllers
9.4.3.1. * SCSI
9.4.3.2. * IDE
9.4.3.3. * Floppy
9.4.4. * Hard drives
9.4.5. * Tape drives
9.4.6. * CD-ROM drives
9.4.7. * Other
9.4.8. * Adding and reconfiguring disks
9.4.9. * Tapes and backups
9.4.10. * Serial ports
9.4.11. * Sound cards
9.4.12. * PCMCIA
9.4.13. * Other
10. Basic Networking
10.1. * Ethernet basics
10.2. * Serial basics
10.3. * Hardwired Terminals
10.4. Dialup access
10.4.1. Prerequisites
10.4.1.1. FreeBSD Version
10.4.1.2. Terminology
10.4.1.3. External vs. Internal Modems
10.4.1.4. Modems and Cables
10.4.1.5. Serial Interface Considerations
10.4.2. Quick Overview
10.4.3. Kernel Configuration
10.4.4. Device Special Files
10.4.4.1. Making Device Special Files
10.4.5. Configuration Files
10.4.5.1. /etc/gettytab
Locked-Speed Config
Matching-Speed Config
10.4.5.2. /etc/ttys
Locked-Speed Config
Matching-Speed Config
10.4.5.3. /etc/rc.serial or /etc/rc.local
10.4.6. Modem Settings
10.4.6.1. Locked-speed Config
10.4.6.2. Matching-speed Config
10.4.6.3. Checking the Modem's Configuration
10.4.7. Troubleshooting
10.4.7.1. Checking out the FreeBSD system
10.4.7.2. Try Dialing In
10.4.8. Acknowledgements
11. PPP and SLIP
11.1. Setting up user PPP
11.1.1. Before you start
11.1.2. Building a ppp ready kernel
11.1.3. Check the tun device
11.1.4. PPP Configuration
11.1.4.1. Configure the resolver(5)
11.1.4.2. Create the /etc/hosts(5) file
11.1.4.3. Create the /etc/resolv.conf file
11.1.5. PPP and static IP addresses
11.1.6. PPP and Dynamic IP configuration
11.1.7. Final system configuration
11.2. Setting up kernel PPP
11.2.1. Working as a PPP client
11.2.2. Working as a PPP server
11.3. Setting up a SLIP client
11.3.1. Things you have to do only once
11.3.2. Making a SLIP connection
11.3.3. How to shutdown the connection
11.3.4. Troubleshooting
11.4. Setting up a SLIP server
11.4.1. Prerequisites
11.4.2. Quick Overview
11.4.2.1. An Example of a SLIP Server Login
11.4.3. Kernel Configuration
11.4.4. Sliplogin Configuration
11.4.4.1. slip.hosts Configuration
11.4.4.2. slip.login Configuration
11.4.4.3. slip.logout Configuration
11.4.5. Routing Considerations
11.4.5.1. Static Routes
11.4.5.2. Running gated
11.4.6. Acknowledgements
12. Advanced networking
12.1. Gateways and routes
12.1.1. An example
12.1.2. Default routes
12.1.3. Dual homed hosts
12.1.4. Routing propogation
12.1.5. Troubleshooting
12.2. NFS
12.3. Diskless operation
12.3.1. Setup Instructions
12.3.2. Using Shared / and /usr filesystems
12.3.3. Compiling netboot for specific setups
12.4. * Yellow Pages/NIS
12.5. * ISDN
13. * Mail
14. Staying current with FreeBSD
14.1. What is FreeBSD-current?
14.2. Who needs FreeBSD-current?
14.3. What is FreeBSD-current NOT?
14.4. Using FreeBSD-current
14.5. CTM
14.5.1. Why should I use CTM?
14.5.2. What do I need to use CTM?
14.5.3. Starting off with CTM for the first time
14.5.4. Using CTM in your daily life
14.5.5. Future plans for CTM
14.5.6. Miscellaneous stuff
14.5.7. Thanks!
14.6. SUP
14.6.1. Getting setup
14.6.2. Description of FreeBSD SUP distributions
15. Kernel Debugging
15.1. Debugging a kernel crash dump with kgdb
15.2. Post-mortem analysis of a dump
15.3. On-line kernel debugging using DDB
15.4. Debugging a console driver
16. Troubleshooting
16.1. Hardware conflict or misconfiguration
16.2. When I boot for the first time, it still looks for
17. Contributing to FreeBSD
17.1. What's needed
17.1.1. Urgently needed
17.1.2. Not urgently needed
17.1.3. Would be nice to have
17.2. How to contribute
17.2.1. Bug reports and general commentary
17.2.2. Changes to the documentation
17.2.3. Changes to existing source code
17.2.4. Contributions of new code
17.2.5. Porting an existing piece of free software
17.2.5.1. Before Starting the Port
17.2.5.2. Quick Porting
Writing the Makefile
Writing the description files
COMMENT
DESCR
PLIST
Creating the checksum file
Testing the port
Submitting the port
17.2.5.3. Slow Porting
How things work
Getting the original sources
Modifying the port
Patching
Configuring
Handling user input
17.2.5.4. Configuring the Makefile
The original source
DISTNAME
CATEGORIES and KEYWORDS
MASTER_SITES
PATCHFILES
MAINTAINER
Dependencies
LIB_DEPENDS
RUN_DEPENDS
BUILD_DEPENDS
FETCH_DEPENDS
DEPENDS
Building mechanisms
NO_INSTALL_MANPAGES
17.2.5.5. Licensing Problems
17.2.5.6. * Upgrading
17.2.5.7. Do's and Dont's
WRKDIR
Package information
Compress manpages, strip binaries
Custom utilities
Feedback
RCS strings
Recursive diff
PREFIX
Subdirectories
ldconfig
If you are stuck....
17.2.5.8. A Sample Makefile
17.2.5.9. Package Names
17.2.5.10. That's It, Folks!
17.2.6. Contributions of money, hardware or Internet access
17.2.6.1. Donating funds
17.2.6.2. Donating hardware
17.2.6.3. Donating internet access
18. Obtaining FreeBSD
19. Bibliography
19.1. Users' guides
19.2. Administrators' guides
19.3. Programmers' guides
19.4. Hardware reference
19.5. Magazines and journals
20. Resources on the Internet
20.1. Mailing lists
20.1.1. List summary
20.1.2. How to subscribe
20.1.3. List charters
20.2. Usenet newsgroups
20.2.1. BSD specific newsgroups
20.2.2. Other Unix newsgroups of interest
20.2.3. X-Window system
20.3. World Wide Web servers
21. Assorted technical topics
21.1. The FreeBSD Booting Process
21.1.1. Loading a kernel
21.1.2. Determine the root filesystem
21.1.3. Initialize user-land things
21.1.4. Interesting combinations
21.2. PC memory utilization
21.3. DMA: What it is and how it works
21.3.1. A Sample DMA transfer
21.3.2. DMA Page Registers and 16Meg address space limitations
21.3.3. DMA Operational Modes and Settings
21.3.4. Programming the DMA
21.3.5. DMA Port Map
21.3.5.1. 0x00 - 0x1f DMA Controller #1 (Channels 0, 1, 2 and 3)
21.3.5.2. 0xc0 - 0xdf DMA Controller #2 (Channels 4, 5, 6 and 7)
21.3.5.3. 0x80 - 0x9f DMA Page Registers
22. FreeBSD contributor list
22.1. Derived software contributors
22.2. Hardware contributors
22.3. The FreeBSD core team
22.4. Who is responsible for what
22.5. Additional FreeBSD contributors
22.6. 386BSD Patch kit patch contributors