The NetBSD Guide

The NetBSD Developers

Published: 2005/04/25 22:53:23

$NetBSD: index.html,v 1.74 2005/07/12 16:59:07 hubertf 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
2. New features in NetBSD 2.0
2.1. What's new in NetBSD 2.0?
2.1.1. Native threads
2.1.2. Kernel events notification framework - kqueue
2.1.3. systrace
2.1.4. UFSv2
2.1.5. Java support
2.1.6. Verified Exec
2.1.7. Cryptographic disk driver
2.1.8. Non-executable stack and heap
2.1.9. New toolchain
2.1.10. Scalability improvements
2.2. New ports and enhancements to existing ports
2.2.1. amd64 - AMD Opteron
2.2.2. evbsh5 - Hitachi Super-H 5 based evaluation boards
2.2.3. i386 - PC hardware from i386 to Pentium IV
2.2.4. macppc - PowerPC based Macs
2.2.5. sparc - Sun hardware and clones
2.3. pkgsrc - The NetBSD Packages Collection
II. System installation and related issues
3. Installation
3.1. Documentation
3.2. The layout of a NetBSD installation
3.3. Installation
3.3.1. Keyboard
3.3.2. Geometries
3.3.3. Partitions
3.3.4. Hard disk space requirements
3.3.5. Retry
4. Example Installation
4.1. Introduction
4.2. Preparing the installation
4.3. Creating the installation floppy
4.4. Last preparatory steps
4.5. Beginning the installation
4.6. Partitions
4.7. Disklabel
4.8. Creating a disklabel
4.9. The disk preparation process
4.10. Choosing the installation media
4.11. Installing from CD-ROM and DVD
4.12. Installing via FTP
4.13. Extracting sets
4.14. System configuration
5. The first boot
5.1. If something went wrong
5.2. Login
5.3. Changing the keyboard layout
5.4. The man command
5.5. Changing the root password
5.6. Changing the shell
5.7. System time
5.8. Basic configuration in /etc/rc.conf
5.9. Enabling FFS soft-dependencies
5.10. Rebooting the system
6. The second boot
6.1. dmesg
6.2. Mounting the CD-ROM
6.3. Mounting the floppy
6.4. Accessing a DOS/Windows partition
6.5. Adding users
6.6. Shadow passwords
6.7. Stopping and rebooting the system
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
III. System configuration, administration and tuning
8. Editing
8.1. Introducing vi
8.1.1. The vi interface
8.1.2. Switching to Edit Mode
8.1.3. Switching Modes & Saving Buffers to Files
8.1.4. Yanking and Putting
8.1.5. Navigation in the Buffer
8.1.6. Searching a File, the Alternate Navigational Aid
8.1.7. A Sample Session
8.2. Configuring vi
8.2.1. Extensions to .exrc
8.2.2. Documentation
8.3. Using tags with vi
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
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 multisession 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. Migrating System to RAID
16.3.8. The first boot with RAID
16.3.9. Adding Disk0/wd0 to RAID
16.3.10. Testing Boot Blocks
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.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. Miscellaneous operations
19.1. Creating a custom install/boot floppies for i386
19.2. Synchronizing the system clock with NTP
19.3. Installing the boot manager
19.4. Deleting the disklabel
19.5. Speaker
19.6. Forgot root password?
19.7. Adding a new hard disk
19.8. Password file is busy?
19.9. How to rebuild the devices in /dev
IV. Networking and related issues
20. Introduction to TCP/IP Networking
20.1. Audience
20.2. Supported Networking Protocols
20.3. Supported Media
20.3.1. Serial Line
20.3.2. Ethernet
20.4. TCP/IP Address Format
20.5. Subnetting and Routing
20.6. Name Service Concepts
20.6.1. /etc/hosts
20.6.2. Domain Name Service (DNS)
20.6.3. Network Information Service (NIS/YP)
20.6.4. Other
20.7. Next generation Internet protocol - IPv6
20.7.1. The Future of the Internet
20.7.2. What good is IPv6?
20.7.3. Changes to IPv4
21. Setting up TCP/IP on NetBSD in practice
21.1. A walk through the kernel configuration
21.2. Overview of the network configuration files
21.3. Connecting to the Internet with a modem
21.3.1. Getting the connection information
21.3.2. resolv.conf and nsswitch.conf
21.3.3. Creating the directories for pppd
21.3.4. Connection script and chat file
21.3.5. Authentication
21.3.6. pppd options
21.3.7. Testing the modem
21.3.8. Activating the link
21.3.9. Using a script for connection and disconnection
21.3.10. Running commands after dialin
21.4. Creating a small home network
21.5. Setting up an Internet gateway with IPNAT
21.5.1. Configuring the gateway/firewall
21.5.2. Configuring the clients
21.5.3. Some useful commands
21.6. A common LAN setup
21.7. Connecting two PCs through a serial line
21.7.1. Connecting NetBSD with BSD or Linux
21.7.2. Connecting NetBSD and Windows NT
21.7.3. Connecting NetBSD and Windows 95
22. The Internet Super Server inetd
22.1. Overview
22.2. What is inetd?
22.3. Configuring inetd - /etc/inetd.conf
22.4. Services - /etc/services
22.5. Protocols - /etc/protocols
22.6. Remote Procedure Calls (RPC) - /etc/rpc
22.7. Allowing and denying hosts - /etc/hosts.{allow,deny}
22.8. Adding a Service
22.9. When to use or not to use inetd
22.10. Other Resources
23. The Domain Name System
23.1. DNS Background and Concepts
23.1.1. Naming Services
23.1.2. The DNS namespace
23.1.3. Resource Records
23.1.4. Delegation
23.1.5. Delegation to multiple servers
23.1.6. Secondaries, Caching, and the SOA record
23.1.7. Name Resolution
23.1.8. Reverse Resolution
23.2. The DNS Files
23.2.1. /etc/namedb/named.conf
23.2.2. /etc/namedb/localhost
23.2.3. /etc/namedb/zone.127.0.0
23.2.4. /etc/namedb/diverge.org
23.2.5. /etc/namedb/1.168.192
23.2.6. /etc/namedb/root.cache
23.3. Using DNS
23.4. Setting up a caching only name server
23.4.1. Testing the server
24. Mail and news
24.1. sendmail
24.1.1. Configuration with genericstable
24.1.2. Testing the configuration
24.1.3. Using an alternative MTA
24.2. fetchmail
24.3. Reading and writing mail with mutt
24.4. Strategy for receiving mail
24.5. Strategy for sending mail
24.6. Advanced mail tools
24.7. News with tin
25. Miscellaneous networking topics
25.1. Bridge
25.1.1. Bridge example
25.2. Network File System (NFS)
25.2.1. NFS setup example
25.3. Setting up NFS automounting for /net with amd(8)
25.3.1. Introduction
25.3.2. Actual setup
25.4. IPv6 Connectivity & Transition via 6to4
25.4.1. Getting 6to4 IPv6 up & running
25.4.2. Obtaining IPv6 Address Space for 6to4
25.4.3. How to get connected
25.4.4. Security Considerations
25.4.5. Data Needed for 6to4 Setup
25.4.6. Kernel Preparation
25.4.7. 6to4 Setup
25.4.8. Quickstart using pkgsrc/net/hf6to4
25.4.9. Known 6to4 Gateway
25.4.10. Tunneling 6to4 through an IPFilter firewall
25.4.11. Conclusion & Further Reading
V. Building the system
26. Obtaining sources by CVS
26.1. Getting CVS
26.2. Preparing directories
26.3. Fetching userland and kernel sources
26.4. Fetching pkgsrc
26.5. Saving some cvs options
27. Crosscompiling NetBSD with build.sh
27.1. Building the crosscompiler
27.2. Configuring the kernel manually
27.3. Crosscompiling the kernel manually
27.4. Crosscompiling the kernel with build.sh
27.5. Crosscompiling the userland
27.6. Crosscompiling the X Window System
27.7. Changing build behaviour
27.7.1. Changing the Destination Directory
27.7.2. Static Builds
27.7.3. Using build.sh options
27.7.4. make(1) variables used during build
28. Compiling the kernel
28.1. Installing the kernel sources
28.2. Requirements and procedure
28.3. Creating the kernel configuration file
28.4. Configuring the kernel manually
28.5. Generating dependencies and recompiling manually
28.6. Using build.sh
28.7. If something went wrong
29. Console drivers
29.1. wscons
29.1.1. Virtual consoles
29.1.2. 50 lines text mode with wscons
29.1.3. Keyboard mappings
29.1.4. Cut&paste on the console with wsmoused
29.1.5. Enable scrollback on the console
29.2. pccons
30. The package collection
30.1. Installing the package collection
30.2. Updating the package collection
30.3. Example: installing a program from source
30.3.1. Downloading the sources
30.3.2. Compiling and installing
30.4. Example: installing a binary package
30.5. Package management commands
30.6. Quick Start Packaging Guide
30.6.1. Tools
30.6.2. Getting Started
30.6.3. Filling in the Rest
30.6.4. Checking with pkglint
30.6.5. Running and Checking Build/Installs
30.6.6. Submitting a Package Using send-pr
30.6.7. Final Notes
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
E. Bibliography
Bibliography

List of Figures

3.1. Partitions
4.1. Selecting the language
4.2. The main menu of the installation program
4.3. Confirming you want to install NetBSD
4.4. Choosing a hard disk
4.5. Full or custom installation
4.6. Selecting distribution sets
4.7. Choosing the partitioning scheme
4.8. Choosing a unit of measure
4.9. fdisk
4.10. Partition options
4.11. Installing the boot selector
4.12. Choosing if partitions should be edited
4.13. Setting partition sizes
4.14. The disklabel editor
4.15. The disklabel editor
4.16. Naming the NetBSD disk
4.17. Last chance before hitting the disk
4.18. Creating the filesystems
4.19. Selecting a bootblock
4.20. Choosing the verbosity of the extraction process
4.21. Installation media
4.22. CD-ROM/DVD installation
4.23. Which network interface to configure
4.24. Choosing network media options
4.25. Using DHCP for network configuration
4.26. Entering and configuring network data
4.27. Confirming network parameters
4.28. Which directory to use for downloading
4.29. Defining the set's source place
4.30. An error happened during download
4.31. Downloading installation sets
4.32. Extracting set files
4.33. Deleting sets after extraction?
4.34. Set extraction completed
4.35. Selecting your system's time zone
4.36. Selecting a password encryption scheme
4.37. Setting the root password now or later?
4.38. Setting the root password
4.39. Choosing a shell for the root account
4.40. Congratulations
4.41. Reboot the system to finish installation
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
20.1. IPv4-addresses are divided into more significant network- and less significant hostbits
20.2. Our demo-network
20.3. Attaching one subnet to another one
20.4. IPv6-addresses are divided into more significant network- and less significant hostbits, too
20.5. IPv6-addresses have a similar structure to class B addresses
20.6. Several interfaces attached to a link result in only one scope ID for the link
21.1. Network with gateway
24.1. Structure of the mail system
25.1. A frequently used method for transition is tunneling IPv6 in IPv4 packets
25.2. 6to4 derives an IPv6 from an IPv4 address
25.3. Request and reply can be routed via different gateways in 6to4
25.4. Enabling packet forwarding is needed for a 6to4 router

List of Tables

16.1. Example i386 Hardware Quick Reference
17.1. PAM chain execution summary

List of Examples

12.1. /etc/printcap
12.2. /usr/local/libexec/lpfilter
12.3. /etc/printcap
12.4. /usr/local/libexec/lpfilter-ps
21.1. resolv.conf
21.2. nsswitch.conf
21.3. Connection script
21.4. Chat file
21.5. Chat file with login
21.6. /etc/ppp/options
21.7. ppp-start
21.8. ppp-stop
21.9. /etc/hosts
23.1. strider's /etc/hosts file
23.2. localhost
26.1. .cvsrc