日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

编译 linux 3,linux内核的编译(3)

發布時間:2024/9/27 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译 linux 3,linux内核的编译(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux內核的編譯(3)

2008-02-23 07:17:46來源:互聯網 閱讀 ()

無論什麼檔名),然後將你做的 zImage 拷貝進去,(例如,如果你用” /vmlinuz ″

的話,就像這樣″ cp zImage /vmlinuz ”)。

接著重新執行 lilo — 在較新的系統上,你可以只執行″ lilo ,″但是在較舊的系

統上,你可能必須執行 /etc/lilo/install 或甚至是

/ect/lilo/lilo -C /etc/lilo/config 。

如果你想知道更多有關於 lilo 的配置,或是你并沒有 lilo 但是你想要安裝的話,從

你喜歡的 ftp 節點拿最新的版本然後依說明行事。

要能夠從硬碟啟動你的舊核心其中之一的話(這是另一個在新核心出狀況的情況下保護

你自己的方法),把 lilo 配置檔中所有的(包括一行)″ image = xxx ″ 拷貝到檔

案的最底端,然後把″ image = xxx ″改成″ image = yyy ,″其中的″ yyy ″是

你備份舊核心所存檔的名字。接著,把″ lable = xXx ″改成像是” lable = linux-

backup。”然後重新執行 lilo 。

你可能得要加上一行″ delay = x ,″其中的 x 是以十分之一秒為單位的時間,這是

用來使 lilo 在啟動前先等一下,所以你可以中斷它的執行(例如用 shift 鍵)。然

後鍵入所備份的啟動映像之 lable (在發生了某些令人不愉快的事情的情況下)。

3. 修補核心

3.1. 使用修補檔

核心的小幅更新是以修補檔的方式發行。例如,如果你的版本是 1.1.45 ,而且你注意

到出現了一個″ patch46.gz ″可以用來升級它,這代表你可以藉由使用這個修補檔將

版本升級到 1.1.46 。你也許會想要先備份 source tree(″make clean ″然後″ cd

/usr/src; tar cvf linux | gzip -c > old-tree.tar.gz″將會為你造出一份 tar 壓

縮檔,里面就是整個原始程序碼與其檔案架構。)。

現在接著繼續上面的例子,假設你已經取得了″ patch46.gz ″并放在 /usr/src 下。

cd 到 /usr/src 然後執行″ zcat patch46.gz | patch -p0 ″(如果并不是壓縮過的

修補檔,那麼就執行″ patch -p0 < patch46″)你將會看到許多東西飛逝而過(也許

它們會慢慢跳過,如果你的電腦真的很慢的話)告訴你它正試著應用 hunks ,以及是

否成功。

通常,這個過程快得無法仔細看清楚它的動作,所以你會無法確定它到底有沒有成功地

執行。那麼就得找找看一些可能不是那麼順利的事。cd 到 /usr/src/linux 并找尋檔

名有 .reg 的檔案。某些版本的修補檔(比較舊的版本,它們可能是在比較早期的檔案

系統上編譯的)會把這些沒有成功的操作記錄在檔名有 # 的檔案里。你可以用

″ find ″來替你找;″ find . -name '*.reg' -print ″會處理這個工作。

如果一切正確無誤的話,執行第二節跟第三節所討論的″ make clean ,″″ config

,″以及″ dep ″。

關於 patch 指令另外還有一些選項。patch -s 將會抑制除了錯誤以外的所有其他訊息

。如果你把核心原始程序碼放在 /usr/src/linux 以外的地方,在該目錄下用

patch -p1 也可以乾凈俐落的執行修補任務。其它的 patch 選項在 manual pages 里

都有很詳細的描述。

3.2. 如果有錯誤發生

通常最常發生的問題是當 patch 修改一個叫做″ config.in ″ 的檔案時,這個檔案

看起來不怎麼對勁,因為你修改了一些選項來配合你的機器。這個問題已經小心的注意

過了,但還是可能有人會在較舊的版本上遭遇這個問題。

要修正這個問題的話,查看 config.in.rej 這個檔案里留下些什麼訊息。有修改過的

部份正常來說會在每一行開始的地方標上″ ″和″ - ″。查看有標記的附近幾行,

然後記得它們是設成″ y ″或是″ n 。″現在編輯 config.in 檔,然後在適當的地

方把″ y ″改成″ n ″以及″ n″改成″y″。

執行″ patch -p0 < config.in.rej ,″如果成功的話(沒有錯誤),那麼你就完成

了。這個 config.in.rej 檔還是會留在那里,但是你可以砍掉它。

如果你仍然遭遇其它問題,那麼可能是你安裝了一份損壞的修補檔。如果 patch 顯示

″ previously applied patch detected: Assume -R? ,″你可能使用了一些比你目

前的版本編號還低的修補檔(并不建議這樣做)。

要還原一個修補檔的話,在原先的修補檔上執行″ patch -R ″。

當修補檔真的失敗的時候,最好的辦法是從一個乾凈的,out-of-the-box source tree

(例如從 linux-x.x.x.tar.gz 檔案其中之一)開始,再重新執行。

3.3. 砍掉 .orig 檔案

只要做過幾次修補以後,那些 .orig 的檔案將會開始堆積。例如,我的一個 1.1.51

版的 tree 最後一次做清掃是在 1.1.48 版(我想是吧)。刪除這些 .orig 檔案會節

省許多的磁碟空間。″ find . -name '*.orig' -exec rm -f {} ';' ″將會替你照料

這件事。某些版本的修補檔會用 tilde 來代替 .orig 。

有其它(更好的?)的辦法可砍掉這些 .orig 檔。用的最多的是以″ xargs ″來代替

″ -exec: ″″find . -name '*.orig | xargs rm ″或是″ find . -name '*.orig'

-print0 | xargs --null rm -- ″(後面這個比較安全。)。

3.4. 其它的修補檔

總是會有一些并不是由 Linus 發行的其它修補檔出現(我將稱之為″非標準的″ )。

如果你使用了它們, Linus 的修補檔可能會而無法正確地執行,那麼你不是得將它們

還原就是得因此而去修改原始程序碼或是修補檔。這個工作對初學者通常是很討厭,所

以,如果你對原始程序碼沒什麼研究,在使用 Linus 的修補檔之前先還原這些非標準

的修補檔。

然後你可以看看這些非標準的修補檔是否仍然可以執行。如果不行的話,那麼你要不就

繼續用舊的核心來修補以執行它們,要不就等別人發表能在你修補後的新核心上用的新

版非標準修補檔。

非標準的修補檔有多普遍?你有可能曾經聽過它們。我使用 Bill Paul 的不閃爍修補

檔來 make 我虛擬控制臺上的游標,因為我討厭會閃爍的游標。就我所知,到目前為止

這個特別的修補檔的最新版本是給 1.0 版的核心使用的,但是我仍然在 1.1.51 版下

使用它 — 我已經修改了它好幾次,因為它通常會搞亂 Linus 修補檔的 driver/char/

console.c 。

4. 附加的套件

你的 Linux 核心有許多在核心的原始程序碼本身里面并沒有說明的特性;這些特性一

標簽:

版權申明:本站文章部分自網絡,如有侵權,請聯系:west999com@outlook.com

特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有

相關文章

總結

以上是生活随笔為你收集整理的编译 linux 3,linux内核的编译(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。