7.4. 核心設定檔

核心設定檔的格式是很簡單的,每一行包含了一個關鍵字(keyword) 與一個 或多個參數,而大多數的設定都只包含一個參數。# 號之 後的敘述都是註解,並會被程式忽略。接下來的每個小節,將依序介紹每個列在 GENERIC 的參數,雖然各相關主題(如網路)的關鍵字會 放在同一小節,但是這些關鍵字可能散落在 GENERIC 的 各處。 詳細的列出各個選項(option),而 與 GENERIC 在同個目錄的 LINT 則列出更詳細的選項(options)與註解。如果你不確定某一行設定的目的或其必 要性,請先看看 LINT

數字的引號限制: 在 FreeBSD 3.X(含 3.X)之前的所有版本,其核心設定檔中若有任何屬於 文字形式的數字(如 i386),必須用雙引號包起來,不然執行 config(8) 時會出錯。

FreeBSD 4.X,也就是本手冊所針對的版本,移除了這個限制,如果你使 用 4.X 之前的版本,請查看你系統內的 /usr/src/sys/i386/conf/LINT/usr/src/sys/i386/conf/GENERIC 兩個檔案,確定哪 些字串需要加上雙引號。

底下是一個 GENERIC 核心設定檔的範例,裡面加上 很多的註解好讓你能了解每個選項的意義。這個範例檔應該非常接近 /usr/src/sys/i386/conf/GENERIC 的內容。如果你想知 道所有可用核心參數,可以查看 /usr/src/sys/i386/conf/LINT

    #
    # GENERIC -- Generic kernel configuration file for FreeBSD/i386
    #
    # For more information on this file, please read the handbook section on
    # Kernel Configuration Files:
    #
    #    http://www.freebsd.org/handbook/kernelconfig-config.html
    #
    # The handbook is also available locally in /usr/share/doc/handbook
    # if you've installed the doc distribution, otherwise always see the
    # FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
    # latest information.
    #
    # An exhaustive list of options and more detailed explanations of the
    # device lines is also present in the ./LINT configuration file. If you are
    # in doubt as to the purpose or necessity of a line, check first in LINT.
    #
    # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246 2000/03/09 16:32:55 jlemon Exp $

底下的關鍵字是每個核心一定要有的:

    machine		i386

硬體平台架構,在這裡要填上 i386alphapc98 其中一種。

    cpu          I386_CPU
    cpu          I486_CPU
    cpu          I586_CPU
    cpu          I686_CPU

上面列出可用的 CPU 設定。你可以寫上好幾行(特別是在你不知道該用 I586_CPUI686_CPU 時)。然而, 對於一個定製的核心,最好只指定你系統所使用的 CPU 類型,如果你不確定你 的 CPU 類型,你可以輸入 dmesg 查看開機訊息。

Alpha 硬體平台的 cpu_type 值跟上面不一樣,目前 已支援的 Alpha CPU 有以下幾種:

    cpu          EV4
    cpu          EV5

如果你使用 Alpha CPU,你應該使用上面其中一種 CPU 類型。

    ident          GENERIC

這是核心的識別字。你應該把它改成你想要的核心名稱,在本手冊中,我們 用 MYKERNEL 來當核心識別字。放在 ident 之後的字串,開機時會顯示在螢幕上,所以你可以 給每個核心不同的名稱好識別其用途(譬如建立一個實驗性質的核心)。

    maxusers          32

maxusers 這個選項設定 system tables 的大小。這 個數值與你期望可能同時來使用你系統的使用者數目大致相符。然而,在一般 情形下,你最少要設定 4,以上,特別是你要執行 X Window 或是編譯軟體。原因是 maxusers 值限定了系統同 時可有多少個 processes,其算法是 20 + 16 * maxusers 。如果你設定 maxusers 值是 1,則 你的系統只能同時存在 36 個 processes,包括 18 個(或更多)系統開機即佔去 的 processes,如果你執行了 X Window,則又要吃掉 15 個以上。甚至讀取一 個 man page 也會開啟九個 processes 來過濾、解壓縮、然後顯示出來。把 maxusers 值設定到 64 可以讓你的系統同時處理 1044 個 程序(processes),對大部分的使用者來說應該足夠了。當你執行程式時看到類 似 proc table full 的訊息,或者你的伺服器同時會 有很多人來存取、使用時(如 ftp.FreeBSD.org ),你可以加大這個參數的值,並重新編譯核心。

Note: maxuser 這個參數 並不是 限制可以同時使用你系統的使用者人數。它只是考量系統中可能同時使用你系 統的使用者上限,以及每個使用者可能執行的程序個數,然後設定一些系統所 使用的表格的合理大小。有一個關鍵字的值則真的 限 制了可以同時遠端連線 的人數,這個關鍵字是 pseudo-device pty 16

接下來的選項有些是可由可無的,查看每個選項底下的註解以獲得更詳細的 資訊。

    #makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols
    options          MATH_EMULATE      #Support for x87 emulation

如果你的電腦沒有浮點運算處理器(386 或 486SX),這行設定可以讓你的核 心模擬出一個浮點運算處理器。如果你使用 486DX,或你用 386、486SX,但是 有加裝 387、487 晶片,或者你用更高階的 CPU(如 Pentium、Pentium II 等 等),你可以註解這一行。

Note: 這個模擬的浮點運算處理器並不是很精確,如果 你沒有浮點運算器,且你需要較高的精度,你可以改用 GPL_MATH_EMULATE 參數,這將會使用 GNU 的浮點運算 模擬器。至於為什麼這個模擬器不是系統預設值,是因為 GUN 使用執照的關 係。

    options          INET          #InterNETworking

網路支援。即使你不打算連上網路,還是要留下這個選項。很多程式需要回 溯介面(如連線到你自己的電腦),所以這個選項基本上是一定要有的。

    options          INET6          #IPv6 communications protocols

這個選項讓核心可以支援 IPv6 通訊協定。

    options          FFS          #Berkeley Fast Filesystem
    options          FFS_ROOT     #FFS usable as root device [keep this!]

基本的硬碟檔案系統,如果你要從硬碟開機,就留著。

    options          MFS          #Memory Filesystem
    options          MD_ROOT      #MD is a potential root device

Memory-mapped 檔案系統。使用 RAM disk,以供需要快速存取的資料或是 暫存資料用,如果你有很大的 swap 空間,使用這個選項可以善用你的 swap 空 間。把 /tmp 掛入到 MFS 分割區是一個相當好的想法, 因為不少程式都會在此暫存資料。要把 /tmp 掛到 MFS RAM disk,可以修改 /etc/fstab,加入底下的設定:

    /dev/ad1s2b	/tmp mfs rw 0 0

接著你可以重開機,或是執行 mount /tmp

    options          NFS          #Network Filesystem
    options          NFS_ROOT     #NFS usable as root device, NFS required

network 檔案系統(NFS)。除非你想透過 TCP/IP 網路掛上其他 UNIX 檔案 伺服器的分割區,不然你可以註解掉這一行。

    options          MSDOSFS      #MSDOS Filesystem

MS-DOS 檔案系統。除非你要在開機時掛入一個 DOS 格式的硬碟,不然你可 以放心的把這行註解掉。如同前述,在你第一次掛入一個 DOS分割區時,核心將 會自動載入模組來支援它。此外,mtools 這個相 當不錯的軟體(可在 ports 裡面找到),可以讓你存取 DOS 磁片,而不需要掛入 或卸載軟碟(也不需要 MSDOSFS 的支援)。

    options          CD9660       #ISO 9660 Filesystem
    options          CD9660_ROOT  #CD-ROM usable as root, CD9660 required

CD-ROM 使用的 ISO 9660 檔案系統。如果你沒有光碟機,或是很少用光碟 機讀取資料,可以註解掉這一行(核心會在第一次掛入時動態載入模組以支援之) 。音樂 CD 則不會用到這個檔案系統。

    options          PROCFS       #Process filesystem

process 檔案系統。這是一個掛在 /proc 底下的 "假"檔案系統,允許一些程式,像是 ps(1) 來讀取資料, 提供你正在執行的 processes 的資訊。

    options          COMPAT_43    #Compatible with BSD 4.3 [KEEP THIS!]

使系統相容 4.3BSD,不要拿掉這一行,不然部分程式將無法正常執行。

    options          SCSI_DELAY=15000    #Delay (in ms) before probing SCSI

這行設定告訴核心等待 15 秒鐘,以供 SCSI 控制器偵測你電腦上的 SCSI 裝置。如果你只有 IDE 硬碟,你可以不要理會這個設定,要不然你可以降低這 個值,也許降到五秒,以增加開機的速度。如果你發現降低後,FreeBSD 無法正 確辨認你的 SCSI 裝置,那麼你該提高這個值,延長等待時間。

    options          UCONSOLE            #Allow users to grab the console

允許使用者攫取 console,對 X Window 頗為有用。舉例來說,你可以輸入 xterm -C 來開啟一個 console xterm,這個視窗將顯現任 何 writetalk 等指令的訊息,以 及你送出去的訊息。當然,kernel 產生的訊息也會在這裡出現。

    options          USERCONFIG          #boot -c editor

這個選項使你可以在開機時進入硬體組態編輯器。

    options          VISUAL_USERCONFIG   #visual boot -c editor

這個選項使你可以在開機時進入視覺化的硬體組態編輯器。

    options          KTRACE              #ktrace(1) support

打開核心的追蹤功能,在除錯時很有用。

    options          SYSVSHM             #SYSV-style shared memory

提供 System V Shared memory(SHM) 的支援,最常用到 SHM 的應該是 X Window 的 XSHM 延伸,不少繪圖相關程式(像是影片撥放程式 XAnim 與 Linux DOOM 遊戲)會自動使用 SHM 以提供額外的速度。如果你要使用 X Window,你 最好加入這個選項。

    options          SYSVSEM             #SYSV-style semaphores

支援 System V semaphores,比較不常用到,但是只在 kernel 中佔用幾百 位元組的空間。

    options          SYSVMSG             #SYSV-style message queues

支援 System V messages,一樣的,只佔用 kernel 數百位元組的空間。

Note: >ipcs(1) 指令可以顯示出任何使用到上述三個 System V 功能的 processes。

    options 	P1003_1B		#Posix P1003_1B real-time extensions
    options 	_KPOSIX_PRIORITY_SCHEDULING

1993年POSIX標準中新加入的即時系統擴充選項,ports裡面某些應用軟體( 像 Star office)會用到這些選項。

    options		ICMP_BANDLIM		#Rate limit bad replies

這個選項用來啟動 ICMP 協定對於錯誤回應的頻寬限制,這個選項通常會用 在保護你的機器免於阻斷服務封包攻擊。

    # To make an SMP kernel, the next two are needed
    #options        SMP                     # Symmetric MultiProcessor Kernel
    #options        APIC_IO                 # Symmetric (APIC) I/O

如果你要使用 SMP,一定要加入上面兩行。

    device          isa

所有 FreeBSD 所支援的 PC 都需要這行設定。如果你使用 IBM PS/2 (微通 道架構)電腦,則你無法在該機器上執行 FreeBSD。

    device          eisa

如果你的主機板上有 EISA 匯流排,加入這個設定。使用這個選項可以自動 偵測並設定所以連接在 EISA 匯流排上的裝置。

    device          pci

如果你的主機板有 PCI 匯流排,就加入這個選項。使用這個選項可以自動 偵測 PCI 卡並橋接 PCI 與 ISA 匯流排。

    # 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

軟式磁碟機控制器: fd0 A: 磁碟機,fd1 B: 磁碟雞。

    device          ata

這個驅動程式支援所有的 ATA 與 ATAPI 裝置。你只需要寫一行 device ata 即可,核心會偵測新式機器上所有的 PCI ATA/ATAPI 裝置。

    device          atadisk                 # ATA disk drives

要使用 ATAPI 磁碟機,就要加入這個 device ata 與 這個選項。

    
    device          atapicd                 # ATAPI CDROM drives

要使用 ATAPI 光碟機,就要加入這個 device ata 與 這個選項。

    device          atapifd                 # ATAPI floppy drives

要使用 ATAPI 軟碟機,就要加入這個 device ata 與 這個選項。

    device          atapist                 # ATAPI tape drives

要使用 ATAPI 磁帶機,就要加入這個 device ata 與 這個選項。

    options         ATA_STATIC_ID           #Static device numbering

這個選項固定控制器的編號(如同舊的驅動程式),不然裝置的編號會被動態 配置。

    # ATA and ATAPI devices
    device          ata0        at isa? port IO_WD1 irq 14
    device          ata1        at isa? port IO_WD2 irq 15

上面幾行是給舊式、非 PCI 的系統使用的。

    # SCSI Controllers
    device          ahb        # EISA AHA1742 family
    device          ahc        # AHA2940 and onboard AIC7xxx 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          sym        # NCR/Symbios Logic (newer chipsets)
    
    device          adv0       at isa?
    device          adw
    device          bt0        at isa?
    device          aha0       at isa?
    device          aic0       at isa?

SCSI 控制器。將你系統沒安裝的控制器註解掉。如果你的系統只有 IDE, 你可以將上面幾行全部移除。

    # SCSI peripherals
    device          scbus      # SCSI bus (required)
    device          da         # Direct Access (disks)
    device          sa         # Sequential Access (tape etc)
    device          cd         # CD
    device          pass       # Passthrough device (direct SCSI
    access)

SCSI 周邊,一樣的,把你沒有的移除,如果你只使用 IDE 裝置,你可以移 除全部的設定。

    # RAID controllers
    device          ida        # Compaq Smart RAID
    device          amr        # AMI MegaRAID
    device          mlx        # Mylex DAC960 family

已支援的 RAID 控制器。如果你沒任何 RAID 控制器,你可以移除全部的設 定。

    # atkbdc0 controls both the keyboard and the PS/2 mouse
    device          atkbdc0    at isa? port IO_KBD

鍵盤控制器(atkbdc)提供了 AT 鍵盤以及 PS/2 滑鼠 裝置的 I/O 服務。鍵盤驅動程式(atkbd)與 PS/2 滑鼠驅 動程式(psm)需要這個控制器。

    device          atkbd0     at atkbdc? irq 1

atkbd 驅動程式與 atkbdc 支援 了 AT 84 鍵鍵盤或者連接到 AT 鍵盤控制器的 AT 加強型鍵盤。

    device          psm0       at atkbdc? irq 12

如果你的滑鼠連接到 PS/2 滑鼠連接埠,你需要這行設定。

    device          vga0        at isa?

顯示卡驅動程式。

    # splash screen/screen saver
    pseudo-device          splash

此虛擬裝置讓使用者可以在開機時顯示點陣圖。螢幕保護程式也需要用到這 個虛擬裝置。

    # syscons is the default console driver, resembling an SCO console
    device          sc0          at isa?

>sc0 是預設的 console 驅動程式,類似 SCO console。絕大部分全螢幕程式都透過 termcap 這類終 端機資料函式庫來存取 console,因此不論你用這個驅動程式或是 VT220 相容 console 驅動程式 vt0,其間並無太大差別。如果使用 sc0,且你在登入系統後,執行全螢幕程式遇到問題,請將你的 TERM 設定成 scoansi

    # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
    #device          vt0     at isa?
    #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

這是一個相容 VT220 的 console 驅動程式,並向下相容 VT100/102。在部 分與 sc0 相衝的筆記型電腦上,這個驅動程式運作良好。 當然,當你登入系統時,記得設定 TERM 參數為 vt100 或是 vt220。當連接到網路上 許多電腦時,這個驅動程式也常是很有用的,這是因為許多的電腦上的 termcap 或是 terminfo 並沒有 sc0 的資料 -- 而 vt100 幾乎所有的平台上都有支援。

    # Floating point support - do not disable.
    device          npx0     at nexus? port IO_NPX irq 13

npx0 是連接 FreeBSD 與浮點運算處理器的一個介面 ,不論你有硬體的浮點運算處理器還是使用軟體模擬,都需要這個設定。這個設 定並不是可有可無的。

    # Power management support (see LINT for more options)
    device          apm0     at nexus? disable flags 0x20  # Advanced Power Management

支援進階電源管理(APM),對筆記型電腦尤其有用。

    # 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

PCMCIA 支援,如果你把 FreeBSD 裝在筆記型電腦上,你會需要這個裝置。

    # 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

四個串列埠裝置,在 MS-DOS/Windows 裡面被稱作 COM1 ~ COM4。

Note: 如果你你有一張內接式 Modem 卡,而且 COM2 是打開的,那麼你必須把 Modem 卡的 IRQ 改成 2(技術上來說 IRQ2 = IRQ9)這樣 FreeBSD 才可以正常 使用你的 Modem 卡。如果你有一張多埠卡,請閱讀 sio(4) 以獲得更多 資訊。有些顯示卡(特別是採用 S3 晶片的顯示卡)使用 0x*2e8 這個 IO 位址,加上許多廉價的序列卡無法完全 解析 16 位元的 IO 位址,於是造成衝突,使得這些使用 COM4 的卡幾乎無法 正常使用。

每個序列埠需要自己的 IRQ(除非你用可以支援分享 IRQ 的多埠卡),所 以 COM3 跟 COM4 的 IRQ 預設是不能使用。

    # Parallel port
    device          ppc0    at isa? irq 7

這是 ISA 匯流排的並列埠介面。

    device          ppbus      # Parallel port bus (required)

支援並列埠匯流排。

    device          lpt        # Printer

支援並列埠印表機。

Note: 如果要使用並列埠印表機,就要同時加上上面三個裝置的設定。

    device          plip       # TCP/IP over parallel

這是並列網路介面的驅動程式。

    device          ppi        # Parallel port interface device

一般用途的 I/O("geek port" + IEEE1284 I/O。

    #device         vpo        # Requires scbus and da

Iomega Zip 磁碟機需這個裝置。它同時需要 scbus da 支援。把並列埠設定成 EPP 1.9 模式下可以獲得最加 效能。

    # PCI Ethernet NICs.
    device          de         # DEC/Intel DC21x4x ("Tulip")
    device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
    device          tx         # SMC 9432TX (83c170 "EPIC")
    device          vx         # 3Com 3c590, 3c595 ("Vortex")
    device          wx         # Intel Gigabit Ethernet Card ("Wiseman")

一堆 PCI 網路卡的驅動程式。把你系統沒有的卡註解掉或是移除。

    # PCI Ethernet NICs that use the common MII bus controller code.
    device          miibus     # MII bus support

一些 10/100 乙太網路卡需要 MII 匯流排,這些卡不是使用跟 MII 相容的 transceivers 就是實作一個跟 MII 類似的 transceiver 控制介面。在核心設 定檔裡頭加上 device miibus 以提供通用 miibus API 與 所有使用通用 miibus 而不是使用自己驅動程式的 PHY。

    device          dc         # DEC/Intel 21143 and various workalikes
    device          rl         # RealTek 8129/8139
    device          sf         # Adaptec AIC-6915 ("Starfire")
    device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
    device          ste        # Sundance ST201 (D-Link DFE-550TX)
    device          tl         # Texas Instruments ThunderLAN
    device          vr         # VIA Rhine, Rhine II
    device          wb         # Winbond W89C840F
    device          xl         # 3Com 3c90x ("Boomerang", "Cyclone")

用到 MII 匯流排控制器的'網路卡驅動程式。

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

ISA 乙太網路卡。查看 /usr/src/sys/i386/conf/LINT 以了解哪個驅動程式支 援哪張卡。

    # Pseudo devices - the number indicates how many units to allocated.
    pseudo-device   loop          # Network loopback

這是一個通用的 TCP/IP 回溯介面。如果你 telnet 或 ftp 到 localhost(也等於 127.0.0.1)那個你實際上是透過這個虛擬裝置連回你 的電腦。這個裝置一定要有,切勿移除。

    pseudo-device   ether         # Ethernet support

如果你有乙太網路卡,你就需要 ether 虛擬裝置,它 包含了通用的乙太網路通訊協定的程式碼。

    pseudo-device   sl      1     # Kernel SLIP

sl 支援 SLIP。目前 SLIP 已經被 PPP 取代了,因為 PPP 比較好設定,較適合 Modem 對 Modem 的連線,而且功能更強大。 sl 後面的 number 設定最 多能同時支援幾個 SLIP 連線。

    pseudo-device   ppp     1     # Kernel PPP

支援 kernel PPP 撥接連線。另外有一個使用 tun 的 userland PPP,提供更高的彈性與更多的功能,像是有連線需求再撥號的功能。 ppp 後面的 number 設定最 多能同時支援幾個 PPP 連線。

    pseudo-device   tun           # Packet tunnel.

userland PPP 會使用到這個虛擬裝置。tun 後面的 number 設定最多能同時支援幾個 PPP 連線。查 閱本使用手冊的 PPP 部份以獲得更多資訊。

    
    pseudo-device   pty           # Pseudo-ttys (telnet etc)

這是虛擬 "pseudo-terminal" 或虛擬的登入埠。遠端連過來 的 telnet 與 rlogin 連線、xtermemacs 等應用程式都會用到這個虛擬裝置。 pty 後面的 number 設定要 建立幾個 pty。如果你會同時用到的 xterm 視窗 或是遠端連線超過預設的 16 個,你可以增加這個值,但是不要超過 256 個。

    pseudo-device   md            # Memory "disks"

memory disk 虛擬裝置。

    pseudo-device   gif     4     # IPv6 and IPv4 tunneling

提供 IPv6 經 IPv4 的傳送通道、IPv4 經 IPv6 的傳送通道、IPv4 經 IPv4 的傳送通道以及 IPv6 經 IPv6 的傳送通道。

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

這個虛擬裝置抓取送給它的封包,並轉給負責 IPv4/IPv6 轉換的背景服務 程式。

    # The `bpf' pseudo-device enables the Berkeley Packet Filter.
    # Be aware of the administrative consequences of enabling this!
    pseudo-device   bpf           # Berkeley packet filter

這是柏克萊的封包過濾器。這個虛擬裝置讓網路卡處在不區分封包的模式, 在此模式此裝置會抓取廣播式網路(如乙太網路)的每個封包。這些封包會被存在 硬碟,或是由 tcpdump(1) 程式來分析。

    # USB support
    #device         uhci          # UHCI PCI->USB interface
    #device         ohci          # OHCI PCI->USB interface
    #device         usb           # USB Bus (required)
    #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
    # USB Ethernet, requires mii
    #device         aue           # ADMtek USB ethernet
    #device         cue           # CATC USB ethernet
    #device         kue           # Kawasaki LSI USB ethernet

上面的設定支援各式各樣的 USB 裝置。

查看 /usr/src/sys/i386/conf/LINT 以獲得更多 FreeBSD 支援的 USB 裝置與其資訊。