--- chapter.sgml Thu Aug 19 16:05:42 2004
+++ new.chapter.sgml Thu Aug 26 22:41:06 2004
@@ -153,8 +153,8 @@
potentially be ported. Notice the logical organization of the
directory structure, with each supported device, file system, and
option in its own subdirectory. &os; 5.X and up has support for
- <filename>sparc64</filename>, and a few other architectures under
- development.</para>
+ <filename>sparc64</filename>, <filename>amd64</filename>,
+ <filename>ia64</filename> and <filename>powerpc</filename>.</para>
<note>
<para>If there is <emphasis>not</emphasis> a
@@ -426,19 +426,39 @@
some related keywords have been grouped together in a single section
(such as Networking) even though they are actually scattered
throughout the <filename>GENERIC</filename> file. <anchor
- id="kernelconfig-options"> An exhaustive list of options and more
- detailed explanations of the device lines is present in the
- <filename>LINT</filename> configuration file, located in the same
- directory as <filename>GENERIC</filename>. If you are in doubt as
- to the purpose or necessity of a line, check first in
- <filename>LINT</filename>.</para>
-
- <note><para>In &os; 5.X and above the <filename>LINT</filename> is
- non-existent. See the <filename>NOTES</filename> file for
- architecture dependent options. Some options, mainly
- architecture independent ones, are stored in the
- <filename>/usr/src/sys/conf/NOTES</filename> file. It is
- advisable to review the options in here also.</para></note>
+ id="kernelconfig-options"> For an exhaustive list of architecture
+ dependent options and devices, see the <filename>NOTES</filename>
+ file in the same directory as <filename>GENERIC</filename>. For
+ architecure independent options, see
+ <filename>/usr/src/sys/conf/NOTES</filename>.</para>
+
+ <note>
+ <para><filename>NOTES</filename> does not exist in &os; 4.X.
+ Instead, see the <filename>LINT</filename> file for detailed
+ explanations of options and devices in <filename>GENERIC</filename>.
+ <filename>LINT</filename> served two purposes in 4.X: to provide a
+ reference for choosing kernel options when building a custom
+ kernel, and to provide a kernel configuration with as many
+ tweakable options tweaked to non-default values as possible. The
+ reason behind this was that such a configuration helped (and still
+ does) a lot when testing new code and changes to existing code that
+ may cause conflicts with other parts of the kernel. However, when
+ the kernel configuration framework went through some heavy changes
+ in 5.X, including that the driver configuration options were moved
+ to a <literal>hints</literal> file so that they could be changed
+ and loaded dynamically at boot time, <filename>LINT</filename>
+ could not contain those hints anymore. Because of this and other
+ reasons, the <filename>LINT</filename> file were renamed to
+ <filename>NOTES</filename> and retained mostly the first reason for
+ its existence: documenting the available options for user
+ convenience.</para>
+
+ <para>In 5.X and newer you can still generate a buildable
+ <filename>LINT</filename> file by typing:</para>
+
+ <screen>&prompt.root; <userinput>cd /sys/i386/conf && make LINT</userinput>
+ </screen>
+ </note>
<indexterm>
<primary>kernel</primary>
@@ -449,8 +469,7 @@
configuration file with various additional comments where needed for
clarity. This example should match your copy in
<filename>/usr/src/sys/i386/conf/GENERIC</filename> fairly
- closely. For details of all the possible kernel options, see
- <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
+ closely.</para>
<programlisting>#
# GENERIC -- Generic kernel configuration file for &os;/i386
@@ -470,7 +489,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $</programlisting>
+# $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $</programlisting>
<para>The following are the mandatory keywords required in
<emphasis>every</emphasis> kernel you build:</para>
@@ -526,7 +545,7 @@
</listitem>
<listitem>
- <para>Roll your own release of FreeBSD which includes
+ <para>Roll your own release of &os; which includes
<literal>I386_CPU</literal> support in the kernels of the
installation CD-ROM.</para>
</listitem>
@@ -568,7 +587,7 @@
<para>The auto-tuning algorithm sets <literal>maxuser</literal> equal
to the amount of memory in the system, with a minimum of 32, and a
maximum of 384.</para></footnote>.
- In &os; 5.X, <literal>maxusers</literal> will default to
+ In &os; 5.X and above, <literal>maxusers</literal> will default to
<literal>0</literal> if not specified. If you are using an
version of &os; earlier than 4.5, or you want to manage it
yourself you will want to set
@@ -606,14 +625,14 @@
</note>
<programlisting># Floating point support - do not disable.
-device npx0 at nexus? port IO_NPX irq 13</programlisting>
+device npx0</programlisting>
<para><literal>npx0</literal> is the interface to the floating point
math unit in &os;, which is either the hardware co-processor or
the software math emulator. This is <emphasis>not</emphasis>
optional.</para>
- <programlisting># Pseudo devices - the number indicates how many units to allocate.
+ <programlisting># Pseudo devices
device loop # Network loopback</programlisting>
<para>This is the generic loopback device for TCP/IP. If you telnet
@@ -627,7 +646,7 @@
underneath or next to each option for more information.</para>
<programlisting>#To statically compile in device wiring instead of /boot/device.hints
-#hints "GENERIC.hints" #Default places to look for devices.</programlisting>
+#hints "GENERIC.hints" # Default places to look for devices.</programlisting>
<para>In &os; 5.X and newer versions the &man.device.hints.5; is
used to configure options of the device drivers. The default
@@ -640,7 +659,7 @@
<!-- XXX: Add a comment here that explains when compiling hints into the kernel is a good idea and why. -->
- <programlisting>#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols</programlisting>
+ <programlisting>#makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols</programlisting>
<para>The normal build process of the &os; does not include
debugging information when building the kernel and strips most
@@ -654,48 +673,30 @@
you are using the <quote>traditional</quote> way for building your kernels (See the <xref linkend="kernelconfig-building">
for more informations.).</para>
- <programlisting>options MATH_EMULATE #Support for x87 emulation</programlisting>
-
- <para>This line allows the kernel to simulate a math co-processor if
- your computer does not have one (386 or 486SX). If you have a
- 486DX, or a 386 or 486SX (with a separate 387 or 487 chip), or
- higher (&pentium;, &pentium; II, etc.), you can comment this line
- out.</para>
+ <programlisting>options SCHED_ULE # ULE scheduler</programlisting>
- <note>
- <para>The normal math co-processor emulation routines that come with
- &os; are <emphasis>not</emphasis> very accurate. If you do not
- have a math co-processor, and you need the best accuracy, it is
- recommended that you change this option to
- <literal>GPL_MATH_EMULATE</literal> to use the GNU math support,
- which is not included by default for licensing reasons.</para>
-
- <para>In &os; 5.X, math emulation is disabled by default,
- as older CPUs that do not have native floating point math support
- are far less common, and in many cases not supported by the
- <filename>GENERIC</filename> kernel without other additional options.</para></note>
+ <para>The new scheduler for &os; that has been designed for SMP, but
+ works just fine on UP systems too. As of &os; 5.2.1,
+ <literal>SCHED_ULE</literal> has replaced
+ <literal>SCHED_4BSD</literal>.</para>
- <programlisting>options INET #InterNETworking</programlisting>
+ <programlisting>options INET # InterNETworking</programlisting>
<para>Networking support. Leave this in, even if you do not plan to
be connected to a network. Most programs require at least loopback
networking (i.e., making network connections within your PC), so
this is essentially mandatory.</para>
- <programlisting>options INET6 #IPv6 communications protocols</programlisting>
+ <programlisting>options INET6 # IPv6 communications protocols</programlisting>
<para>This enables the IPv6 communication protocols.</para>
- <programlisting>options FFS #Berkeley Fast Filesystem
-options FFS_ROOT #FFS usable as root device [keep this!]</programlisting>
+ <programlisting>options FFS # Berkeley Fast Filesystem</programlisting>
<para>This is the basic hard drive Filesystem. Leave it in if you
boot from the hard disk.</para>
- <note><para>In &os; 5.X, <literal>FFS_ROOT</literal> is no longer
- required.</para></note>
-
- <programlisting>options UFS_ACL #Support for access control lists</programlisting>
+ <programlisting>options UFS_ACL # Support for access control lists</programlisting>
<para>This option, present only in &os; 5.X, enables kernel support
for access control lists. This relies on the use of extended
@@ -705,7 +706,7 @@
system, as this will remove the access control lists changing the
way files are protected in unpredictable ways.</para>
- <programlisting>options UFS_DIRHASH #Improve performance on big directories</programlisting>
+ <programlisting>options UFS_DIRHASH # Improve performance on big directories</programlisting>
<para>This option includes functionality to speed up disk
operations on large directories, at the expense of using
@@ -714,7 +715,7 @@
using &os; on a smaller system where memory is at a premium and
disk access speed is less important, such as a firewall.</para>
- <programlisting>options SOFTUPDATES #Enable FFS Soft Updates support</programlisting>
+ <programlisting>options SOFTUPDATES # Enable FFS Soft Updates support</programlisting>
<para>This option enables Soft Updates in the kernel, this will
help speed up write access on the disks. Even when this
@@ -726,29 +727,10 @@
filesystems) or &man.newfs.8; (for new filesystems)
commands.</para>
- <programlisting>options MFS #Memory Filesystem
-options MD_ROOT #MD is a potential root device</programlisting>
+ <programlisting>options MD_ROOT # MD is a potential root device</programlisting>
- <para>This is the memory-mapped Filesystem. This is basically a RAM
- disk for fast storage of temporary files, useful if you have a lot
- of swap space that you want to take advantage of. A perfect place
- to mount an MFS partition is on the <filename>/tmp</filename>
- directory, since many programs store temporary data here. To mount
- an MFS RAM disk on <filename>/tmp</filename>, add the following line
- to <filename>/etc/fstab</filename>:</para>
-
- <informalexample>
- <programlisting>/dev/ad1s2b /tmp mfs rw 0 0</programlisting>
- </informalexample>
-
- <para>Now you simply need to either reboot, or run the command
- <command>mount /tmp</command>.</para>
-
- <note><para>In &os; 5.X, &man.md.4;-backed UFS file systems are
- used for memory file systems rather than MFS. Information on
- configuring memory-backed file systems may be found in the manual pages
- for &man.mdconfig.8; and &man.mdmfs.8;, and in <xref linkend="disks-virtual">. As a result, the
- <literal>MFS</literal> option is no longer supported.</para></note>
+ <para>This option enables support for a memory backed virtual disk
+ usable as a root device.</para>
<indexterm>
<primary>kernel options</primary>
@@ -758,8 +740,9 @@
<primary>kernel options</primary>
<secondary>NFS_ROOT</secondary>
</indexterm>
- <programlisting>options NFS #Network Filesystem
-options NFS_ROOT #NFS usable as root device, NFS required</programlisting>
+ <programlisting>options NFSCLIENT # Network Filesystem Client
+options NFSSERVER # Network Filesystem Server
+options NFS_ROOT # NFS usable as /, requires NFSCLIENT</programlisting>
<para>The network Filesystem. Unless you plan to mount partitions
from a &unix; file server over TCP/IP, you can comment these
@@ -769,7 +752,7 @@
<primary>kernel options</primary>
<secondary>MSDOSFS</secondary>
</indexterm>
- <programlisting>options MSDOSFS #MSDOS Filesystem</programlisting>
+ <programlisting>options MSDOSFS # MSDOS Filesystem</programlisting>
<para>The &ms-dos; Filesystem. Unless you plan to mount a DOS formatted
hard drive partition at boot time, you can safely comment this out.
@@ -780,38 +763,42 @@
unmount them (and does not require <literal>MSDOSFS</literal> at
all).</para>
- <programlisting>options CD9660 #ISO 9660 Filesystem
-options CD9660_ROOT #CD-ROM usable as root, CD9660 required</programlisting>
+ <programlisting>options CD9660 # ISO 9660 Filesystem</programlisting>
<para>The ISO 9660 Filesystem for CDROMs. Comment it out if you do
not have a CDROM drive or only mount data CDs occasionally (since it
will be dynamically loaded the first time you mount a data CD).
Audio CDs do not need this Filesystem.</para>
- <programlisting>options PROCFS #Process filesystem</programlisting>
+ <programlisting>options PROCFS # Process filesystem</programlisting>
<para>The process filesystem. This is a <quote>pretend</quote>
filesystem mounted on <filename>/proc</filename> which allows
programs like &man.ps.1; to give you more information on what
- processes are running. In &os; 5.X, use of <literal>PROCFS</literal>
+ processes are running. In &os; 5.X and above, use of <literal>PROCFS</literal>
is not required under most circumstances, as most
debugging and monitoring tools have been adapted to run without
- <literal>PROCFS</literal>. In addition, 5.X-CURRENT kernels
+ <literal>PROCFS</literal>. In addition, 6.X-CURRENT kernels
making use of <literal>PROCFS</literal> must now also include
support for <literal>PSEUDOFS</literal>:</para>
- <programlisting>options PSEUDOFS #Pseudo-filesystem framework</programlisting>
+ <programlisting>options PSEUDOFS # Pseudo-filesystem framework</programlisting>
<para><literal>PSEUDOFS</literal> is not available in &os; 4.X.
Unlike in &os; 4.X, new installations of &os; 5.X will not mount
the process file system by default.</para>
- <programlisting>options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]</programlisting>
+ <programlisting>options GEOM_GPT # GUID Partition Tables.</programlisting>
+
+ <para>This option brings the ability to have a large number of
+ partitions on a single disk.</para>
+
+ <programlisting>options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]</programlisting>
<para>Compatibility with 4.3BSD. Leave this in; some programs will
act strangely if you comment this out.</para>
- <programlisting>options COMPAT_FREEBSD4 #Compatible with &os;4</programlisting>
+ <programlisting>options COMPAT_FREEBSD4 # Compatible with &os;4</programlisting>
<para>This option is required on &os; 5.X &i386; and Alpha systems
to support applications compiled on older versions of &os;
@@ -820,7 +807,7 @@
run older applications; platforms that gained support only in
5.X, such as ia64 and &sparc64;, do not require this option.</para>
- <programlisting>options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI</programlisting>
+ <programlisting>options SCSI_DELAY=15000 # Delay (in ms) before probing SCSI</programlisting>
<para>This causes the kernel to pause for 15 seconds before probing
each SCSI device in your system. If you only have IDE hard drives,
@@ -829,39 +816,12 @@
you do this, and &os; has trouble recognizing your SCSI devices,
you will have to raise it back up.</para>
- <programlisting>options UCONSOLE #Allow users to grab the console</programlisting>
-
- <para>Allow users to grab the console, which is useful for X users.
- For example, you can create a console <application>xterm</application>
- by typing <command>xterm
- -C</command>, which will display any &man.write.1;,
- &man.talk.1;, and any other messages you receive, as well
- as any console messages sent by the kernel.</para>
-
- <note><para>In &os; 5.X, <literal>UCONSOLE</literal> is no
- longer required.</para></note>
-
- <programlisting>options USERCONFIG #boot -c editor</programlisting>
-
- <para>This option allows you to boot the configuration editor from the
- boot menu.</para>
-
- <programlisting>options VISUAL_USERCONFIG #visual boot -c editor</programlisting>
-
- <para>This option allows you to boot the visual configuration editor
- from the boot menu.</para>
-
- <note><para>From &os; versions 5.0 and later, the <literal>USERCONFIG</literal> options has
- been deprecated in favor of the new &man.device.hints.5;
- method. For more information on &man.device.hints.5; please
- visit <xref linkend="device-hints">.</para></note>
-
- <programlisting>options KTRACE #ktrace(1) support</programlisting>
+ <programlisting>options KTRACE # ktrace(1) support</programlisting>
<para>This enables kernel process tracing, which is useful in
debugging.</para>
- <programlisting>options SYSVSHM #SYSV-style shared memory</programlisting>
+ <programlisting>options SYSVSHM # SYSV-style shared memory</programlisting>
<para>This option provides for System V shared memory. The most
common use of this is the XSHM extension in X, which many
@@ -869,12 +829,12 @@
extra speed. If you use X, you will definitely want to include
this.</para>
- <programlisting>options SYSVSEM #SYSV-style semaphores</programlisting>
+ <programlisting>options SYSVSEM # SYSV-style semaphores</programlisting>
<para>Support for System V semaphores. Less commonly used but only
adds a few hundred bytes to the kernel.</para>
- <programlisting>options SYSVMSG #SYSV-style message queues</programlisting>
+ <programlisting>options SYSVMSG # SYSV-style message queues</programlisting>
<para>Support for System V messages. Again, only adds a few hundred
bytes to the kernel.</para>
@@ -884,42 +844,42 @@
these System V facilities.</para>
</note>
- <programlisting>options P1003_1B #Posix P1003_1B real-time extensions
-options _KPOSIX_PRIORITY_SCHEDULING</programlisting>
+ <programlisting>options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions</programlisting>
<para>Real-time extensions added in the 1993 &posix;. Certain
applications in the ports collection use these
(such as <application>&staroffice;</application>).</para>
- <note><para>In &os; 5.X, all of this functionality is now
- provided by the <literal>_KPOSIX_PRIORITY_SCHEDULING</literal>
- option, and <literal>P1003_1B</literal> is no longer
- required.</para></note>
+ <programlisting>options KBD_INSTALL_CDEV # install a CDEV entry in /dev</programlisting>
- <indexterm>
- <primary>kernel options</primary>
- <secondary>ICMP_BANDLIM</secondary>
- </indexterm>
- <indexterm>
- <primary>Denial of Service (DoS)</primary>
- </indexterm>
- <programlisting>options ICMP_BANDLIM #Rate limit bad replies</programlisting>
+ <para>This option is related to the keyboard. It installs a CDEV entry
+ in <filename>/dev</filename>.</para>
+
+ <programlisting>options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
+ # output. Adds ~128k to driver.
+options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
+ # output. Adds ~215k to driver.</programlisting>
+
+ <para>This helps debugging by printing easier register definitions for
+ reading.</para>
+
+ <programlisting>options PFIL_HOOKS # pfil(9) framework</programlisting>
+
+ <para>The &man.pfil.9 framework is required by the IPFILTER and IPFIREWALL
+ options. Keep this if you plan to build a firewall.</para>
+
+ <programlisting>options ADAPTIVE_GIANT # Giant mutex is adaptive.</programlisting>
- <para>This option enables ICMP error response bandwidth limiting. You
- typically want this option as it will help protect the machine from
- denial of service packet attacks.</para>
-
- <note><para>In &os; 5.X, this feature is enabled by default and
- the <literal>ICMP_BANDLIM</literal> option is not required.
- </para></note>
+ <para>This option causes Giant to be included in the set of mutexes
+ adaptively spun on.</para>
<indexterm>
<primary>kernel options</primary>
<secondary>SMP</secondary>
</indexterm>
<programlisting># To make an SMP kernel, the next two are needed
-#options SMP # Symmetric MultiProcessor Kernel
-#options APIC_IO # Symmetric (APIC) I/O</programlisting>
+options SMP # Symmetric MultiProcessor Kernel
+device apic # I/O APIC</programlisting>
<para>The above are both required for SMP support.</para>
@@ -930,7 +890,7 @@
IBM PS/2 (Micro Channel Architecture), &os; provides some
limited support at this time. For more information about the
MCA support, see
- <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
+ <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
<programlisting>device eisa</programlisting>
@@ -951,16 +911,12 @@
have these features.</para>
<programlisting># Floppy drives
-device fdc0 at isa? port IO_FD1 irq 6 drq 2
-device fd0 at fdc0 drive 0
-device fd1 at fdc0 drive 1</programlisting>
-
- <para>This is the floppy drive controller. <literal>fd0</literal> is
- the <devicename>A:</devicename> floppy drive, and
- <literal>fd1</literal> is the <devicename>B:</devicename>
- drive.</para>
+device fdc</programlisting>
- <programlisting>device ata</programlisting>
+ <para>This is the floppy drive controller.</para>
+
+ <programlisting># ATA and ATAPI devices
+device ata</programlisting>
<para>This driver supports all ATA and ATAPI devices. You only need
one <literal>device ata</literal> line for the kernel to detect all
@@ -971,6 +927,11 @@
<para>This is needed along with <literal>device ata</literal> for
ATA disk drives.</para>
+ <programlisting>device ataraid # ATA RAID drives</programlisting>
+
+ <para>This is needed along with <literal>device ata</literal> for ATA
+ RAID drives.</para>
+
<programlisting><anchor id="kernelconfig-atapi">
device atapicd # ATAPI CDROM drives</programlisting>
@@ -987,43 +948,44 @@
<para>This is needed along with <literal>device ata</literal> for
ATAPI tape drives.</para>
- <programlisting>options ATA_STATIC_ID #Static device numbering</programlisting>
+ <programlisting>options ATA_STATIC_ID # Static device numbering</programlisting>
<para>This makes the controller number static (like the old driver) or
else the device numbers are dynamically allocated.</para>
- <programlisting># ATA and ATAPI devices
-device ata0 at isa? port IO_WD1 irq 14
-device ata1 at isa? port IO_WD2 irq 15</programlisting>
-
- <para>Use the above for older, non-PCI systems.</para>
-
<programlisting># SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
+device ahd # AHA39320/29320 and onboard AIC79xx devices
device amd # AMD 53C974 (Teckram DC-390(T))
-device dpt # DPT Smartcache - See LINT for options!
device isp # Qlogic family
-device ncr # NCR/Symbios Logic
+device mpt # LSI-Logic MPT-Fusion
+#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
+device trm # Tekram DC395U/UW/F DC315U adapters
-device adv0 at isa?
-device adw
-device bt0 at isa?
-device aha0 at isa?
-device aic0 at isa?</programlisting>
+device adv # Advansys SCSI adapters
+device adw # Advansys wide SCSI adapters
+device aha # Adaptec 154x SCSI adapters
+device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
+device bt # Buslogic/Mylex MultiMaster SCSI adapters
+
+device ncv # NCR 53C500
+device nsp # Workbit Ninja SCSI-3
+device stg # TMC 18C30/18C50</programlisting>
<para>SCSI controllers. Comment out any you do not have in your
system. If you have an IDE only system, you can remove these
altogether.</para>
<programlisting># SCSI peripherals
-device scbus # SCSI bus (required)
+device scbus # SCSI bus (required for SCSI)
+device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
-device pass # Passthrough device (direct SCSI
-access)</programlisting>
+device pass # Passthrough device (direct SCSI access)
+device ses # SCSI Environmental Services (and SAF-TE)</programlisting>
<para>SCSI peripherals. Again, comment out any you do not have, or if
you have only IDE hardware, you can remove them completely.</para>
@@ -1035,16 +997,29 @@
drivers are included in the kernel configuration.</para>
</note>
- <programlisting># RAID controllers
-device ida # Compaq Smart RAID
+ <programlisting># RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
-device mlx # Mylex DAC960 family</programlisting>
+device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
+device ciss # Compaq Smart RAID 5*
+device dpt # DPT Smartcache III, IV - See NOTES for options
+device iir # Intel Integrated RAID
+device ips # IBM (Adaptec) ServeRAID
+device mly # Mylex AcceleRAID/eXtremeRAID
+device twa # 3ware 9000 series PATA/SATA RAID
+
+# RAID controllers
+device aac # Adaptec FSA RAID
+device aacp # SCSI passthrough for aac (requires CAM)
+device ida # Compaq Smart RAID
+device mlx # Mylex DAC960 family
+device pst # Promise Supertrak SX6000
+device twe # 3ware ATA RAID</programlisting>
<para>Supported RAID controllers. If you do not have any of these,
you can comment them out or remove them.</para>
<programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse
-device atkbdc0 at isa? port IO_KBD</programlisting>
+device atkbdc # AT keyboard controller</programlisting>
<para>The keyboard controller (<literal>atkbdc</literal>) provides I/O
services for the AT keyboard and PS/2 style pointing devices. This
@@ -1052,80 +1027,87 @@
(<literal>atkbd</literal>) and the PS/2 pointing device driver
(<literal>psm</literal>).</para>
- <programlisting>device atkbd0 at atkbdc? irq 1</programlisting>
+ <programlisting>device atkbd # AT keyboard</programlisting>
<para>The <literal>atkbd</literal> driver, together with
<literal>atkbdc</literal> controller, provides access to the AT 84
keyboard or the AT enhanced keyboard which is connected to the AT
keyboard controller.</para>
- <programlisting>device psm0 at atkbdc? irq 12</programlisting>
+ <programlisting>device psm # PS/2 mouse</programlisting>
<para>Use this device if your mouse plugs into the PS/2 mouse
port.</para>
- <programlisting>device vga0 at isa?</programlisting>
+ <programlisting>device vga # VGA video card driver</programlisting>
<para>The video card driver.</para>
<programlisting># splash screen/screen saver
-device splash</programlisting>
+device splash # Splash screen and screen saver support</programlisting>
<para>Splash screen at start up! Screen savers require this
too. Use the line <literal>pseudo-device splash</literal> with
&os; 4.X.</para>
<programlisting># syscons is the default console driver, resembling an SCO console
-device sc0 at isa?</programlisting>
+device sc</programlisting>
- <para><literal>sc0</literal> is the default console driver, which
+ <para><literal>sc</literal> is the default console driver, which
resembles a SCO console. Since most full-screen programs access the
console through a terminal database library like
<filename>termcap</filename>, it should not matter whether you use
- this or <literal>vt0</literal>, the <literal>VT220</literal>
+ this or <literal>vt</literal>, the <literal>VT220</literal>
compatible console driver. When you log in, set your
<envar>TERM</envar> variable to <literal>scoansi</literal> if
full-screen programs have trouble running under this console.</para>
- <programlisting># Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
-#device vt0 at isa?
+ <programlisting># Enable this for the pcvt (VT220 compatible) console driver
+#device vt
#options XSERVER # support for X server on a vt console
-#options FAT_CURSOR # start with block cursor
-# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
-#options PCVT_SCANSET=2 # IBM keyboards are non-std</programlisting>
+#options FAT_CURSOR # start with block cursor</programlisting>
<para>This is a VT220-compatible console driver, backward compatible to
VT100/102. It works well on some laptops which have hardware
- incompatibilities with <literal>sc0</literal>. Also set your
+ incompatibilities with <literal>sc</literal>. Also set your
<envar>TERM</envar> variable to <literal>vt100</literal> or
<literal>vt220</literal> when you log in. This driver might also
prove useful when connecting to a large number of different machines
over the network, where <filename>termcap</filename> or
- <filename>terminfo</filename> entries for the <literal>sc0</literal>
+ <filename>terminfo</filename> entries for the <literal>sc</literal>
device are often not available — <literal>vt100</literal>
should be available on virtually any platform.</para>
- <programlisting># Power management support (see LINT for more options)
-device apm0 at nexus? disable flags 0x20 # Advanced Power Management</programlisting>
+ <programlisting># Power management support (see NOTES for more options)
+#device apm</programlisting>
<para>Advanced Power Management support. Useful for laptops.</para>
+ <note>
+ <para>In &os; 5.X and above this is disabled in
+ <filename>GENERIC</filename> by default.</para>
+ </note>
+
+ <programlisting># Add suspend/resume support for the i8254.
+device pmtimer</programlisting>
+
+ <para>Timer device driver for power management events, such as APM and
+ ACPI.</para>
+
<programlisting># PCCARD (PCMCIA) support
-device card
-device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
-device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable</programlisting>
+# PCMCIA and cardbus bridge support
+device cbb # cardbus (yenta) bridge
+device pccard # PC Card (16-bit) bus
+device cardbus # CardBus (32-bit) bus</programlisting>
<para>PCMCIA support. You want this if you are using a
laptop.</para>
<programlisting># Serial (COM) ports
-device sio0 at isa? port IO_COM1 flags 0x10 irq 4
-device sio1 at isa? port IO_COM2 irq 3
-device sio2 at isa? disable port IO_COM3 irq 5
-device sio3 at isa? disable port IO_COM4 irq 9</programlisting>
+device sio # 8250, 16[45]50 based serial ports</programlisting>
- <para>These are the four serial ports referred to as <devicename>COM1</devicename> through <devicename>COM4</devicename>
- in the &ms-dos/&windows; world.</para>
+ <para>These are the serial ports referred to as <devicename>COM</devicename> ports
+ in the &ms-dos;/&windows; world.</para>
<note>
<para>If you have an internal modem on <devicename>COM4</devicename> and a serial port at
@@ -1146,7 +1128,7 @@
</note>
<programlisting># Parallel port
-device ppc0 at isa? irq 7</programlisting>
+device ppc</programlisting>
<para>This is the ISA-bus parallel port interface.</para>
@@ -1179,17 +1161,24 @@
<literal>scbus</literal> and <literal>da</literal> support. Best
performance is achieved with ports in EPP 1.9 mode.</para>
+ <programlisting>#device puc</programlisting>
+
+ <para>Uncomment this device if you have a <quote>dumb</quote> serial or
+ parallel PCI card that is supported by the &man.puc.4 glue driver.
+ </para>
+
<programlisting># PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (<quote>Tulip</quote>)
-device fxp # Intel EtherExpress PRO/100B (82557, 82558)
-device tx # SMC 9432TX (83c170 <quote>EPIC</quote>)
-device vx # 3Com 3c590, 3c595 (<quote>Vortex</quote>)
-device wx # Intel Gigabit Ethernet Card (<quote>Wiseman</quote>)</programlisting>
+device em # Intel PRO/1000 adapter Gigabit Ethernet Card
+device ixgb # Intel PRO/10GbE Ethernet Card
+device txp # 3Com 3cR990 (<quote>Typhoon</quote>)
+device vx # 3Com 3c590, 3c595 (<quote>Vortex</quote>)</programlisting>
<para>Various PCI network card drivers. Comment out or remove any of
these not present in your system.</para>
<programlisting># PCI Ethernet NICs that use the common MII bus controller code.
+# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support</programlisting>
<para>MII bus support is required for some PCI 10/100 Ethernet NICs,
@@ -1201,45 +1190,69 @@
by an individual driver.</para>
<programlisting>device dc # DEC/Intel 21143 and various workalikes
+device miibus # MII bus support
+device bfe # Broadcom BCM440x 10/100 Ethernet
+device bge # Broadcom BCM570xx Gigabit Ethernet
+device dc # DEC/Intel 21143 and various workalikes
+device fxp # Intel EtherExpress PRO/100B (82557, 82558)
+device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
+device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (<quote>Starfire</quote>)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
+device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
+device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
+device tx # SMC EtherPower II (83c170 <quote>EPIC</quote>)
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting>
<para>Drivers that use the MII bus controller code.</para>
- <programlisting># ISA Ethernet NICs.
-device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
-device ex
-device ep
-# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
-# exists only as a PCMCIA device, so there is no ISA attachment needed
-# and resources will always be dynamically assigned by the pccard code.
-device wi
-# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
-# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
-# mode (the factory default). If you set the switches on your ISA
-# card for a manually chosen I/O address and IRQ, you must specify
-# those parameters here.
-device an
-# The probe order of these is presently determined by i386/isa/isa_compat.c.
-device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
-device fe0 at isa? port 0x300
-device le0 at isa? port 0x300 irq 5 iomem 0xd0000
-device lnc0 at isa? port 0x280 irq 10 drq 0
-device cs0 at isa? port 0x300
-device sn0 at isa? port 0x300 irq 10
-# requires PCCARD (PCMCIA) support to be activated
-#device xe0 at isa?</programlisting>
+ <programlisting># ISA Ethernet NICs. pccard NICs included.
+device cs # Crystal Semiconductor CS89x0 NIC
+# 'device ed' requires 'device miibus'
+device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
+device ex # Intel EtherExpress Pro/10 and Pro/10+
+device ep # Etherlink III based cards
+device fe # Fujitsu MB8696x based cards
+device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
+device lnc # NE2100, NE32-VL Lance Ethernet cards
+device sn # SMC's 9000 series of Ethernet chips
+device xe # Xircom pccard Ethernet
+
+# ISA devices that use the old ISA shims
+#device le</programlisting>
<para>ISA Ethernet drivers. See
- <filename>/usr/src/sys/i386/conf/LINT</filename> for which cards are
+ <filename>/usr/src/sys/i386/conf/NOTES</filename> for which cards are
supported by which driver.</para>
+ <programlisting># Wireless NIC cards
+device wlan # 802.11 support
+device an # Aironet 4500/4800 802.11 wireless NICs.
+device awi # BayStack 660 and others
+device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
+#device wl # Older non 802.11 Wavelan wireless NIC.</programlisting>
+
+ <para>Support for various Wireless NIC cards.</para>
+
+ <programlisting>device mem # Memory and kernel memory devices</programlisting>
+
+ <para>The system memory devices.</para>
+
+ <programlisting>device io # I/O device</programlisting>
+
+ <para>This option allows a process to gain I/O privileges. This is
+ useful in order to write userland programs that can handle hardware
+ directly.</para>
+
+ <programlisting>device random # Entropy device</programlisting>
+
+ <para>Cryptographically secure random number generator.</para>
+
<programlisting>device ether # Ethernet support</programlisting>
<para><literal>ether</literal> is only needed if you have an Ethernet
@@ -1247,7 +1260,7 @@
&os; 4.X use the line <literal>pseudo-device
ether</literal>.</para>
- <programlisting>device sl 1 # Kernel SLIP</programlisting>
+ <programlisting>device sl # Kernel SLIP</programlisting>
<para><literal>sl</literal> is for SLIP support. This has been almost
entirely supplanted by PPP, which is easier to set up, better suited
@@ -1257,7 +1270,7 @@
With &os; 4.X use the line <literal>pseudo-device
sl</literal>.</para>
- <programlisting>device ppp 1 # Kernel PPP</programlisting>
+ <programlisting>device ppp # Kernel PPP</programlisting>
<para>This is for kernel PPP support for dial-up connections. There
is also a version of PPP implemented as a userland application that
@@ -1297,7 +1310,7 @@
<para>Memory disk pseudo-devices. With &os; 4.X use the
line <literal>pseudo-device md</literal>.</para>
- <programlisting>device gif # IPv6 and IPv4 tunneling</programlisting>
+ <programlisting>device gif # IPv6 and IPv4 tunneling</programlisting>
<para>This implements IPv6 over IPv4 tunneling, IPv4 over IPv6 tunneling,
IPv4 over IPv4 tunneling, and IPv6 over IPv6 tunneling. Beginning with
@@ -1308,7 +1321,7 @@
&os; 4.X require a number, for example
<literal>pseudo-device gif 4</literal>.</para>
- <programlisting>device faith # IPv6-to-IPv4 relaying (translation)</programlisting>
+ <programlisting>device faith # IPv6-to-IPv4 relaying (translation)</programlisting>
<para>This pseudo-device captures packets that are sent to it and
diverts them to the IPv4/IPv6 translation daemon. With
@@ -1336,23 +1349,35 @@
<programlisting># USB support
#device uhci # UHCI PCI->USB interface
#device ohci # OHCI PCI->USB interface
-#device usb # USB Bus (required)
-#device ugen # Generic
-#device uhid # <quote>Human Interface Devices</quote>
-#device ukbd # Keyboard
-#device ulpt # Printer
-#device umass # Disks/Mass storage - Requires scbus and da
-#device ums # Mouse
+device usb # USB Bus (required)
+#device udbp # USB Double Bulk Pipe devices
+device ugen # Generic
+device uhid # <quote>Human Interface Devices</quote>
+device ukbd # Keyboard
+device ulpt # Printer
+device umass # Disks/Mass storage - Requires scbus and da
+device ums # Mouse
+device urio # Diamond Rio 500 MP3 player
+device uscanner # Scanners
# USB Ethernet, requires mii
-#device aue # ADMtek USB ethernet
-#device cue # CATC USB ethernet
-#device kue # Kawasaki LSI USB ethernet</programlisting>
+device aue # ADMtek USB Ethernet
+device axe # ASIX Electronics USB Ethernet
+device cue # CATC USB Ethernet
+device kue # Kawasaki LSI USB Ethernet
+device rue # RealTek RTL8150 USB Ethernet</programlisting>
<para>Support for various USB devices.</para>
+ <programlisting># FireWire support
+device firewire # FireWire bus code
+device sbp # SCSI over FireWire (Requires scbus and da)
+device fwe # Ethernet over FireWire (non-standard!)</programlisting>
+
+ <para>Support for various Firewire devices.</para>
+
<para>For more information and additional devices supported by
&os;, see
- <filename>/usr/src/sys/i386/conf/LINT</filename>.</para>
+ <filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
<sect2>
<title>Large Memory Configurations (<acronym>PAE</acronym>)</title>
|