From owner-svn-doc-head@FreeBSD.ORG Wed Jan 30 14:25:00 2013 Return-Path: Delivered-To: svn-doc-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 196F3195; Wed, 30 Jan 2013 14:25:00 +0000 (UTC) (envelope-from dru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 0ABA9D2D; Wed, 30 Jan 2013 14:25:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0UEP0qp064604; Wed, 30 Jan 2013 14:25:00 GMT (envelope-from dru@svn.freebsd.org) Received: (from dru@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0UEOxx2064598; Wed, 30 Jan 2013 14:24:59 GMT (envelope-from dru@svn.freebsd.org) Message-Id: <201301301424.r0UEOxx2064598@svn.freebsd.org> From: Dru Lavigne Date: Wed, 30 Jan 2013 14:24:59 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r40820 - head/en_US.ISO8859-1/books/handbook/kernelconfig X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the doc tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jan 2013 14:25:00 -0000 Author: dru Date: Wed Jan 30 14:24:59 2013 New Revision: 40820 URL: http://svnweb.freebsd.org/changeset/doc/40820 Log: White space fix only. Translators can ignore. Approved by: bcr (mentor) Modified: head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml Modified: head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml Wed Jan 30 14:22:19 2013 (r40819) +++ head/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml Wed Jan 30 14:24:59 2013 (r40820) @@ -35,11 +35,12 @@ building a custom kernel - The kernel is the core of the &os; operating system. It is - responsible for managing memory, enforcing security controls, - networking, disk access, and much more. While more and more of &os; - becomes dynamically configurable it is still occasionally necessary to - reconfigure and recompile your kernel. + The kernel is the core of the &os; operating system. It + is responsible for managing memory, enforcing security controls, + networking, disk access, and much more. While more and more + of &os; becomes dynamically configurable it is still + occasionally necessary to reconfigure and recompile your + kernel. After reading this chapter, you will know: @@ -49,13 +50,13 @@ - How to write a kernel configuration file, or alter an existing - configuration file. + How to write a kernel configuration file, or alter an + existing configuration file. - How to use the kernel configuration file to create and build a - new kernel. + How to use the kernel configuration file to create and + build a new kernel. @@ -67,19 +68,20 @@ - All of the commands listed within this chapter by way of example - should be executed as root in order to - succeed. + All of the commands listed within this chapter by way of + example should be executed as root in + order to succeed. Why Build a Custom Kernel? Traditionally, &os; has had what is called a - monolithic kernel. This means that the kernel was one - large program, supported a fixed list of devices, and if you wanted to - change the kernel's behavior then you had to compile a new kernel, and - then reboot your computer with the new kernel. + monolithic kernel. This means that the kernel + was one large program, supported a fixed list of devices, and + if you wanted to change the kernel's behavior then you had to + compile a new kernel, and then reboot your computer with the + new kernel. Today, &os; is rapidly moving to a model where much of the kernel's functionality is contained in modules which can be @@ -90,41 +92,43 @@ necessary when the kernel was originally compiled. This is known as a modular kernel. - Despite this, it is still necessary to carry out some static kernel - configuration. In some cases this is because the functionality is so - tied to the kernel that it can not be made dynamically loadable. In - others it may simply be because no one has yet taken the time to write a - dynamic loadable kernel module for that functionality. + Despite this, it is still necessary to carry out some + static kernel configuration. In some cases this is because + the functionality is so tied to the kernel that it can not be + made dynamically loadable. In others it may simply be because + no one has yet taken the time to write a dynamic loadable kernel + module for that functionality. - Building a custom kernel is one of the most important rites of - passage for advanced BSD users. This process, while + Building a custom kernel is one of the most important rites + of passage for advanced BSD users. This process, while time consuming, will provide many benefits to your &os; system. - Unlike the GENERIC kernel, which must support a - wide range of hardware, a custom kernel only contains support for - your PC's hardware. This has a number of - benefits, such as: + Unlike the GENERIC kernel, which must + support a wide range of hardware, a custom kernel only contains + support for your PC's hardware. This has + a number of benefits, such as: - Faster boot time. Since the kernel will only probe the - hardware you have on your system, the time it takes your system to - boot can decrease dramatically. + Faster boot time. Since the kernel will only probe + the hardware you have on your system, the time it takes + your system to boot can decrease dramatically. - Lower memory usage. A custom kernel often uses less memory - than the GENERIC kernel by omitting unused - features and device drivers. This is important because the kernel - code remains resident in physical memory at all times, preventing - that memory from being used by applications. - For this reason, a custom kernel is especially useful - on a system with a small amount of RAM. + Lower memory usage. A custom kernel often uses less + memory than the GENERIC kernel by + omitting unused features and device drivers. This is + important because the kernel code remains resident in + physical memory at all times, preventing that memory from + being used by applications. For this reason, a custom + kernel is especially useful on a system with a small amount + of RAM. - Additional hardware support. A custom kernel allows you to - add in support for devices which are not - present in the GENERIC kernel, such as + Additional hardware support. A custom kernel allows + you to add in support for devices which are not present + in the GENERIC kernel, such as sound cards. @@ -142,11 +146,11 @@ Finding the System Hardware - Before venturing into kernel configuration, it would be wise - to get an inventory of the machine's hardware. In cases where - &os; is not the primary operating system, the inventory list may - easily be created by viewing the current operating system - configuration. For example, µsoft;'s + Before venturing into kernel configuration, it would be + wise to get an inventory of the machine's hardware. In cases + where &os; is not the primary operating system, the inventory + list may easily be created by viewing the current operating + system configuration. For example, µsoft;'s Device Manager normally contains important information about installed devices. The Device Manager is located in the @@ -162,10 +166,11 @@ If another operating system does not exist on the machine, the administrator must find this information out manually. One method is using the &man.dmesg.8; utility and the &man.man.1; - commands. Most device drivers on &os; have a manual page, listing - supported hardware, and during the boot probe, found hardware - will be listed. For example, the following lines indicate that - the psm driver found a mouse: + commands. Most device drivers on &os; have a manual page, + listing supported hardware, and during the boot probe, found + hardware will be listed. For example, the following lines + indicate that the psm driver found + a mouse: psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] @@ -194,8 +199,8 @@ psm0: model Generic PS/2 mouse, device I pciconf shows that the ath driver located a wireless Ethernet device. Using - man ath will return - the &man.ath.4; manual page. + man ath will + return the &man.ath.4; manual page. The flag, when passed to &man.man.1; can also be used to provide useful information. From the @@ -209,12 +214,13 @@ psm0: model Generic PS/2 mouse, device I ath(4) - Atheros IEEE 802.11 wireless network driver ath_hal(4) - Atheros Hardware Access Layer (HAL) - Armed with a hardware inventory list, the process of building - a custom kernel should appear less daunting. + Armed with a hardware inventory list, the process of + building a custom kernel should appear less daunting. Kernel Drivers, Subsystems, and Modules + kernel drivers / modules / subsystems @@ -238,30 +244,33 @@ following line in &man.loader.conf.5;: if_ath_load="YES" - As instructed, adding the if_ath_load="YES" - line to the /boot/loader.conf file will + As instructed, adding the + if_ath_load="YES" line to the + /boot/loader.conf file will enable loading this module dynamically at boot time. - In some cases; however, there is no associated module. This - is mostly true for certain subsystems and very important drivers, - for instance, the fast file system (FFS) is a - required option in the kernel. As is network support (INET). - Unfortunately the only way to tell if a driver is required is to - check for the module itself. + In some cases; however, there is no associated module. + This is mostly true for certain subsystems and very important + drivers, for instance, the fast file system + (FFS) is a required option in the kernel. + As is network support (INET). Unfortunately the only way to + tell if a driver is required is to check for the module + itself. It is easy to remove support for a - device or option and end up with a broken kernel. For example, if - the &man.ata.4; driver is removed from the kernel configuration - file, a system using ATA disk drivers may - not boot without the module added to - loader.conf. When in doubt, check for - the module and then just leave support in the kernel. + device or option and end up with a broken kernel. For + example, if the &man.ata.4; driver is removed from the kernel + configuration file, a system using ATA + disk drivers may not boot without the module added to + loader.conf. When in doubt, check for + the module and then just leave support in the kernel. Building and Installing a Custom Kernel + kernel building / installing @@ -272,36 +281,38 @@ following line in &man.loader.conf.5;: to build the kernel. - First, let us take a quick tour of the kernel build directory. - All directories mentioned will be relative to the main - /usr/src/sys directory, which is also - accessible through the path name /sys. There are a - number of subdirectories here representing different parts of the - kernel, but the most important for our purposes are - arch/conf, where you - will edit your custom kernel configuration, and - compile, which is the staging area where your - kernel will be built. arch represents - one of i386, + First, let us take a quick tour of the kernel build + directory. All directories mentioned will be relative to the + main /usr/src/sys directory, which is + also accessible through the path name /sys. + There are a number of subdirectories here representing different + parts of the kernel, but the most important for our purposes + are arch/conf, + where you will edit your custom kernel configuration, and + compile, which is the staging area where + your kernel will be built. arch + represents one of i386, amd64, ia64, - powerpc, sparc64, or - pc98 (an alternative development branch of PC - hardware, popular in Japan). Everything inside a particular - architecture's directory deals with that architecture only; the rest - of the code is machine independent code common to all platforms to which - &os; could potentially be ported. Notice the logical organization of the - directory structure, with each supported device, file system, and - option in its own subdirectory. - - The examples in this chapter assume that you are using the i386 - architecture. If your system has a different architecture you need - to change the path names accordingly. + powerpc, sparc64, + or pc98 (an alternative development branch + of PC hardware, popular in Japan). Everything inside a + particular architecture's directory deals with that architecture + only; the rest of the code is machine independent code common + to all platforms to which &os; could potentially be ported. + Notice the logical organization of the directory structure, + with each supported device, file system, and option in its + own subdirectory. + + The examples in this chapter assume that you are using + the i386 architecture. If your system has a different + architecture you need to change the path names + accordingly. If the directory /usr/src/ does not - exist on your system (or if it is empty), then the sources have - not been installed. The easiest way to install the full source - is to use &man.csup.1; as described in . You should also create a symlink to /usr/src/sys/: @@ -309,30 +320,34 @@ following line in &man.loader.conf.5;: Next, change to the - arch/conf directory - and copy the GENERIC configuration file to the - name you want to give your kernel. For example: + arch/conf + directory and copy the GENERIC + configuration file to the name you want to give your kernel. + For example: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MYKERNEL - Traditionally, this name is in all capital letters and, if you - are maintaining multiple &os; machines with different hardware, - it is a good idea to name it after your machine's hostname. We will - call it MYKERNEL for the - purpose of this example. + Traditionally, this name is in all capital letters and, + if you are maintaining multiple &os; machines with different + hardware, it is a good idea to name it after your machine's + hostname. We will call it + MYKERNEL for + the purpose of this example. Storing your kernel configuration file directly under /usr/src can be a bad idea. If you are experiencing problems it can be tempting to just delete - /usr/src and start again. After doing this, - it usually only takes a few seconds for + /usr/src and start again. After doing + this, it usually only takes a few seconds for you to realize that you have deleted your custom kernel - configuration file. Also, do not edit GENERIC - directly, as it may get overwritten the next time you - update your source tree, and - your kernel modifications will be lost. + configuration file. Also, do not edit + GENERIC directly, as it may get + overwritten the next time you + update your source + tree, + and your kernel modifications will be lost. You might want to keep your kernel configuration file elsewhere, and then create a symbolic link to the file in @@ -347,37 +362,40 @@ following line in &man.loader.conf.5;: &prompt.root; ln -s /root/kernels/MYKERNEL - Now, edit MYKERNEL - with your favorite text editor. If you are just starting out, the only - editor available will probably be vi, which - is too complex to explain here, but is covered well in many books in - the bibliography. However, &os; does - offer an easier editor called ee which, if - you are a beginner, should be your editor of choice. Feel free to - change the comment lines at the top to reflect your configuration or - the changes you have made to differentiate it from - GENERIC. + Now, edit + MYKERNEL + with your favorite text editor. If you are just starting out, + the only editor available will probably be + vi, which is too complex to explain + here, but is covered well in many books in the bibliography. However, &os; + does offer an easier editor called ee + which, if you are a beginner, should be your editor of choice. + Feel free to change the comment lines at the top to reflect + your configuration or the changes you have made to differentiate + it from GENERIC. SunOS If you have built a kernel under &sunos; or some other BSD - operating system, much of this file will be very familiar to you. - If you are coming from some other operating system such as DOS, on - the other hand, the GENERIC configuration file - might seem overwhelming to you, so follow the descriptions in the + operating system, much of this file will be very familiar to + you. If you are coming from some other operating system such + as DOS, on the other hand, the GENERIC + configuration file might seem overwhelming to you, so follow + the descriptions in the Configuration File section slowly and carefully. If you sync your source tree with the - latest sources of the &os; project, - be sure to always check the file - /usr/src/UPDATING before you perform any update - steps. This file describes any important issues or areas - requiring special attention within the updated source code. - /usr/src/UPDATING always matches - your version of the &os; source, and is therefore more up to date - with new information than this handbook. + linkend="updating-upgrading">sync your source tree + with the latest sources of the &os; project, be sure to always + check the file /usr/src/UPDATING before + you perform any update steps. This file describes any + important issues or areas requiring special attention within + the updated source code. + /usr/src/UPDATING always matches + your version of the &os; source, and is therefore more up + to date with new information than this handbook. You must now compile the source code for the kernel. @@ -386,13 +404,13 @@ following line in &man.loader.conf.5;: Building a Kernel - It is required to have the full &os; source tree installed - to build the kernel. + It is required to have the full &os; source tree + installed to build the kernel. Change to the /usr/src directory: + class="directory">/usr/src directory: &prompt.root; cd /usr/src @@ -412,10 +430,11 @@ following line in &man.loader.conf.5;: By default, when you build a custom kernel, - all kernel modules will be rebuilt as well. - If you want to update a kernel faster or to build only custom - modules, you should edit /etc/make.conf - before starting to build the kernel: + all kernel modules will be rebuilt as + well. If you want to update a kernel faster or to build only + custom modules, you should edit + /etc/make.conf before starting to build + the kernel: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs @@ -424,10 +443,10 @@ following line in &man.loader.conf.5;: WITHOUT_MODULES = linux acpi sound ntfs - This variable sets up a list of top level modules to exclude - from the build process. For other variables which you may find useful - in the process of building kernel, refer to &man.make.conf.5; - manual page. + This variable sets up a list of top level modules to + exclude from the build process. For other variables which + you may find useful in the process of building kernel, refer + to &man.make.conf.5; manual page. @@ -435,24 +454,27 @@ following line in &man.loader.conf.5;: The new kernel will be copied to the /boot/kernel directory as - /boot/kernel/kernel and the old kernel will be moved - to /boot/kernel.old/kernel. Now, shutdown the - system and reboot to use your new kernel. If something goes wrong, there - are some troubleshooting - instructions at the end of this chapter that you may find useful. Be - sure to read the section which explains how to recover in case your new - kernel does not boot. + class="directory">/boot/kernel directory as + /boot/kernel/kernel and the old kernel + will be moved to /boot/kernel.old/kernel. + Now, shutdown the system and reboot to use your new kernel. + If something goes wrong, there are some troubleshooting + instructions at the end of this chapter that you may find + useful. Be sure to read the section which explains how to + recover in case your new kernel does not boot. Other files relating to the boot process, such as the boot &man.loader.8; and configuration are stored in /boot. Third party or custom modules - can be placed in /boot/kernel, - although users should be aware that keeping modules in sync with the - compiled kernel is very important. Modules not intended - to run with the compiled kernel may result in instability - or incorrectness. + can be placed in /boot/kernel, + although users should be aware that keeping modules in sync + with the compiled kernel is very important. Modules not + intended to run with the compiled kernel may result in + instability or incorrectness. @@ -467,6 +489,7 @@ following line in &man.loader.conf.5;: The Configuration File + kernel NOTES @@ -484,19 +507,21 @@ following line in &man.loader.conf.5;: ignored. The following sections describe each keyword, in the order they are listed in GENERIC. For an exhaustive list of architecture - dependent options and devices, see the NOTES - file in the same directory as the GENERIC file. For - architecture independent options, see + id="kernelconfig-options"/> For an exhaustive list of + architecture dependent options and devices, see the + NOTES file in the same directory as the + GENERIC file. For architecture independent + options, see /usr/src/sys/conf/NOTES. An include directive is available for use in configuration files. This allows another - configuration file to be logically included in the current one, making - it easy to maintain small changes relative to an existing file. For - example, if you require a GENERIC kernel with - only a small number of additional options or drivers, this allows you - to maintain only a delta with respect to GENERIC: + configuration file to be logically included in the current + one, making it easy to maintain small changes relative to an + existing file. For example, if you require a + GENERIC kernel with only a small number + of additional options or drivers, this allows you to maintain + only a delta with respect to GENERIC: include GENERIC ident MYKERNEL @@ -504,19 +529,19 @@ ident MYKERNEL options IPFIREWALL options DUMMYNET options IPFIREWALL_DEFAULT_TO_ACCEPT -options IPDIVERT - +options IPDIVERT - Many administrators will find that this model offers significant - benefits over the historic writing of configuration files from scratch: - the local configuration file will express only local differences from - a GENERIC kernel and as upgrades are performed, - new features added to GENERIC will be added to the - local kernel unless specifically prevented using - nooptions or nodevice. The - remainder of this chapter addresses the contents of a typical - configuration file and the role various options and devices - play. + Many administrators will find that this model offers + significant benefits over the historic writing of configuration + files from scratch: the local configuration file will express + only local differences from a GENERIC + kernel and as upgrades are performed, new features added to + GENERIC will be added to the local kernel + unless specifically prevented using + nooptions or nodevice. + The remainder of this chapter addresses the contents of a + typical configuration file and the role various options and + devices play. To build a file which contains all available options, @@ -531,9 +556,10 @@ options IPDIVERT configuration file - The following is an example of the GENERIC - kernel configuration file with various additional comments where needed - for clarity. This example should match your copy in + The following is an example of the + GENERIC kernel configuration file with + various additional comments where needed for clarity. This + example should match your copy in /usr/src/sys/i386/conf/GENERIC fairly closely. @@ -559,13 +585,13 @@ cpu I586_CPU cpu I686_CPU The above option specifies the type of CPU you have in your - system. You may have multiple instances of the CPU line (if, for - example, you are not sure whether you should use + system. You may have multiple instances of the CPU line (if, + for example, you are not sure whether you should use I586_CPU or I686_CPU), but for a custom kernel it is best to specify only the CPU - you have. If you are unsure of your CPU type, you can check the - /var/run/dmesg.boot file to view your boot - messages. + you have. If you are unsure of your CPU type, you can check + the /var/run/dmesg.boot file to view your + boot messages. kernel options @@ -576,12 +602,13 @@ cpu I686_CPU This is the identification of the kernel. You should change this to whatever you named your kernel, - i.e., MYKERNEL if you have - followed the instructions of the previous examples. The value you put - in the ident string will print when you boot up the - kernel, so it is useful to give the new kernel a different name if you - want to keep it separate from your usual kernel (e.g., you want to - build an experimental kernel). + i.e., MYKERNEL + if you have followed the instructions of the previous examples. + The value you put in the ident string will + print when you boot up the kernel, so it is useful to give the + new kernel a different name if you want to keep it separate + from your usual kernel (e.g., you want to build an experimental + kernel). #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. @@ -613,14 +640,15 @@ cpu I686_CPU 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. + allows interrupt threads to run sooner rather than + waiting. options INET # InterNETworking - 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. + 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. options INET6 # IPv6 communications protocols @@ -628,18 +656,18 @@ cpu I686_CPU options FFS # Berkeley Fast Filesystem - This is the basic hard drive file system. Leave it in if you - boot from the hard disk. + This is the basic hard drive file system. Leave it in if + you boot from the hard disk. options SOFTUPDATES # Enable FFS Soft Updates support This option enables Soft Updates in the kernel, this will help speed up write access on the disks. Even when this functionality is provided by the kernel, it must be turned on - for specific disks. Review the output from &man.mount.8; to see - if Soft Updates is enabled for your system disks. If you do not - see the soft-updates option then you will - need to activate it using the &man.tunefs.8; (for existing + for specific disks. Review the output from &man.mount.8; to + see if Soft Updates is enabled for your system disks. If you + do not see the soft-updates option then you + will need to activate it using the &man.tunefs.8; (for existing file systems) or &man.newfs.8; (for new file systems) commands. @@ -647,12 +675,13 @@ cpu I686_CPU This option enables kernel support for access control lists. This relies on the use of extended - attributes and UFS2, and the feature is described - in detail in . ACLs are - enabled by default and should not be - disabled in the kernel if they have been used previously on a file - system, as this will remove the access control lists, changing the - way files are protected in unpredictable ways. + attributes and UFS2, and the feature is + described in detail in . + ACLs are enabled by default and should not + be disabled in the kernel if they have been used previously + on a file system, as this will remove the access control lists, + changing the way files are protected in unpredictable + ways. options UFS_DIRHASH # Improve performance on big directories @@ -680,9 +709,9 @@ cpu I686_CPU options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT - The network file system. Unless you plan to mount partitions - from a &unix; file server over TCP/IP, you can comment these - out. + The network file system. Unless you plan to mount + partitions from a &unix; file server over TCP/IP, you can + comment these out. kernel options @@ -690,10 +719,11 @@ options NFS_ROOT # NFS options MSDOSFS # MSDOS Filesystem - The &ms-dos; file system. Unless you plan to mount a DOS formatted - hard drive partition at boot time, you can safely comment this out. - It will be automatically loaded the first time you mount a DOS - partition, as described above. Also, the excellent + The &ms-dos; file system. Unless you plan to mount a DOS + formatted hard drive partition at boot time, you can safely + comment this out. It will be automatically loaded the first + time you mount a DOS partition, as described above. Also, + the excellent emulators/mtools software allows you to access DOS floppies without having to mount and unmount them (and does not require MSDOSFS at @@ -701,10 +731,11 @@ options NFS_ROOT # NFS options CD9660 # ISO 9660 Filesystem - The ISO 9660 file system 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 file system. + The ISO 9660 file system 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 file + system. options PROCFS # Process filesystem (requires PSEUDOFS) @@ -719,8 +750,8 @@ options NFS_ROOT # NFS options PSEUDOFS # Pseudo-filesystem framework - Kernels making use of PROCFS must also - include support for PSEUDOFS. + Kernels making use of PROCFS must + also include support for PSEUDOFS. options GEOM_PART_GPT # GUID Partition Tables. @@ -732,8 +763,8 @@ options NFS_ROOT # NFS options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] - Compatibility with 4.3BSD. Leave this in; some programs will - act strangely if you comment this out. + Compatibility with 4.3BSD. Leave this in; some programs + will act strangely if you comment this out. options COMPAT_FREEBSD4 # Compatible with &os;4 @@ -742,34 +773,35 @@ options NFS_ROOT # NFS that use older system call interfaces. It is recommended that this option be used on all &i386; systems that may run older applications; platforms that gained support only in - 5.X, such as ia64 and &sparc64;, do not require this option. + 5.X, such as ia64 and &sparc64;, do not require this + option. options COMPAT_FREEBSD5 # Compatible with &os;5 This option is required to - support applications compiled on &os; 5.X versions that use - &os; 5.X system call interfaces. + support applications compiled on &os; 5.X versions that + use &os; 5.X system call interfaces. options COMPAT_FREEBSD6 # Compatible with &os;6 This option is required to - support applications compiled on &os; 6.X versions that use - &os; 6.X system call interfaces. + support applications compiled on &os; 6.X versions that + use &os; 6.X system call interfaces. options COMPAT_FREEBSD7 # Compatible with &os;7 This option is required on &os; 8 and above to - support applications compiled on &os; 7.X versions that use - &os; 7.X system call interfaces. + support applications compiled on &os; 7.X versions that + use &os; 7.X system call interfaces. options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI 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 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. + each SCSI device in your system. If you only have IDE hard + drives, 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. options KTRACE # ktrace(1) support @@ -778,11 +810,11 @@ options NFS_ROOT # NFS options SYSVSHM # SYSV-style shared memory - This option provides for System V shared memory. The most - common use of this is the XSHM extension in X, which many - graphics-intensive programs will automatically take advantage of for - extra speed. If you use X, you will definitely want to include - this. + This option provides for System V shared memory. + The most common use of this is the XSHM extension in X, which + many graphics-intensive programs will automatically take + advantage of for extra speed. If you use X, you will definitely + want to include this. options SYSVMSG # SYSV-style message queues @@ -791,12 +823,13 @@ options NFS_ROOT # NFS options SYSVSEM # SYSV-style semaphores - Support for System V semaphores. Less commonly used but only - adds a few hundred bytes to the kernel. + Support for System V semaphores. Less commonly used + but only adds a few hundred bytes to the kernel. - The option of the &man.ipcs.1; command will - list any processes using each of these System V facilities. + The option of the &man.ipcs.1; + command will list any processes using each of these + System V facilities. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions @@ -807,30 +840,32 @@ options NFS_ROOT # NFS options KBD_INSTALL_CDEV # install a CDEV entry in /dev - This option is required to allow the creation of keyboard device - nodes in /dev. + This option is required to allow the creation of keyboard + device nodes in /dev. options ADAPTIVE_GIANT # Giant mutex is adaptive. - Giant is the name of a mutual exclusion mechanism (a sleep mutex) - that protects a large set of kernel resources. Today, this is an - unacceptable performance bottleneck which is actively being replaced - with locks that protect individual resources. The - ADAPTIVE_GIANT option causes Giant to be included - in the set of mutexes adaptively spun on. That is, when a thread - wants to lock the Giant mutex, but it is already locked by a thread - on another CPU, the first thread will keep running and wait for the - lock to be released. Normally, the thread would instead go back to - sleep and wait for its next chance to run. If you are not sure, - leave this in. + Giant is the name of a mutual exclusion mechanism (a + sleep mutex)that protects a large set of kernel resources. + Today, this is an unacceptable performance bottleneck which + is actively being replaced with locks that protect individual + resources. The ADAPTIVE_GIANT option causes + Giant to be included in the set of mutexes adaptively spun on. + That is, when a thread wants to lock the Giant mutex, but it + is already locked by a thread on another CPU, the first thread + will keep running and wait for the lock to be released. + Normally, the thread would instead go back to sleep and wait + for its next chance to run. If you are not sure, leave this + in. - Note that on &os; 8.0-RELEASE and later versions, all mutexes are - adaptive by default, unless explicitly set to non-adaptive by - compiling with the NO_ADAPTIVE_MUTEXES option. As - a result, Giant is adaptive by default now, and the - ADAPTIVE_GIANT option has been removed from the - kernel configuration. + Note that on &os; 8.0-RELEASE and later versions, all + mutexes are adaptive by default, unless explicitly set to + non-adaptive by compiling with the + NO_ADAPTIVE_MUTEXES option. As a result, + Giant is adaptive by default now, and the + ADAPTIVE_GIANT option has been removed + from the kernel configuration. @@ -839,10 +874,11 @@ options NFS_ROOT # NFS device apic # I/O APIC - The apic device enables the use of the I/O APIC for interrupt - delivery. The apic device can be used in both UP and SMP kernels, but - is required for SMP kernels. Add options SMP to - include support for multiple processors. + The apic device enables the use of the I/O APIC for + interrupt delivery. The apic device can be used in both UP + and SMP kernels, but is required for SMP kernels. Add + options SMP to include support for multiple + processors. The apic device exists only on the i386 architecture, this @@ -853,8 +889,8 @@ options NFS_ROOT # NFS device eisa Include this if you have an EISA motherboard. This enables - auto-detection and configuration support for all devices on the EISA - bus. + auto-detection and configuration support for all devices on + the EISA bus. device pci @@ -870,35 +906,35 @@ device fdc # ATA and ATAPI devices device ata - This driver supports all ATA and ATAPI devices. You only need - one device ata line for the kernel to detect all - PCI ATA/ATAPI devices on modern machines. + This driver supports all ATA and ATAPI devices. You only + need one device ata line for the kernel to + detect all PCI ATA/ATAPI devices on modern machines. device atadisk # ATA disk drives - This is needed along with device ata for - ATA disk drives. + This is needed along with device ata + for ATA disk drives. device ataraid # ATA RAID drives - This is needed along with device ata for ATA - RAID drives. + This is needed along with device ata + for ATA RAID drives. device atapicd # ATAPI CDROM drives - This is needed along with device ata for - ATAPI CDROM drives. + This is needed along with device ata + for ATAPI CDROM drives. device atapifd # ATAPI floppy drives - This is needed along with device ata for - ATAPI floppy drives. + This is needed along with device ata + for ATAPI floppy drives. device atapist # ATAPI tape drives - This is needed along with device ata for - ATAPI tape drives. + This is needed along with device ata + for ATAPI tape drives. options ATA_STATIC_ID # Static device numbering @@ -945,8 +981,9 @@ device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) - SCSI peripherals. Again, comment out any you do not have, or if - you have only IDE hardware, you can remove them completely. + SCSI peripherals. Again, comment out any you do not have, + or if you have only IDE hardware, you can remove them + completely. The USB &man.umass.4; driver and a few other drivers use @@ -977,24 +1014,24 @@ device mlx # Mylex DAC96 device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID - Supported RAID controllers. If you do not have any of these, - you can comment them out or remove them. + Supported RAID controllers. If you do not have any of + these, you can comment them out or remove them. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***