国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

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

2020-07-10 12:09:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  首先對(duì)內(nèi)核構(gòu)建目錄做一個(gè)快速的瀏覽。 這里所提到的所有目錄都在 /usr/src/sys 目錄中; 也可以通過(guò) /sys 來(lái)訪問(wèn)它。 這里的眾多子目錄包含了內(nèi)核的不同部分, 但對(duì)我們所要完成的任務(wù)最重要的目錄是 arch/conf,您將在這里編輯定制的內(nèi)核配置; 以及 compile,編譯過(guò)程中的文件將放置在這里。 arch 表示 i386、 alpha、 amd64、 ia64、 powerpc、 sparc64, 或 pc98 (在日本比較流行的另一種 PC 硬件開(kāi)發(fā)分支)。在特定硬件架構(gòu)目錄中的文件只和特定的硬件有關(guān); 而其余代碼則是與機(jī)器無(wú)關(guān)的,則所有已經(jīng)或?qū)⒁浦膊⑦\(yùn)行 FreeBSD 的平臺(tái)上都共享這些代碼。 文件目錄是按照邏輯組織的,所支持的硬件設(shè)備、 文件系統(tǒng), 以及可選的組件通常都在它們自己的目錄中。
  這一章提供的例子假定您使用 i386 架構(gòu)的計(jì)算機(jī)。 如果您的情況不是這樣,只需對(duì)目錄名作相應(yīng)的調(diào)整即可。
注意: 如果您的系統(tǒng)中 沒(méi)有 /usr/src/sys 這樣一個(gè)目錄, 則說(shuō)明沒(méi)有安裝內(nèi)核源代碼。安裝它最簡(jiǎn)單的方法是通過(guò)以 root 身份運(yùn)行 sysinstall, 選擇 Configure, 然后 Distributions, 然后 src, sys。 如果您不喜歡 sysinstall 并且可以使用 “官方的” FreeBSD CDROM, 則也可以通過(guò)命令行來(lái)安裝:
# mount /cdrom
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
  接下來(lái), 進(jìn)入 arch/conf 目錄下面, 復(fù)制 GENERIC 配置文件, 并給這個(gè)文件起一個(gè)容易辨認(rèn)的名稱,它就是您的內(nèi)核名稱。例如:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
  通常,這個(gè)名稱是大寫(xiě)的,如果您正維護(hù)著多臺(tái)不同硬件的FreeBSD機(jī)器,以您機(jī)器的域名來(lái)命名是非常好的主意。我們把它命名為MYKERNEL就是這個(gè)原因。
提示: 將您的內(nèi)核配置文件直接保存在 /usr/src 可能不是一個(gè)好主意。 如果您遇到問(wèn)題, 刪掉 /usr/src 并重新開(kāi)始很可能是一個(gè)誘人的選擇。 一旦開(kāi)始做這件事,您可能幾秒鐘之后才會(huì)意識(shí)到您同時(shí)會(huì)刪除定制的內(nèi)核配置文件。 另外, 也不要直接編輯 GENERIC, 因?yàn)橄麓文?更新代碼 時(shí)它會(huì)被覆蓋, 而您的修改也就隨之丟失了。
您也可以考慮把內(nèi)核配置文件放到別的地方, 然后再到 i386 目錄中創(chuàng)建一個(gè)指向它的符號(hào)鏈接。
例如:
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL  
# ln -s /root/kernels/MYKERNEL
注意: 必須以 root 身份執(zhí)行這些和接下來(lái)命令,否則就會(huì)得到 permission denied 的錯(cuò)誤提示。
  現(xiàn)在就可以用您喜歡的文本編輯器來(lái)編輯 MYKERNEL 了。如果您剛剛開(kāi)始使用 FreeBSD, 唯一可用的編輯器很可能是 vi,它的使用比較復(fù)雜, 限于篇幅, 這里不予介紹, 您可以在 參考書(shū)目 一章中找到很多相關(guān)書(shū)籍。 不過(guò), FreeBSD 也提供了一個(gè)更好用的編輯器, 它叫做 ee, 對(duì)于新手來(lái)說(shuō),這很可能是一個(gè)不錯(cuò)的選擇。 您可以修改配置文件中的注釋以反映您的配置, 或其他與 GENERIC 不同的地方。
  如果您在SunOS™或者其他BSD系統(tǒng)下定制過(guò)內(nèi)核,那這個(gè)文件中的絕大部分將對(duì)您非常熟悉。如果您使用的是諸如DOS這樣的系統(tǒng),那GENERIC配置文件看起來(lái)就非常困難, 所以在下面的 配置文件章節(jié)將慢慢地、仔細(xì)地進(jìn)行介紹。
注意: 如果您和 FreeBSD project 進(jìn)行了 代碼同步, 則一定要在進(jìn)行任何更新之前查看 /usr/src/UPDATING。這個(gè)文件中描述了更新過(guò)的代碼中出現(xiàn)的重大問(wèn)題或需要注意的地方。 /usr/src/UPDATING 總是和您的 FreeBSD 源代碼對(duì)應(yīng),因此能夠提供比手冊(cè)更具時(shí)效性的新內(nèi)容。
  現(xiàn)在應(yīng)該編譯內(nèi)核的源代碼了。 一共有兩種方法來(lái)完成這項(xiàng)工作,使用哪一種取決于您為什么要重新編譯內(nèi)核, 以及所運(yùn)行的 FreeBSD 版本。
如果您只安裝內(nèi)核源代碼,使用方法1。
如果您在沒(méi)有升級(jí)源代碼的情況下編譯一個(gè)新內(nèi)核(也許您只想為內(nèi)核添加一個(gè)新的選項(xiàng), 如IPFIREWALL),可以使用任何一種方法。
如果您打算把重新構(gòu)建內(nèi)核作為 make buildworld 過(guò)程的一部分來(lái)進(jìn)行, 則應(yīng)使用方法 2。
  如果從上次成功地完成 buildworld-installworld 以來(lái)您還 沒(méi)有 升級(jí)過(guò)代碼 (也就是沒(méi)有運(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)核模塊也會(huì)同時(shí)參與構(gòu)建。 如果您希望更快地升級(jí)內(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)的變量, 請(qǐng)參見(jiàn) make.conf(5) 聯(lián)機(jī)手冊(cè)。
  新內(nèi)核將會(huì)被復(fù)制到 /boot/kernel 目錄中成為 /boot/kernel/kernel 而舊的則被移到 /boot/kernel.old/kernel。 現(xiàn)在關(guān)閉系統(tǒng), 然后用新的內(nèi)核啟動(dòng)計(jì)算機(jī)。如果出現(xiàn)問(wèn)題, 后面的一些 故障排除方法 將幫您擺脫困境。 如果您的內(nèi)核 無(wú)法啟動(dòng), 請(qǐng)參考那一節(jié)。
注意: 其他與啟動(dòng)過(guò)程相關(guān)的文件, 如 loader(8) 及其配置,則放在 /boot。 第三方或定制的模塊也可以放在 /boot/kernel, 不過(guò)應(yīng)該注意保持模塊和內(nèi)核的同步時(shí)很重要的,否則會(huì)導(dǎo)致不穩(wěn)定和錯(cuò)誤。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 望城县| 涞水县| 观塘区| 兴文县| 广河县| 信丰县| 安仁县| 兴和县| 吉木萨尔县| 揭西县| 房山区| 南汇区| 大邑县| 景德镇市| 晋城| 云林县| 腾冲县| 靖安县| 通许县| 抚顺市| 星子县| 巨鹿县| 江都市| 乌兰浩特市| 万荣县| 镇远县| 九台市| 杨浦区| 洛宁县| 庆元县| 怀远县| 大庆市| 黑山县| 呼和浩特市| 荥阳市| 广平县| 大冶市| 弥渡县| 镇坪县| 镇赉县| 上林县|