日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

59 FreeBSD連載:編譯安裝新內(nèi)核( 二 )


如果這個(gè)過(guò)程出現(xiàn)錯(cuò)誤,就說(shuō)明配置文件中存在語(yǔ)法錯(cuò)誤,config程序?qū)?huì)提示出錯(cuò)的行,以便使用者進(jìn)行修改 。但是config不會(huì)發(fā)現(xiàn)配置文件中存在的邏輯錯(cuò)誤,這些邏輯錯(cuò)誤只能在編譯內(nèi)核時(shí)才能發(fā)現(xiàn) 。
下一步就是進(jìn)入生成的目錄中進(jìn)行編譯和安裝 。
# cd ../../compile/mykernel# make depend# make編譯過(guò)程需要一些時(shí)間以進(jìn)行編譯,這時(shí)候就可以作些其他任務(wù)等待編譯結(jié)束 。但如果配置文件存在邏輯錯(cuò)誤,在編譯時(shí)會(huì)形成錯(cuò)誤 。因?yàn)閮?nèi)核配置選項(xiàng)不是相互無(wú)關(guān)的,而是存在相關(guān)依賴關(guān)系,有些設(shè)置項(xiàng)會(huì)依賴于另外的設(shè)置項(xiàng) 。當(dāng)發(fā)生這些邏輯錯(cuò)誤的時(shí)候,當(dāng)所有需要的源文件都存在時(shí),就說(shuō)明配置文件中缺少一些基本參數(shù)定義的代碼,需要重新加入 。例如所有的EISA設(shè)備依賴于controller eisa0定義的EISA控制器,那么刪除controller eisa0設(shè)置項(xiàng)就會(huì)造成編譯EISA設(shè)備時(shí),缺少controller eisa0對(duì)應(yīng)的源程序中定義的函數(shù)和變量,就會(huì)造成編譯失敗 。確定沒(méi)有EISA設(shè)備的時(shí)候,就要?jiǎng)h除所有的EISA相關(guān)選項(xiàng),以避免邏輯錯(cuò)誤 。
內(nèi)核編譯成功之后,就可以進(jìn)行安裝了:
# make install這將原有內(nèi)核更改為/kernel.old,然后將編譯后產(chǎn)生的新內(nèi)核移到根目錄下,命名為/kernel 。此后可以重起系統(tǒng),檢查新內(nèi)核是否正確 。
# reboot如果新內(nèi)核的配置不正確,造成某些硬件不能正確檢測(cè)造成不能正常啟動(dòng) 。此時(shí)就需要重新用老內(nèi)核進(jìn)入系統(tǒng),以重新進(jìn)行編譯糾正錯(cuò)誤 。選擇不同內(nèi)核必須通過(guò)Boot Loader的交互界面進(jìn)行,需要在啟動(dòng)時(shí)進(jìn)入Boot Loader,然后可以輸入loadkernel.old命令,使用老內(nèi)核啟動(dòng)系統(tǒng),或者使用kernel.GENERIC通用內(nèi)核啟動(dòng)系統(tǒng) 。
為了避免第二次編譯內(nèi)核時(shí),將錯(cuò)誤的內(nèi)核保存為kernel.old,覆蓋原有的正確設(shè)置,也可以先將正確的內(nèi)核拷貝為根文件系統(tǒng)中的另一個(gè)文件,進(jìn)行備份保存,只有放置在根分區(qū)上的內(nèi)核才能正常啟動(dòng)系統(tǒng),因此備份到其他文件系統(tǒng)中內(nèi)核意義不大 。
【59 FreeBSD連載:編譯安裝新內(nèi)核】未完,待續(xù) 。。。

推薦閱讀