8.5. kernel 設定檔解說
前一頁 | 章 8. 設定 FreeBSD Kernel | 下一頁

## 8.5. kernel 設定檔解說

Updated for FreeBSD 6.X by Joel Dahl.

kernel 設定檔的內容格式相當簡單。 每一行都包括一個關鍵字，以及一個或多個參數。事實上， 很多行大多只有一個參數。任何以 `#` 開頭的敘述都將被視為註解而被忽略。 接下來將以在 `GENERIC` 所出現的順序一一介紹之。 若要看與該平台架構有關的各選項、設備列表， 請參閱與 `GENERIC` 檔同目錄的 `NOTES` 檔。 而與平台架構差異較無關的通用部份，則可參閱 `/usr/src/sys/conf/NOTES`。

### 注意:

若為了測試，而需要一份含有所有可用設定的設定檔，那麼請以 `root` 身份下：

`#` `cd /usr/src/sys/`i386`/conf && make LINT`

下面為 `GENERIC` 設定檔的範例， 其中包括說明用的註釋。 這例子應該與您機器上的 `/usr/src/sys/`i386`/conf/GENERIC` 相當接近。

machine i386

此處是指機器架構，必須為 `alpha`、`amd64`、 `i386`、`ia64`、 `pc98`、`powerpc`、 `sparc64` 其中之一。

cpu I486_CPU cpu I586_CPU cpu I686_CPU

上面設定是指定要用哪一種 CPU 型號。 也可以同時加上多組 CPU 型號 (比如說萬一不確定是否要用 `I586_CPU` 或 `I686_CPU`)。 然而自訂 kernel 的話，建議先確認自己的 CPU 型號，然後只用最適合的那組就好了。 若不確定 CPU 到底是用哪一種， 可以查閱 `/var/run/dmesg.boot` 的開機訊息以確定。

ident GENERIC

這是設定該 kernel 名稱為何，可以隨意命名之，像是取名為 `MYKERNEL`，若是有照先前說明來作大概會取這樣名字。 `ident` 後面的字串會在開機時顯示，因此若要辨認新 kernel 與常用 kernel 的話，就設定不同組名稱即可(比如在自訂實驗用的 kernel)。

#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices.

device.hints(5) 可用來設定各項驅動程式的選項。 開機時 loader(8) 會檢查預設的 `/boot/device.hints` 設定檔。 使用 `hints` 選項，就可以把這些 hints 靜態編入 kernel 內。 如此一來就不必在 `/boot` 內建立 `device.hints` 檔。

makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols

加上 `-g` 選項的話，FreeBSD 會在編譯過程加上 debug 用的資訊，透過這選項會讓 gcc(1) 啟用 debug 所會用到的相關資訊。

options SCHED_4BSD # 4BSD scheduler

FreeBSD. 傳統所用(並且是預設)的系統 CPU scheduler。 若您不清楚要如何設定 ，請保留這設定。

options PREEMPTION # Enable kernel thread preemption

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.

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.

options INET6 # IPv6 communications protocols

This enables the IPv6 communication protocols.

options FFS # Berkeley Fast Filesystem

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 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 tunefs(8) (for existing file systems) or newfs(8) (for new file systems) commands.

options UFS_ACL # Support for access control lists

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 節 14.12, “File System Access Control Lists”. 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

This option includes functionality to speed up disk operations on large directories, at the expense of using additional memory. You would normally keep this for a large server, or interactive workstation, and remove it if you are using FreeBSD on a smaller system where memory is at a premium and disk access speed is less important, such as a firewall.

options MD_ROOT # MD is a potential root device

This option enables support for a memory backed virtual disk used as a root device.

options NFSCLIENT # Network Filesystem Client 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.

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 `emulators/mtools` software allows you to access DOS floppies without having to mount and unmount them (and does not require `MSDOSFS` at all).

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.

options PROCFS # Process filesystem(requires PSEUDOFS)

The process file system. This is a “pretend” file system mounted on `/proc` which allows programs like ps(1) to give you more information on what processes are running. Use of `PROCFS` is not required under most circumstances, as most debugging and monitoring tools have been adapted to run without `PROCFS`: installs will not mount this file system by default.

options PSEUDOFS # Pseudo-filesystem framework

6.X kernels making use of `PROCFS` must also include support for `PSEUDOFS`.

options GEOM_GPT # GUID Partition Tables.

This option brings the ability to have a large number of partitions on a single disk.

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.

options COMPAT_FREEBSD4 # Compatible with FreeBSD4

This option is required on FreeBSD 5.X i386™ and Alpha systems to support applications compiled on older versions of FreeBSD that use older system call interfaces. It is recommended that this option be used on all i386™ and Alpha systems that may run older applications; platforms that gained support only in 5.X, such as ia64 and Sparc64®, do not require this option.

options COMPAT_FREEBSD5 # 與 FreeBSD5 相容

此行是 FreeBSD 6.X 及更新的版本若需支援 FreeBSD 5.X 系統呼叫才需要設定。

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 FreeBSD has trouble recognizing your SCSI devices, you will have to raise it again.

options KTRACE # ktrace(1) support

This enables kernel process tracing, which is useful in debugging.

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.

options SYSVMSG # SYSV-style message queues

Support for System V messages. This option only adds a few hundred bytes to the kernel.

options SYSVSEM # SYSV-style semaphores

Support for System V semaphores. Less commonly used but only adds a few hundred bytes to the kernel.

### 注意:

The `-p` option of the ipcs(1) command will list any processes using each of these System V facilities.

options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions

Real-time extensions added in the 1993 POSIX®. Certain applications in the Ports Collection use these (such as StarOffice™).

options KBD_INSTALL_CDEV # install a CDEV entry 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.

### 注意:

Note that on FreeBSD 8.0-CURRENT 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.

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.

### 注意:

apic 只限 i386 架構才有，其他架構則不必加上這行。

device eisa

Include this if you have an EISA motherboard. This enables auto-detection and configuration support for all devices on the EISA bus.

device pci

Include this if you have a PCI motherboard. This enables auto-detection of PCI cards and gatewaying from the PCI to ISA bus.

# Floppy drives device fdc

This is the floppy drive controller.

# 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.

device atadisk # 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.

device atapicd # 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.

device atapist # ATAPI tape drives

This is needed along with `device ata` for ATAPI tape drives.

options ATA_STATIC_ID # Static device numbering

This makes the controller number static; without this, the device numbers are dynamically allocated.

# SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. 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 + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters 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

SCSI controllers. Comment out any you do not have in your system. If you have an IDE only system, you can remove these altogether. The `*_REG_PRETTY_PRINT` lines are debugging options for their respective drivers.

# SCSI peripherals 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) 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.

### 注意:

The USB umass(4) driver and a few other drivers use the SCSI subsystem even though they are not real SCSI devices. Therefore make sure not to remove SCSI support, if any such drivers are included in the kernel configuration.

# RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID 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 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 mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family 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.

# atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller

The keyboard controller (`atkbdc`) provides I/O services for the AT keyboard and PS/2 style pointing devices. This controller is required by the keyboard driver (`atkbd`) and the PS/2 pointing device driver (`psm`).

device atkbd # AT keyboard

The `atkbd` driver, together with `atkbdc` controller, provides access to the AT 84 keyboard or the AT enhanced keyboard which is connected to the AT keyboard controller.

device psm # PS/2 mouse

Use this device if your mouse plugs into the PS/2 mouse port.

device kbdmux # keyboard multiplexer

多重鍵盤的支援。 若不打算同時接多組鍵盤的話， 那麼若要移除該行也沒關係。

device vga # VGA video card driver

The video card driver.

device splash # Splash screen and screen saver support

Splash screen at start up! Screen savers require this too.

# syscons is the default console driver, resembling an SCO console device sc

`sc` is the default console driver and resembles a SCO console. Since most full-screen programs access the console through a terminal database library like `termcap`, it should not matter whether you use this or `vt`, the `VT220` compatible console driver. When you log in, set your `TERM` variable to `scoansi` if full-screen programs have trouble running under this console.

# 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

This is a VT220-compatible console driver, backward compatible to VT100/102. It works well on some laptops which have hardware incompatibilities with `sc`. Also set your `TERM` variable to `vt100` or `vt220` when you log in. This driver might also prove useful when connecting to a large number of different machines over the network, where `termcap` or `terminfo` entries for the `sc` device are often not available — `vt100` should be available on virtually any platform.

device agp

Include this if you have an AGP card in the system. This will enable support for AGP, and AGP GART for boards which have these features.

# Power management support (see NOTES for more options) #device apm

Advanced Power Management support. Useful for laptops, although in FreeBSD 5.X and above this is disabled in `GENERIC` by default.

# Add suspend/resume support for the i8254. device pmtimer

Timer device driver for power management events, such as APM and ACPI.

# PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus

PCMCIA support. You want this if you are using a laptop.

# Serial (COM) ports device sio # 8250, 16[45]50 based serial ports

These are the serial ports referred to as `COM` ports in the MS-DOS®/Windows® world.

### 注意:

If you have an internal modem on `COM4` and a serial port at `COM2`, you will have to change the IRQ of the modem to 2 (for obscure technical reasons, IRQ2 = IRQ 9) in order to access it from FreeBSD. If you have a multiport serial card, check the manual page for sio(4) for more information on the proper values to add to your `/boot/device.hints`. Some video cards (notably those based on S3 chips) use IO addresses in the form of `0x*2e8`, and since many cheap serial cards do not fully decode the 16-bit IO address space, they clash with these cards making the `COM4` port practically unavailable.

Each serial port is required to have a unique IRQ (unless you are using one of the multiport cards where shared interrupts are supported), so the default IRQs for `COM3` and `COM4` cannot be used.

# Parallel port device ppc

This is the ISA-bus parallel port interface.

device ppbus # Parallel port bus (required)

Provides support for the parallel port bus.

device lpt # Printer

Support for parallel port printers.

### 注意:

All three of the above are required to enable parallel printer support.

device plip # TCP/IP over parallel

This is the driver for the parallel network interface.

device ppi # Parallel port interface device

The general-purpose I/O (“geek port”) + IEEE1284 I/O.

#device vpo # Requires scbus and da

This is for an Iomega Zip drive. It requires `scbus` and `da` support. Best performance is achieved with ports in EPP 1.9 mode.

#device puc

Uncomment this device if you have a “dumb” serial or parallel PCI card that is supported by the puc(4) glue driver.

# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (“Tulip”) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (“Typhoon”) device vx # 3Com 3c590, 3c595 (“Vortex”)

Various PCI network card drivers. Comment out or remove any of these not present in your system.

# 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

MII bus support is required for some PCI 10/100 Ethernet NICs, namely those which use MII-compliant transceivers or implement transceiver control interfaces that operate like an MII. Adding `device miibus` to the kernel config pulls in support for the generic miibus API and all of the PHY drivers, including a generic one for PHYs that are not specifically handled by an individual driver.

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 msk # Marvell/SysKonnect Yukon II 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 device sf # Adaptec AIC-6915 (“Starfire”) 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 stge # Sundance/Tamarack TC9021 gigabit Ethernet device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 “EPIC”) device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (“Boomerang”, “Cyclone”)

Drivers that use the MII bus controller code.

# 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

ISA Ethernet drivers. See `/usr/src/sys/`i386`/conf/NOTES` for details of which cards are supported by which driver.

# Wireless NIC cards device wlan # 802.11 support

對 802.11 標準的支援。 若要無線上網，則需加上這行。

device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support

對 802.11 加密設備的支援。 若要安全加密以及 802.11i 安全協定， 則需加上這行。

device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC's device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath 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.

Support for various wireless cards.

# Pseudo devices device loop # Network loopback

This is the generic loopback device for TCP/IP. If you telnet or FTP to `localhost` (a.k.a. `127.0.0.1`) it will come back at you through this device. This is mandatory.

device random # Entropy device

Cryptographically secure random number generator.

device ether # Ethernet support

`ether` is only needed if you have an Ethernet card. It includes generic Ethernet protocol code.

device sl # Kernel SLIP

`sl` is for SLIP support. This has been almost entirely supplanted by PPP, which is easier to set up, better suited for modem-to-modem connection, and more powerful.

device ppp # Kernel PPP

This is for kernel PPP support for dial-up connections. There is also a version of PPP implemented as a userland application that uses `tun` and offers more flexibility and features such as demand dialing.

device tun # Packet tunnel.

This is used by the userland PPP software. See the PPP section of this book for more information.

device pty # Pseudo-ttys (telnet etc)

This is a “pseudo-terminal” or simulated login port. It is used by incoming `telnet` and `rlogin` sessions, xterm, and some other applications such as Emacs.

device md # Memory “disks”

Memory disk pseudo-devices.

device gif # IPv6 and IPv4 tunneling

This implements IPv6 over IPv4 tunneling, IPv4 over IPv6 tunneling, IPv4 over IPv4 tunneling, and IPv6 over IPv6 tunneling. The `gif` device is “auto-cloning”, and will create device nodes as needed.

device faith # IPv6-to-IPv4 relaying (translation)

This pseudo-device captures packets that are sent to it and diverts them to the IPv4/IPv6 translation daemon.

# The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter

This is the Berkeley Packet Filter. This pseudo-device allows network interfaces to be placed in promiscuous mode, capturing every packet on a broadcast network (e.g., an Ethernet). These packets can be captured to disk and or examined with the tcpdump(1) program.

### 注意:

The bpf(4) device is also used by dhclient(8) to obtain the IP address of the default router (gateway) and so on. If you use DHCP, leave this uncommented.

# USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # “Human Interface Devices” device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse device ural # Ralink Technology RT2500USB wireless NICs device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet

Support for various USB devices.

# FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!)

Support for various Firewire devices.

For more information and additional devices supported by FreeBSD, see `/usr/src/sys/`i386`/conf/NOTES`.

### 8.5.1. Large Memory Configurations (PAE)

Large memory configuration machines require access to more than the 4 gigabyte limit on User+Kernel Virtual Address (KVA) space. Due to this limitation, Intel added support for 36-bit physical address space access in the Pentium® Pro and later line of CPUs.

The Physical Address Extension (PAE) capability of the Intel® Pentium® Pro and later CPUs allows memory configurations of up to 64 gigabytes. FreeBSD provides support for this capability via the `PAE` kernel configuration option, available in all current release versions of FreeBSD. Due to the limitations of the Intel memory architecture, no distinction is made for memory above or below 4 gigabytes. Memory allocated above 4 gigabytes is simply added to the pool of available memory.

To enable PAE support in the kernel, simply add the following line to your kernel configuration file:

options PAE

### 注意:

The PAE support in FreeBSD is only available for Intel® IA-32 processors. It should also be noted, that the PAE support in FreeBSD has not received wide testing, and should be considered beta quality compared to other stable features of FreeBSD.

PAE support in FreeBSD has a few limitations:

- A process is not able to access more than 4 gigabytes of VM space.

- KLD modules cannot be loaded into a PAE enabled kernel, due to the differences in the build framework of a module and the kernel.

- Device drivers that do not use the bus_dma(9) interface will cause data corruption in a PAE enabled kernel and are not recommended for use. For this reason, a `PAE` kernel configuration file is provided in FreeBSD which excludes all drivers not known to work in a PAE enabled kernel.

- Some system tunables determine memory resource usage by the amount of available physical memory. Such tunables can unnecessarily over-allocate due to the large memory nature of a PAE system. One such example is the `kern.maxvnodes` sysctl, which controls the maximum number of vnodes allowed in the kernel. It is advised to adjust this and other such tunables to a reasonable value.

- It might be necessary to increase the kernel virtual address (KVA) space or to reduce the amount of specific kernel resource that is heavily used (see above) in order to avoid KVA exhaustion. The `KVA_PAGES` kernel option can be used for increasing the KVA space.

For performance and stability concerns, it is advised to consult the tuning(7) manual page. The pae(4) manual page contains up-to-date information on FreeBSD's PAE support.

前一頁 | 上一層 | 下一頁
8.4. 重新調配、編譯 kernel | 起始頁 | 8.6. If Something Goes Wrong

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。