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