8.4. 設定檔
前一頁 | 章 8. 設定 FreeBSD 核心 | 下一頁

## 8.4. 設定檔

為了要建立自訂核心設定檔並編譯自訂核心，必須先安裝完整的 FreeBSD 原始碼樹。

若 `/usr/src/` 目錄不存在或者是空的，代表尚未安裝。原始碼可以使用 Subversion 並依據 節 A.3, “使用 Subversion” 中的操作說明來安裝。

Once source is installed, review the contents of `/usr/src/sys`. This directory contains a number of subdirectories, including those which represent the following supported architectures: `amd64`, `i386`, `ia64`, `powerpc`, and `sparc64`. Everything inside a particular architecture's directory deals with that architecture only and the rest of the code is machine independent code common to all platforms. Each supported architecture has a `conf` subdirectory which contains the `GENERIC` kernel configuration file for that architecture.

請不要直接對 `GENERIC` 檔案做編輯。複製該檔案為另一個名稱，並對複製出來的檔案做編輯，習慣上檔名會全部使用大寫字元。當維護多台安裝不同的硬體的 FreeBSD 機器時，將檔名後方加上機器的主機名稱 (Host name) 是個不錯的方法。以下範例使用 `amd64` 架構的 `GENERIC` 設定檔建立了一個複本名稱為 `MYKERNEL`：

    # cd /usr/src/sys/amd64/conf
    # cp GENERIC MYKERNEL

現在可以使用任何 ASCII 文字編輯器來自訂 ``MYKERNEL``。預設的編輯器為 vi，在 FreeBSD 也內建一個易於初學者使用的編輯器叫做 ee。

核心設定檔的格式很簡單，每一行會含有代表裝置 (Device) 或子系統 (Subsystem) 的關鍵字、參數以及簡短的說明。任何在 `#` 符號之後的文字會被當做註解並且略過。要移除核心對某個裝置或子系統的支援，僅需要在代表該裝置或子系統的行前加上 `#` 符號。請不要在您還不了解用途的行前加上或移除 `#` 符號。

### 警告:

移除對裝置或選項的支援很容易會造成核心損壞。例如，若從核心設定檔 ata(4) 驅動程式，那麼使用 ATA 磁碟驅動程式的系統便會無法開機。因此當您不確定時，請在核心保留該項目的支援。

除了在設定檔中提供的簡短說明之外，尚有其他的說明在 `NOTES` 檔案中，可在與該架構 `GENERIC` 相同的目錄底下找到。要查看所有架構通用的選項，請參考 `/usr/src/sys/conf/NOTES`。

### 提示:

當完成自訂的核心設定檔，請備份到 `/usr/src` 位置之外。

或者，將核心設定檔放在其他地方，然後建立一個符號連結 (Symbolic link) 至該檔案：

    # cd /usr/src/sys/amd64/conf
    # mkdir /root/kernels
    # cp GENERIC /root/kernels/MYKERNEL
    # ln -s /root/kernels/MYKERNEL

設定檔中可以使用 `include` 指令 (Directive)。該指令可以引用其他設定檔到目前的設定檔，這讓只需根據現有檔案設定做些微調整時更簡單。若只有少量的額外選項或驅動程式需要設定，該指令可引用 `GENERIC` 並設定額外增加的選項，如範例所示：

    include GENERIC
    ident MYKERNEL

    options         IPFIREWALL
    options         DUMMYNET
    options         IPFIREWALL_DEFAULT_TO_ACCEPT
    options         IPDIVERT

使用此方法，設定檔只含有與 `GENERIC` 核心不同的部份。當升級有新功能加入 `GENERIC` 時，也可一併引用，除非特別使用 `nooptions` 或 `nodevice` 選項來排除設定。更詳細的設定檔指令及其說明可在 config(5) 找到。

### 注意:

要產生含有所有可用選項的設定檔，可以 `root` 執行以下指令：

    # cd /usr/src/sys/arch/conf && make LINT

前一頁 | 上一層 | 下一頁
8.3. 偵測系統硬體 | 起始頁 | 8.5. 編譯與安裝自訂核心

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

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