The NetBSD Guide

The NetBSD Developers

All brand and product names used in this guide are or may be trademarks or registered trademarks of their respective owners.

NetBSD® is a registered trademark of The NetBSD Foundation, Inc.

Published: 2008/02/19 18:52:52

$NetBSD: index.html,v 1.21 2008/02/20 11:57:04 weinem Exp $


Table of Contents

Purpose of this guide
I. About NetBSD
1. What is NetBSD?
1.1. The story of NetBSD
1.2. NetBSD features
1.3. Supported platforms
1.4. NetBSD's target users
1.5. Applications for NetBSD
1.6. The philosophy of NetBSD
1.7. How to get NetBSD
II. System installation and related issues
2. Installing NetBSD: Preliminary considerations and preparations
2.1. Preliminary considerations
2.1.1. Dual booting
2.1.2. NetBSD on emulation and virtualization
2.2. Install preparations
2.2.1. The INSTALL* document
2.2.2. Hard disk geometries
2.2.3. Partitions
2.2.4. Hard disk space requirements
2.2.5. Network settings
2.2.6. Backup your data and operating systems!
2.2.7. Preparing the installation media
2.3. Checklist
3. Example installation
3.1. Introduction
3.2. The installation process
3.3. Keyboard layout
3.4. Starting the installation
3.5. MBR partitions
3.6. Disklabel partitions
3.7. Setting the disk name
3.8. Last chance!
3.9. The disk preparation process
3.10. Choosing the installation media
3.10.1. Installing from CD-ROM or DVD
3.10.2. Installing from an unmounted file system
3.10.3. Installing via FTP
3.10.4. Installing via NFS
3.11. Extracting sets
3.12. System configuration
3.13. Finishing the installation
4. Upgrading NetBSD
4.1. Overview
4.2. The INSTALL* document
4.3. Performing the upgrade
III. System configuration, administration and tuning
5. The first steps on NetBSD
5.1. Troubleshooting
5.1.1. Boot problems
5.1.2. Misconfiguration of /etc/rc.conf
5.2. The man command
5.3. Editing the configuration files
5.4. Login
5.5. Changing the root password
5.6. Adding users
5.7. Shadow passwords
5.8. Changing the keyboard layout
5.9. System time
5.10. Secure Shell (ssh(1))
5.11. Basic configuration in /etc/rc.conf
5.12. Basic network settings
5.13. Mounting a CD-ROM
5.14. Mounting a floppy
5.15. Installing additional software
5.16. Security alerts
5.17. Stopping and rebooting the system
6. Editing
6.1. Introducing vi
6.1.1. The vi interface
6.1.2. Switching to Edit Mode
6.1.3. Switching Modes & Saving Buffers to Files
6.1.4. Yanking and Putting
6.1.5. Navigation in the Buffer
6.1.6. Searching a File, the Alternate Navigational Aid
6.1.7. A Sample Session
6.2. Configuring vi
6.2.1. Extensions to .exrc
6.2.2. Documentation
6.3. Using tags with vi
7. rc.d System
7.1. The rc.d Configuration
7.2. The rc.d Scripts
7.3. The Role of rcorder and rc Scripts
7.4. Additional Reading
8. Console drivers
8.1. wscons
8.1.1. wsdisplay
8.1.2. wskbd
8.1.3. wsmouse
8.2. pccons
9. X
9.1. What is X?
9.2. Configuration
9.3. The mouse
9.4. The keyboard
9.5. The monitor
9.6. The video card
9.6.1. XFree 3.x
9.6.2. XFree86 4.x
9.7. Starting X
9.8. Customizing X
9.9. Other window managers
9.10. Graphical login with xdm
10. Linux emulation
10.1. Emulation setup
10.1.1. Configuring the kernel
10.1.2. Installing the Linux libraries
10.1.3. Installing Acrobat Reader
10.2. Directory structure
10.3. Emulating /proc
10.4. Using Linux browser plugins
10.5. Further reading
11. Audio
11.1. Basic hardware elements
11.2. BIOS settings
11.3. Configuring the audio device
11.4. Configuring the kernel audio devices
11.5. Advanced commands
11.5.1. audioctl(1)
11.5.2. mixerctl(1)
11.5.3. audioplay(1)
11.5.4. audiorecord(1)
12. Printing
12.1. Enabling the printer daemon
12.2. Configuring /etc/printcap
12.3. Configuring Ghostscript
12.4. Printer management commands
12.5. Remote printing
13. Using removable media
13.1. Initializing and using floppy disks
13.2. How to use a ZIP disk
13.3. Reading data CDs with NetBSD
13.4. Reading multi-session CDs with NetBSD
13.5. Allowing normal users to access CDs
13.6. Mounting an ISO image
13.7. Using video CDs with NetBSD
13.8. Using audio CDs with NetBSD
13.9. Creating an MP3 (MPEG layer 3) file from an audio CD
13.10. Using a CD-R writer with data CDs
13.11. Using a CD-R writer to create audio CDs
13.12. Creating an audio CD from MP3s
13.13. Copying an audio CD
13.14. Copying a data CD with two drives
13.15. Using CD-RW rewritables
13.16. DVD support
13.17. Creating ISO images from a CD
13.18. Getting volume information from CDs and ISO images
14. The cryptographic device driver (CGD)
14.1. Overview
14.1.1. Why use disk encryption?
14.1.2. Logical Disk Drivers
14.1.3. Availability
14.2. Components of the Crypto-Graphic Disk system
14.2.1. Kernel driver pseudo-device
14.2.2. Ciphers
14.2.3. Verification Methods
14.3. Example: encrypting your disk
14.3.1. Preparing the disk
14.3.2. Scrubbing the disk
14.3.3. Creating the cgd
14.3.4. Modifying configuration files
14.3.5. Restoring data
14.4. Example: encrypted CDs/DVDs
14.4.1. Introduction
14.4.2. Creating an encrypted CD/DVD
14.4.3. Using an encrypted CD/DVD
14.5. Suggestions and Warnings
14.5.1. Using a random-key cgd for swap
14.5.2. Warnings
14.6. Further Reading
15. Concatenated Disk Device (CCD) configuration
15.1. Install physical media
15.2. Configure Kernel Support
15.3. Disklabel each volume member of the CCD
15.4. Configure the CCD
15.5. Initialize the CCD device
15.6. Create a 4.2BSD/UFS filesystem on the new CCD device
15.7. Mount the filesystem
16. NetBSD RAIDframe
16.1. RAIDframe Introduction
16.1.1. About RAIDframe
16.1.2. A warning about Data Integrity, Backups, and High Availability
16.1.3. Getting Help
16.2. Setup RAIDframe Support
16.2.1. Kernel Support
16.2.2. Power Redundancy and Disk Caching
16.3. Example: RAID-1 Root Disk
16.3.1. Pseudo-Process Outline
16.3.2. Hardware Review
16.3.3. Initial Install on Disk0/wd0
16.3.4. Preparing Disk1/wd1
16.3.5. Initializing the RAID Device
16.3.6. Setting up Filesystems
16.3.7. Setting up kernel dumps
16.3.8. Migrating System to RAID
16.3.9. The first boot with RAID
16.3.10. Adding Disk0/wd0 to RAID
16.3.11. Testing Boot Blocks
16.4. Testing kernel dumps
17. Pluggable Authentication Modules (PAM)
17.1. About
17.2. Introduction
17.3. Terms and conventions
17.3.1. Definitions
17.3.2. Usage examples
17.4. PAM Essentials
17.4.1. Facilities and primitives
17.4.2. Modules
17.4.3. Chains and policies
17.4.4. Transactions
17.5. PAM Configuration
17.5.1. PAM policy files
17.5.2. Breakdown of a configuration line
17.5.3. Policies
17.6. PAM modules
17.6.1. Common Modules
17.6.2. FreeBSD-specific PAM Modules
17.6.3. NetBSD-specific PAM Modules
17.7. PAM Application Programming
17.8. PAM Module Programming
17.9. Sample PAM Application
17.10. Sample PAM Module
17.11. Sample PAM Conversation Function
17.12. Further Reading
18. Tuning NetBSD
18.1. Introduction
18.1.1. Overview
18.2. Tuning Considerations
18.2.1. General System Configuration
18.2.2. System Services
18.2.3. The NetBSD Kernel
18.3. Visual Monitoring Tools
18.3.1. The top Process Monitor
18.3.2. The sysstat utility
18.4. Monitoring Tools
18.4.1. fstat
18.4.2. iostat
18.4.3. ps
18.4.4. vmstat
18.5. Network Tools
18.5.1. ping
18.5.2. traceroute
18.5.3. netstat
18.5.4. tcpdump
18.6. Accounting
18.6.1. Accounting
18.6.2. Reading Accounting Information
18.6.3. How to Put Accounting to Use
18.7. Kernel Profiling
18.7.1. Getting Started
18.7.2. Interpretation of kgmon Output
18.7.3. Putting it to Use
18.7.4. Summary
18.8. System Tuning
18.8.1. Using sysctl
18.8.2. memfs & softdeps
18.8.3. LFS
18.9. Kernel Tuning
18.9.1. Preparing to Recompile a Kernel
18.9.2. Configuring the Kernel
18.9.3. Building the New Kernel
18.9.4. Shrinking the NetBSD kernel
19. NetBSD Veriexec subsystem
19.1. How it works
19.2. Signatures file
19.3. Generating fingerprints
19.4. Strict levels
19.5. Veriexec and layered file systems
19.6. Kernel configuration
20. Bluetooth on NetBSD
20.1. Introduction
20.2. Supported Hardware
20.3. System Configuration
20.4. Human Interface Devices
20.4.1. Mice
20.4.2. Keyboards
20.5. Serial Connections
20.6. Audio
20.6.1. SCO Audio Headsets
20.6.2. SCO Audio Handsfree
20.7. Object Exchange
20.8. Troubleshooting
21. Miscellaneous operations
21.1. Installing the boot manager
21.2. Deleting the disklabel
21.3. Speaker
21.4. Forgot root password?
21.5. Adding a new hard disk
21.6. Password file is busy?
21.7. How to rebuild the devices in /dev
IV. Networking and related issues
22. Introduction to TCP/IP Networking
22.1. Audience
22.2. Supported Networking Protocols
22.3. Supported Media
22.3.1. Serial Line
22.3.2. Ethernet
22.4. TCP/IP Address Format
22.5. Subnetting and Routing
22.6. Name Service Concepts
22.6.1. /etc/hosts
22.6.2. Domain Name Service (DNS)
22.6.3. Network Information Service (NIS/YP)
22.6.4. Other
22.7. Next generation Internet protocol - IPv6
22.7.1. The Future of the Internet
22.7.2. What good is IPv6?
22.7.3. Changes to IPv4
23. Setting up TCP/IP on NetBSD in practice
23.1. A walk through the kernel configuration
23.2. Overview of the network configuration files
23.3. Connecting to the Internet with a modem
23.3.1. Getting the connection information
23.3.2. resolv.conf and nsswitch.conf
23.3.3. Creating the directories for pppd
23.3.4. Connection script and chat file
23.3.5. Authentication
23.3.6. pppd options
23.3.7. Testing the modem
23.3.8. Activating the link
23.3.9. Using a script for connection and disconnection
23.3.10. Running commands after dialin
23.4. Creating a small home network
23.5. Setting up an Internet gateway with IPNAT
23.5.1. Configuring the gateway/firewall
23.5.2. Configuring the clients
23.5.3. Some useful commands
23.6. Setting up a network bridge device
23.6.1. Bridge example
23.7. A common LAN setup
23.8. Connecting two PCs through a serial line
23.8.1. Connecting NetBSD with BSD or Linux
23.8.2. Connecting NetBSD and Windows NT
23.8.3. Connecting NetBSD and Windows 95
23.9. IPv6 Connectivity & Transition via 6to4
23.9.1. Getting 6to4 IPv6 up & running
23.9.2. Obtaining IPv6 Address Space for 6to4
23.9.3. How to get connected
23.9.4. Security Considerations
23.9.5. Data Needed for 6to4 Setup
23.9.6. Kernel Preparation
23.9.7. 6to4 Setup
23.9.8. Quickstart using pkgsrc/net/hf6to4
23.9.9. Known 6to4 Relay Routers
23.9.10. Tunneling 6to4 through an IPFilter firewall
23.9.11. Conclusion & Further Reading
24. The Internet Super Server inetd
24.1. Overview
24.2. What is inetd?
24.3. Configuring inetd - /etc/inetd.conf
24.4. Services - /etc/services
24.5. Protocols - /etc/protocols
24.6. Remote Procedure Calls (RPC) - /etc/rpc
24.7. Allowing and denying hosts - /etc/hosts.{allow,deny}
24.8. Adding a Service
24.9. When to use or not to use inetd
24.10. Other Resources
25. The Domain Name System
25.1. DNS Background and Concepts
25.1.1. Naming Services
25.1.2. The DNS namespace
25.1.3. Resource Records
25.1.4. Delegation
25.1.5. Delegation to multiple servers
25.1.6. Secondaries, Caching, and the SOA record
25.1.7. Name Resolution
25.1.8. Reverse Resolution
25.2. The DNS Files
25.2.1. /etc/namedb/named.conf
25.2.2. /etc/namedb/localhost
25.2.3. /etc/namedb/zone.127.0.0
25.2.4. /etc/namedb/diverge.org
25.2.5. /etc/namedb/1.168.192
25.2.6. /etc/namedb/root.cache
25.3. Using DNS
25.4. Setting up a caching only name server
25.4.1. Testing the server
26. Mail and news
26.1. postfix
26.1.1. Configuration of generic mapping
26.1.2. Testing the configuration
26.1.3. Using an alternative MTA
26.2. fetchmail
26.3. Reading and writing mail with mutt
26.4. Strategy for receiving mail
26.5. Strategy for sending mail
26.6. Advanced mail tools
26.7. News with tin
27. Introduction to the Common Address Redundancy Protocol (CARP)
27.1. CARP Operation
27.2. Configuring CARP
27.3. Enabling CARP Support
27.4. CARP Example
27.5. Advanced CARP configuration
27.6. Forcing Failover of the Master
28. Network services
28.1. The Network File System (NFS)
28.1.1. NFS setup example
28.1.2. Setting up NFS automounting for /net with amd(8)
28.2. The Network Time Protocol (NTP)
V. Building the system
29. Obtaining the sources
29.1. Preparing directories
29.2. Terminology
29.3. Downloading tarballs
29.3.1. Downloading sources for a NetBSD release
29.3.2. Downloading sources for a NetBSD stable branch
29.3.3. Downloading sources for a NetBSD-current development branch
29.4. Fetching by CVS
29.4.1. Fetching a NetBSD release
29.4.2. Fetching a NetBSD stable branch
29.4.3. Fetching the NetBSD-current development branch
29.4.4. Saving some cvs(1) options
29.5. Sources on CD (ISO)
30. Crosscompiling NetBSD with build.sh
30.1. Building the crosscompiler
30.2. Configuring the kernel manually
30.3. Crosscompiling the kernel manually
30.4. Crosscompiling the kernel with build.sh
30.5. Crosscompiling the userland
30.6. Crosscompiling the X Window System
30.7. Changing build behaviour
30.7.1. Changing the Destination Directory
30.7.2. Static Builds
30.7.3. Using build.sh options
30.7.4. make(1) variables used during build
31. Compiling the kernel
31.1. Requirements and procedure
31.2. Installing the kernel sources
31.3. Creating the kernel configuration file
31.4. Building the kernel manually
31.4.1. Configuring the kernel manually
31.4.2. Generating dependencies and recompiling manually
31.5. Building the kernel using build.sh
31.6. Installing the new kernel
31.7. If something went wrong
32. Updating an existing system from sources
32.1. The updating procedure
32.1.1. Building a new userland
32.1.2. Building a new kernel
32.1.3. Installing the kernel and userland
32.1.4. Updating the system configuration files
32.1.5. Summary
32.1.6. Alternative: using sysinst
32.2. More details about the updating of configuration and startup files
32.2.1. Using etcupdate with source files
32.2.2. Using etcupdate with binary distribution sets
32.2.3. Using etcmanage instead of etcupdate
33. Building NetBSD installation media
33.1. Creating custom install or boot floppies for your architecture e.g. i386
33.2. Creating a custom install or boot CD with build.sh
A. Information
A.1. Where to get this document
A.2. Guide history
B. Contributing to the NetBSD guide
B.1. Translating the guide
B.1.1. What you need to start a translation
B.1.2. Writing XML/DocBook
B.2. Sending contributions
B.3. XML/DocBook template
C. Getting started with XML/DocBook
C.1. What is XML/DocBook
C.2. Installing the necessary tools
C.3. Using the tools
C.4. Language-specific notes
C.4.1. Enabling hyphenation for the Italian language
C.5. Links
D. Acknowledgements
D.1. Original acknowledgements
D.2. Current acknowledgements
D.3. Licenses
D.3.1. Federico Lupi's original license of this guide
D.3.2. Networks Associates Technology's license on the PAM article
D.3.3. Joel Knight's license on the CARP article
E. Bibliography
Bibliography

List of Figures

2.1. Partitions
3.1. Selecting the language
3.2. Selecting a keyboard type
3.3. The sysinst main menu
3.4. Confirming to install NetBSD
3.5. Choosing a hard disk
3.6. Full or custom installation
3.7. Selecting distribution sets
3.8. Choosing the partitioning scheme
3.9. fdisk
3.10. Partition options
3.11. Installing the boot selector
3.12. Editing partitions?
3.13. Setting partition sizes
3.14. The disklabel editor
3.15. Disklabel partition editing
3.16. Naming the NetBSD disk
3.17. Last chance to abort
3.18. Selecting a bootblock
3.19. Choosing the verbosity of the extraction process
3.20. Installation media
3.21. CD-ROM/DVD installation
3.22. Mounting a file system
3.23. Mounting a partition
3.24. Accessing a MSDOS file system
3.25. Which network interface to configure
3.26. Using DHCP for network configuration
3.27. Entering and configuring network data
3.28. Confirming network parameters
3.29. Defining the FTP settings
3.30. Saving the network settings
3.31. NFS install screen
3.32. NFS example
3.33. Extraction of sets completed
3.34. Selecting the system's time zone
3.35. Selecting a password encryption scheme
3.36. Setting root password?
3.37. Setting root password
3.38. Choosing a shell
3.39. Installation completed
3.40. Reboot to finish installation
4.1. Starting the upgrade
4.2. Continuing the upgrade
4.3. Choosing the hard drive
4.4. Choosing the distribution filesets
4.5. Upgrade process - verbosity level
4.6. File system check
4.7. Choosing bootblocks
4.8. Install medium
4.9. Upgrade completed
16.1. RAID-1 Disk Logical Layout
16.2. Perform generic install onto Disk0/wd0
16.3. Setup RAID Set
16.4. Reboot using Disk1/wd1 of RAID
16.5. Mirror Disk1/wd1 back to Disk0/wd0
16.6. Award BIOS i386 Boot Disk1/wd1
16.7. Award BIOS i386 Boot Disk0/wd0
22.1. IPv4-addresses are divided into more significant network- and less significant hostbits
22.2. Our demo-network
22.3. Attaching one subnet to another one
22.4. IPv6-addresses are divided into more significant network- and less significant hostbits, too
22.5. IPv6-addresses have a similar structure to class B addresses
22.6. Several interfaces attached to a link result in only one scope ID for the link
23.1. Network with gateway
23.2. A frequently used method for transition is tunneling IPv6 in IPv4 packets
23.3. 6to4 derives an IPv6 from an IPv4 address
23.4. Request and reply can be routed via different gateways in 6to4
23.5. Enabling packet forwarding is needed for a 6to4 router
26.1. Structure of the mail system

List of Tables

17.1. PAM chain execution summary
19.1. Veriexec fingerprints tools
19.2. Veriexec access type aliases

List of Examples

12.1. /etc/printcap
12.2. /usr/local/libexec/lpfilter
12.3. /etc/printcap
12.4. /usr/local/libexec/lpfilter-ps
23.1. resolv.conf
23.2. nsswitch.conf
23.3. Connection script
23.4. Chat file
23.5. Chat file with login
23.6. /etc/ppp/options
23.7. ppp-start
23.8. ppp-stop
23.9. /etc/hosts
25.1. strider's /etc/hosts file
25.2. localhost
29.1. .cvsrc