佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 建立并安裝一個(gè)定制的內(nèi)核

建立并安裝一個(gè)定制的內(nèi)核

熱門標(biāo)簽:電話機(jī)器人搭建 硅谷的囚徒呼叫中心 美團(tuán) 家政服務(wù)網(wǎng)絡(luò) 解決方案 百度競價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 服務(wù)器配置 外呼系統(tǒng)
  首先對內(nèi)核構(gòu)建目錄做一個(gè)快速的瀏覽。 這里所提到的所有目錄都在 /usr/src/sys 目錄中; 也可以通過 /sys 來訪問它。 這里的眾多子目錄包含了內(nèi)核的不同部分, 但對我們所要完成的任務(wù)最重要的目錄是 arch/conf,您將在這里編輯定制的內(nèi)核配置; 以及 compile,編譯過程中的文件將放置在這里。 arch 表示 i386、 alpha、 amd64、 ia64、 powerpc、 sparc64, 或 pc98 (在日本比較流行的另一種 PC 硬件開發(fā)分支)。在特定硬件架構(gòu)目錄中的文件只和特定的硬件有關(guān); 而其余代碼則是與機(jī)器無關(guān)的,則所有已經(jīng)或?qū)⒁浦膊⑦\(yùn)行 FreeBSD 的平臺上都共享這些代碼。 文件目錄是按照邏輯組織的,所支持的硬件設(shè)備、 文件系統(tǒng), 以及可選的組件通常都在它們自己的目錄中。
  這一章提供的例子假定您使用 i386 架構(gòu)的計(jì)算機(jī)。 如果您的情況不是這樣,只需對目錄名作相應(yīng)的調(diào)整即可。
注意: 如果您的系統(tǒng)中 沒有 /usr/src/sys 這樣一個(gè)目錄, 則說明沒有安裝內(nèi)核源代碼。安裝它最簡單的方法是通過以 root 身份運(yùn)行 sysinstall, 選擇 Configure, 然后 Distributions, 然后 src, sys。 如果您不喜歡 sysinstall 并且可以使用 “官方的” FreeBSD CDROM, 則也可以通過命令行來安裝:
# mount /cdrom
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
  接下來, 進(jìn)入 arch/conf 目錄下面, 復(fù)制 GENERIC 配置文件, 并給這個(gè)文件起一個(gè)容易辨認(rèn)的名稱,它就是您的內(nèi)核名稱。例如:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
  通常,這個(gè)名稱是大寫的,如果您正維護(hù)著多臺不同硬件的FreeBSD機(jī)器,以您機(jī)器的域名來命名是非常好的主意。我們把它命名為MYKERNEL就是這個(gè)原因。
提示: 將您的內(nèi)核配置文件直接保存在 /usr/src 可能不是一個(gè)好主意。 如果您遇到問題, 刪掉 /usr/src 并重新開始很可能是一個(gè)誘人的選擇。 一旦開始做這件事,您可能幾秒鐘之后才會意識到您同時(shí)會刪除定制的內(nèi)核配置文件。 另外, 也不要直接編輯 GENERIC, 因?yàn)橄麓文?更新代碼 時(shí)它會被覆蓋, 而您的修改也就隨之丟失了。
您也可以考慮把內(nèi)核配置文件放到別的地方, 然后再到 i386 目錄中創(chuàng)建一個(gè)指向它的符號鏈接。
例如:
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL  
# ln -s /root/kernels/MYKERNEL
注意: 必須以 root 身份執(zhí)行這些和接下來命令,否則就會得到 permission denied 的錯(cuò)誤提示。
  現(xiàn)在就可以用您喜歡的文本編輯器來編輯 MYKERNEL 了。如果您剛剛開始使用 FreeBSD, 唯一可用的編輯器很可能是 vi,它的使用比較復(fù)雜, 限于篇幅, 這里不予介紹, 您可以在 參考書目 一章中找到很多相關(guān)書籍。 不過, FreeBSD 也提供了一個(gè)更好用的編輯器, 它叫做 ee, 對于新手來說,這很可能是一個(gè)不錯(cuò)的選擇。 您可以修改配置文件中的注釋以反映您的配置, 或其他與 GENERIC 不同的地方。
  如果您在SunOS™或者其他BSD系統(tǒng)下定制過內(nèi)核,那這個(gè)文件中的絕大部分將對您非常熟悉。如果您使用的是諸如DOS這樣的系統(tǒng),那GENERIC配置文件看起來就非常困難, 所以在下面的 配置文件章節(jié)將慢慢地、仔細(xì)地進(jìn)行介紹。
注意: 如果您和 FreeBSD project 進(jìn)行了 代碼同步, 則一定要在進(jìn)行任何更新之前查看 /usr/src/UPDATING。這個(gè)文件中描述了更新過的代碼中出現(xiàn)的重大問題或需要注意的地方。 /usr/src/UPDATING 總是和您的 FreeBSD 源代碼對應(yīng),因此能夠提供比手冊更具時(shí)效性的新內(nèi)容。
  現(xiàn)在應(yīng)該編譯內(nèi)核的源代碼了。 一共有兩種方法來完成這項(xiàng)工作,使用哪一種取決于您為什么要重新編譯內(nèi)核, 以及所運(yùn)行的 FreeBSD 版本。
如果您只安裝內(nèi)核源代碼,使用方法1。
如果您在沒有升級源代碼的情況下編譯一個(gè)新內(nèi)核(也許您只想為內(nèi)核添加一個(gè)新的選項(xiàng), 如IPFIREWALL),可以使用任何一種方法。
如果您打算把重新構(gòu)建內(nèi)核作為 make buildworld 過程的一部分來進(jìn)行, 則應(yīng)使用方法 2。
  如果從上次成功地完成 buildworld-installworld 以來您還 沒有 升級過代碼 (也就是沒有運(yùn)行 CVSup、 CTM, 或使用 anoncvs), 則可以放心使用 config、 make depend、 make、 make install。
聯(lián)編內(nèi)核
進(jìn)入 /usr/src 目錄:
# cd /usr/src
編譯內(nèi)核:
# make buildkernel KERNCONF=MYKERNEL
安裝新內(nèi)核:
# make installkernel KERNCONF=MYKERNEL
注意: 使用這種方法聯(lián)編內(nèi)核時(shí), 需要安裝完整的 FreeBSD 源代碼。
提示: 默認(rèn)情況下, 在聯(lián)編您所定制的內(nèi)核時(shí), 全部 內(nèi)核模塊也會同時(shí)參與構(gòu)建。 如果您希望更快地升級內(nèi)核,或者只希望聯(lián)編您所需要的模塊, 則應(yīng)在聯(lián)編之前編輯 /etc/make.conf:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
這個(gè)變量的內(nèi)容是所希望構(gòu)建的模塊列表。 如果希望了解更多與構(gòu)建內(nèi)核有關(guān)的變量, 請參見 make.conf(5) 聯(lián)機(jī)手冊。
  新內(nèi)核將會被復(fù)制到 /boot/kernel 目錄中成為 /boot/kernel/kernel 而舊的則被移到 /boot/kernel.old/kernel。 現(xiàn)在關(guān)閉系統(tǒng), 然后用新的內(nèi)核啟動計(jì)算機(jī)。如果出現(xiàn)問題, 后面的一些 故障排除方法 將幫您擺脫困境。 如果您的內(nèi)核 無法啟動, 請參考那一節(jié)。
注意: 其他與啟動過程相關(guān)的文件, 如 loader(8) 及其配置,則放在 /boot。 第三方或定制的模塊也可以放在 /boot/kernel, 不過應(yīng)該注意保持模塊和內(nèi)核的同步時(shí)很重要的,否則會導(dǎo)致不穩(wěn)定和錯(cuò)誤。

標(biāo)簽:烏蘭察布 南昌 邢臺 防城港 北海 臨沂 撫州 韶關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《建立并安裝一個(gè)定制的內(nèi)核》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阜宁县| 汉中市| 洪江市| 昭苏县| 桑日县| 上栗县| SHOW| 荥经县| 昭通市| 正阳县| 呼图壁县| 梅州市| SHOW| 溧阳市| 湄潭县| 应用必备| 江山市| 宁都县| 阿克陶县| 文安县| 海门市| 界首市| 泰兴市| 邵武市| 抚州市| 驻马店市| 洪雅县| 邵阳市| 临清市| 拜泉县| 和静县| 波密县| 成都市| 永安市| 大埔区| 汝城县| 九台市| 饶平县| 天全县| 泾川县| 西乡县|