核心開發指南 如何為核心打補丁

來源:互聯網
上載者:User

目的
本文是個簡單的指導檔案。教你如何為自己的核心打補丁。這是核心開發中最基本的工作。
patch(補丁)就是存放著不同版本之間差異的檔案。通過打補丁的方法升級原始碼,可以不用下載整個原始碼
詳細的打補丁的方法可以查看核心/Document/applying-patchs。txt
要求
你應該已經有了一個可以編譯的核心。如果沒有。可以到www.kernel.org 下載。本文不是教你如何編譯核心
核心應該是從kernelorg 下載的。第三方的核心(比如redhat)可能打補丁的時候會出問題。請參考特別發行版自己的打補丁文章。
原文地址:http://blog.csdn.net/hide1713/archive/2007/12/16/1941614.aspx

情境1
現在我的/usr/src/liunx-2.6.22.9 中存放了核心的原始碼。我到了www.kernel.org上,看到最新的stable版本是
2.6.23.11。 那麼我如何升級呢?

首先,2.6.x.x這類版本號碼叫stable版。是經過測試證明穩定的。一般使用者只都是用這個版本。其他還有rc,mm版本。這裡先不討論。2.6.x這個種3個數的叫base stable版。4位元的版本都是在base stable上面打補丁得來的。

所以總得步驟是  2.6.22.9先要降級到2.6.22 然後升級到2.6.23.再升級到2.6.23.9
具體做法如下。

1.下載patch-2.6.22.9.bz2。把它放到/usr/src/目錄裡面
接下來
cd  liunx-2.6.22.9
bzcat ../patch-2.6.22.9.bz2|patch -p1 -R #使用R命令意思是取消補丁。這樣我們就把22.9 降到 22

2.下載patch-2.6.23.gz。把它放到/usr/src/目錄裡面
cd  liunx-2.6.22.9
zcat ../patch-2.6.23.gz|patch -p1 #這樣就升級到了2.6.23

3.下載patch-2.6.23.11.bz2。把它放到/usr/src/目錄裡面
接下來
cd  liunx-2.6.22.9
bzcat ../patch-2.6.23.11.bz2|patch -p1 # 這樣就升級到了2.6.23.11 這是現在stable的最新版。
最後
cd..
mv linux-2.6.22.9 linux-2.6.23.11#改為正確目錄名
ln -s linux-2.6.23.11 linux #重建立立連結

情境2

如果我現在要使2.6.23.11升級到2.6.23.12. 我應該先把2.6.23.11 回退成2.6.23 然後再打 2.6.23.12的補丁
假設我已經在核心的目錄中。補丁放在上層目錄。
bzcat ../patch-2.6.23.11.bz2|patch -p1 -R #回退到2.6.23
bzcat ../patch-2.6.23.12.bz2|patch -p1    #打到2.6.23.12

總的來說就是這樣。正確的輸出應該全都像下面這樣
patching file include/net/sock.h
patching file include/net/tcp.h
patching file include/scsi/scsi_device.h
patching file include/xen/interface/vcpu.h
patching file ipc/mqueue.c
patching file kernel/exit.c
patching file kernel/fork.c
patching file kernel/futex.c
patching file kernel/futex_compat.c
patching file kernel/hrtimer.c
patching file kernel/irq/manage.c
patching file kernel/lockdep.c
patching file kernel/params.c



如果出現rej檔案。說明有的檔案打補丁失敗。請查看那個rej檔案。看看是為什麼導致失敗。一般來說。可能是你的分類樹有問題。如果還有問題。參考核心/Docmuent目錄下面的補丁教程。

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/hide1713/archive/2007/12/16/1941614.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.