Update the kernel configuration section to cover 6.1:

- Update the lists of device drivers and tweak a few comments.
- Add a couple of missing options, like PREEMPTION and kbdmux.
- Remove some SCHED_ULE information.  It's not stable and we
  shouldn't encourage users to make the switch, at least not
  right now.
- Remove some 386-specific info.  We can't keep old stuff like
  this around forever, so let's nuke it.

This is not perfect yet though.  There are still some
differences between GENERIC in 6.1 and this document.

Reviewed by:	simon
This commit is contained in:
Joel Dahl 2006-06-28 17:34:00 +00:00
parent c323c98d50
commit dbaaec99cb
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=28177

View file

@ -402,10 +402,8 @@
<author>
<firstname>Joel</firstname>
<surname>Dahl</surname>
<contrib>Updated for &os; 5.X by </contrib>
<!-- August 2004, PR docs/70674 -->
<contrib>Updated for &os; 6.X by </contrib>
</author>
<!-- <editor><othername role="freefall login">ceri</othername></editor> -->
</authorgroup>
</sect1info>
<title>The Configuration File</title>
@ -428,7 +426,7 @@
<anchor
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
file in the same directory as the <filename>GENERIC</filename> file. For
architecture independent options, see
<filename>/usr/src/sys/conf/NOTES</filename>.</para>
@ -481,38 +479,6 @@ cpu I686_CPU</programlisting>
<filename>/var/run/dmesg.boot</filename> file to view your boot
messages.</para>
<indexterm>
<primary>kernel options</primary>
<secondary>cpu type</secondary>
</indexterm>
<para>Support for <literal>I386_CPU</literal> is still provided in the
source of &os;, but it is disabled by default in both -STABLE and
-CURRENT. This means that to install &os; with a 386-class cpu, you now
have the following options:</para>
<itemizedlist>
<listitem>
<para>Install an older &os; release and rebuild from source as
described in <xref linkend="kernelconfig-building">.</para>
</listitem>
<listitem>
<para>Build the userland and kernel on a newer machine and install on
the 386 using the precompiled <filename>/usr/obj</filename>
files (see <xref linkend="small-lan"> for details).</para>
</listitem>
<listitem>
<para>Roll your own release of &os; which includes
<literal>I386_CPU</literal> support in the kernels of the
installation CD-ROM.</para>
</listitem>
</itemizedlist>
<para>The first of these options is probably the easiest of all, but you
will need a lot of disk space which, on a 386-class machine, may be
difficult to find.</para>
<indexterm>
<primary>kernel options</primary>
<secondary>ident</secondary>
@ -544,15 +510,11 @@ cpu I686_CPU</programlisting>
<!-- 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 &os; does not include
debugging information when building the kernel and strips most
symbols after the resulting kernel is linked, to save some space
at the install location. If you are going to do tests of kernels
in the -CURRENT branch or develop changes of your own for the &os;
kernel, you might want to uncomment this line. It will enable the
use of the <option>-g</option> option which enables debugging
<para>The normal build process of &os; includes
debugging information when building the kernel with the
the <option>-g</option> option, which enables debugging
information when passed to &man.gcc.1;. The same can be
accomplished by the &man.config.8; <option>-g</option> option, if
you are using the <quote>traditional</quote> way for building your
@ -561,11 +523,13 @@ cpu I686_CPU</programlisting>
<programlisting>options SCHED_4BSD # 4BSD scheduler</programlisting>
<para>The traditional scheduler for &os;. Depending on your system's
workload, you may gain performance by using the new ULE scheduler for
&os; that has been designed specially for SMP, but works just fine on UP
systems too. If you wish to try it out, replace <literal>SCHED_4BSD</literal>
with <literal>SCHED_ULE</literal> in your configuration file.</para>
<para>The traditional and default system scheduler for &os;. Keep this.</para>
<programlisting>options PREEMPTION # Enable kernel thread preemption</programlisting>
<para>Allows threads that are in the kernel to be preempted
by higher priority threads. It helps with interactivity and
allows interrupt threads to run sooner rather than waiting.</para>
<programlisting>options INET # InterNETworking</programlisting>
@ -658,7 +622,7 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
will be dynamically loaded the first time you mount a data CD).
Audio CDs do not need this file system.</para>
<programlisting>options PROCFS # Process filesystem</programlisting>
<programlisting>options PROCFS # Process filesystem (requires PSEUDOFS)</programlisting>
<para>The process file system. This is a <quote>pretend</quote>
file system mounted on <filename>/proc</filename> which allows
@ -667,13 +631,13 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
is not required under most circumstances, as most
debugging and monitoring tools have been adapted to run without
<literal>PROCFS</literal>: installs will not mount this file
system by default.
In addition, 6.X-CURRENT kernels
making use of <literal>PROCFS</literal> must now also include
support for <literal>PSEUDOFS</literal>:</para>
system by default.</para>
<programlisting>options PSEUDOFS # Pseudo-filesystem framework</programlisting>
<para>6.X kernels making use of <literal>PROCFS</literal> must also
include support for <literal>PSEUDOFS</literal>.</para>
<programlisting>options GEOM_GPT # GUID Partition Tables.</programlisting>
<para>This option brings the ability to have a large number of
@ -693,12 +657,12 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT</progra
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=5000 # Delay (in ms) before probing SCSI</programlisting>
<para>This causes the kernel to pause for 15 seconds before probing
<para>This causes the kernel to pause for 5 seconds before probing
each SCSI device in your system. If you only have IDE hard drives,
you can ignore this, otherwise you will probably want to lower this
number, perhaps to 5 seconds, to speed up booting. Of course, if
you can ignore this, otherwise you can try to lower this
number, to speed up booting. Of course, if
you do this and &os; has trouble recognizing your SCSI devices,
you will have to raise it again.</para>
@ -774,15 +738,6 @@ options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
is required for SMP kernels. Add <literal>options SMP</literal> to
include support for multiple processors.</para>
<programlisting>device isa</programlisting>
<para>All PCs supported by &os; have one of these. Do not remove this,
even if you have no ISA slots. If you have an
IBM PS/2 (Micro Channel Architecture) system, &os; provides only
limited support at this time. For more information about the
MCA support, see
<filename>/usr/src/sys/i386/conf/NOTES</filename>.</para>
<programlisting>device eisa</programlisting>
<para>Include this if you have an EISA motherboard. This enables
@ -844,6 +799,7 @@ device ahc # AHA2940 and onboard AIC7xxx devices
device ahd # AHA39320/29320 and onboard AIC79xx devices
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)
@ -889,6 +845,7 @@ 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 hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
@ -898,6 +855,7 @@ device twa # 3ware 9000 series PATA/SATA RAID
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID</programlisting>
@ -926,11 +884,15 @@ device atkbdc # AT keyboard controller</programlisting>
<para>Use this device if your mouse plugs into the PS/2 mouse
port.</para>
<programlisting>device kbdmux # keyboard multiplexer</programlisting>
<para>Basic support for keyboard multiplexing.</para>
<programlisting>device vga # VGA video card driver</programlisting>
<para>The video card driver.</para>
<programlisting># splash screen/screen saver
<programlisting>
device splash # Splash screen and screen saver support</programlisting>
<para>Splash screen at start up! Screen savers require this
@ -970,14 +932,6 @@ device sc</programlisting>
will enable support for AGP, and AGP GART for boards which
have these features.</para>
<programlisting># Floating point support - do not disable.
device npx</programlisting>
<para><literal>npx</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>
<indexterm>
<primary>APM</primary>
</indexterm>
@ -1094,12 +1048,14 @@ device miibus # MII bus support</programlisting>
including a generic one for PHYs that are not specifically handled
by an individual driver.</para>
<programlisting>device bfe # Broadcom BCM440x 10/100 Ethernet
<programlisting>device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
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 lge # Level 1 LXT1001 gigabit ethernet
device nge # NatSemi DP83820 gigabit ethernet
device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
@ -1141,6 +1097,7 @@ of which cards are
device wlan # 802.11 support
device an # Aironet 4500/4800 802.11 wireless NICs.
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.</programlisting>
@ -1154,16 +1111,6 @@ device loop # Network loopback</programlisting>
role="ipaddr">127.0.0.1</hostid>) it will come back at you through
this device. This is <emphasis>mandatory</emphasis>.</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. This is required to run the X Window system.</para>
<programlisting>device random # Entropy device</programlisting>
<para>Cryptographically secure random number generator.</para>