内核打补丁
內(nèi)核打補(bǔ)丁
如果需要的某些特性并沒(méi)有被現(xiàn)有內(nèi)核支持,則需要去獲取相關(guān)的補(bǔ)丁。比如,為了使內(nèi)核支持圖形化的啟動(dòng)界面,我們可能要用到bootsplash工具。!bootsplash項(xiàng)目 http://www.bootsplash.org/ 上提供了針對(duì)很多內(nèi)核版本的補(bǔ)丁供下載。
- 通過(guò)打補(bǔ)丁升級(jí)內(nèi)核
通過(guò)打補(bǔ)丁的方法升級(jí)內(nèi)核,可以不用下載整個(gè)內(nèi)核源碼。針對(duì)每個(gè)內(nèi)核版本的補(bǔ)丁文件可以在 ftp.kernel.org 上面獲得,問(wèn)題是我們應(yīng)該選擇哪個(gè)補(bǔ)丁文件,一個(gè)補(bǔ)丁文件到底應(yīng)該打在哪個(gè)版本的內(nèi)核上。下面小節(jié)介紹了如何應(yīng)用和卸載補(bǔ)丁,詳細(xì)的內(nèi)容請(qǐng)查看內(nèi)核文檔Document/applying-patchs.txt
1. 什么是補(bǔ)丁
一個(gè)補(bǔ)丁文件就是一個(gè)文本文檔,由diff工具創(chuàng)建,它存放了兩個(gè)不同版本的源碼之間的差異
2. 如何打補(bǔ)丁與卸載補(bǔ)丁
patch工具可以用于打補(bǔ)丁和卸載補(bǔ)丁。內(nèi)核的補(bǔ)丁是相對(duì)于保存內(nèi)核源碼的父目錄生成的,這就意味著,補(bǔ)丁文件中的文件路徑包含了內(nèi)核源碼存放目錄的名字(比如,linux-2.6.29,或者像是"/a"和"/b"之類的其它名字)。但是很可能我們本地系統(tǒng)上的內(nèi)核源碼存放目錄和補(bǔ)丁中不匹配,為了解決這個(gè)問(wèn)題,我們需要切換到自己的源碼目錄,并且在執(zhí)行patch命令的時(shí)候加上"-p1"參數(shù),這樣就會(huì)去掉補(bǔ)丁文件中路徑的第一個(gè)分量,比如:
為了卸載一個(gè)以前打上的補(bǔ)丁,需要使用"-R"參數(shù)。
# patch -R -p1 < ../patch.x.y.z3. 如何利用補(bǔ)丁升級(jí)內(nèi)核
考慮這樣的幾個(gè)場(chǎng)景:將內(nèi)核從2.6.23升級(jí)到2.6.24;將內(nèi)核從2.6.23.8升級(jí)到2.6.24.6;將內(nèi)核從2.6.23.6升級(jí)到2.6.23.8。不管處于哪種場(chǎng)景,打補(bǔ)丁時(shí)要謹(jǐn)記的一點(diǎn)是:內(nèi)核的補(bǔ)丁文件都是以2.6.x(基礎(chǔ)穩(wěn)定版basic stable, 2.6.x.y是穩(wěn)定版 stable)為基礎(chǔ)發(fā)布的。下面對(duì)這3種場(chǎng)景分別進(jìn)行介紹
(1)將內(nèi)核從2.6.23升級(jí)到2.6.24。這種情況,可直接使用補(bǔ)丁文件patch-2.6.24
# patch -p1 < ../patch-2.6.24因?yàn)橄螺d得到的補(bǔ)丁文件通常是使用gzip或者bzip2壓縮的格式,所以使用前還要將其解壓生成patch-x.y文件。不過(guò),我們也可以不解壓,使用下面的命令形式:
# bzcat ../patch-2.6.24.bz2 | patch -p1(bz2格式) or # zcat ../patch-2.6.24.gz | patch -p1(gz格式)(2)將內(nèi)核從2.6.23.8升級(jí)到2.6.24.6。這種情況下,我們需要將升級(jí)的過(guò)程分解為幾個(gè)步驟,首先將2.6.23.8退回到2.6.23,然后再升級(jí)到2.6.24,最后升級(jí)到2.6.24.6。
# bzcat ../patch-2.6.23.8.bz2 | patch -p1 -R # bzcat ../patch-2.6.24.bz2 | patch -p1 # bzcat ../patch-2.6.24.6.bz2 | patch -p1(3)將內(nèi)核從2.6.23.6升級(jí)到2.6.23.8。在這種情況下,我們同樣需要將升級(jí)過(guò)程分解,首先將2.6.23.6退回到2.6.23,然后再升級(jí)到2.6.23.8。
# bzcat ../patch-2.6.23.6.bz2 | patch -p1 -R # bzcat ../patch-2.6.23.8.bz2 | patch -p1除了patch之外,也有其它的用來(lái)打補(bǔ)丁的工具,比如interdiff、ketchup等。
總結(jié)
- 上一篇: Mesos | 1.3.2 webui
- 下一篇: 云计算机可持续发展的关键,云计算发展的几