7.2. 建立並安裝一個定製的核心

首先,讓我們快速的瀏覽一下 kernel build directiry。所有我們提到的 目錄都在 /usr/src/sys 這個主目錄之下,你也可以透 過 /sys這個 link 來存取。在這個目錄下,有不少的副 目錄,其中放置了核心各不同部分的程式、資料等等。在這些目錄之中,有兩個 是本章討論的重點,一個是 i386/conf─你將會在這個 目錄下編寫你的核心設定檔;另一個是 compile 目錄─ 你將在這個目錄下編譯你的核心。注意一下這個目錄的邏輯結構,所有支援的硬 體裝置驅動程式、檔案系統、參數選項,都放在各自的目錄。另外,所有放在 i386 目錄下的只跟 PC 硬體有關,而 i386 目錄之外的其他目錄,則是其他 FreeBSD 可能會移植過去的平 台會共用到的部分。

Note: 如果你的系統內 沒有 /usr/src/sys 這個目錄,那表示你沒有安裝好核心的原始程式碼,最快速的安 裝方式,就是以 root 身分執行 /stand/sysinstall,選擇 Configure,選擇 Distributions,選擇 src,最後 選擇 sys 選項。

接下來,切換到 i386/conf 這個目錄,並且將 GENERIC 複製一份,並給這個檔案一個易於辨認名稱, 這個名稱就是你的核心名稱。例如:

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

依照慣例,核心名稱最好全用大寫字母。此外,如果你要管理很多部硬體 配備不同的機器,在核心名稱後加上各個主機名稱是個不錯的做法。在接下來 的章節,我們會用 MYKERNEL 來當作範例。

Note: 在做接下來的動作,請確定你是以 root 身分執行,不然你將會看到 permission denied 這個錯誤訊息。

現在,用你最上手的編輯器編輯 MYKERNEL。 如果你才剛裝好你的系統,那麼系統裡面唯一可用的編輯器大概是 vi 了,vi 是個頗複雜的編輯器,在這裡我們不加以贅 述,你可以參考 bibliography 的介紹 。此外,FreeBSD 還提供了一個叫 ``ee'' 的簡單編輯器,如果你是 新手,ee 是個不錯的選擇。你可以隨心所欲的修改你的核心設定檔最上面的註 解,反映出你做過的設定或修改,以別於 GENERIC

如果你曾經在 SunOS 或是其他 BSD 作業系統下建立過核心,你對這個檔案 的不少內容會有種似曾相似的感覺。如果你才剛從其他作業系統─像是 DOS,轉 移過來,你可能會被 GENERIC 的內容給嚇到,所以請慢 慢並仔細地閱讀 設定檔 這章 節。

Note: 如果你想把你的舊版核心更新成新版的,你最好從你抓取核心原始程式碼 的地方順便抓取新版的 config(8) ,相關的原始程式碼會被放置在 /usr/src/usr.sbin,所以在做接下來的動作前,你必 須先下載這些程式碼,編譯,然後安裝到你的系統裡頭。

當你做完以上步驟後,輸入以下指令來編譯並安裝你的新核心:

    # /usr/sbin/config MYKERNEL
    # cd ../../compile/MYKERNEL
    # make depend
    # make
    # make install

新的核心將被複製到根目錄,叫做 kernel,而舊的 將被更名成 /kernel.old。現在關閉你的系統並重開機 以便系統能載入新的核心。如果你遇到任何困難,請參考本文件最後的 troubleshooting 指示。無論是否 能開機成功,你最好仔細的閱讀 無法開機 這個小節。

Note: 如果你加裝了任何新硬體裝置(像是音效卡),你可能要到 /dev 目錄下增加一些裝置節點,這樣你才能夠使用這些 硬體裝置。