Linux 内核开发资料
生活随笔
收集整理的這篇文章主要介紹了
Linux 内核开发资料
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
fedora 編譯模塊時需要注意的
安裝Kernel Headers(頭文件)
這個包提供Kernel Headers和makefiles足以應付kernel包中的模塊編譯。如果你需要安裝驅動和某些第三方軟件,你應該很需要Kernel Headers。如果一個驅動要求內核源碼,那么也許安裝Kernel Headers就已經足夠了。Kernel Headers通過安裝kernel-devel RPM包就可以得到。這個包可能沒有被Fedora自動安裝。這個軟件包可以從你的Fedora DVD安裝或者通過FTP和YUM在線安裝。在Fedora軟件倉庫和Update軟件倉庫中在線查找同時確保他們與你的系統相匹配,使用uname命令。示例:
[wisfern@Wisfern ~]$ uname -rm?
2.6.32.11-99.fc12.i686.PAE i686?
如果你已經升級過你的kernel(使用yum),那么建議你使用yum來安裝這個軟件包。?
[wisfern@Wisfern ~]$ sudo yum install kernel-devel
安裝Kernel Source(內核源碼)
一般來說無須安裝Kernel Source除非你有一些特別的原因想要重新編譯你的內核源碼。無論如何Kernel hesders都是必須的。?
圍繞Kernel Sourcede的安裝有三個基本步驟。?
1.下載你想要的內核源碼(與你當前的kernel想匹配如果需要)?
2.安裝SRC.RPM包?
3.使用rpmbuild將源碼轉換成可用狀態?
NOTE: 以下的步驟將消耗至少400MB磁盤空間!
下載內核源碼
獲得內核源碼(對于默認的Fedora內核源碼)默認的內核源碼可以通過任意Fedora鏡像找到。在”/12/”目錄下的 “/source/SRPMS/”目錄中可以找到。示例:http://download.fedora.redhat.com/pub/fedora/linux/releases/12/Fedora/source/SRPMS/。?
獲得源碼(對于已經升級過的Fedora內核源碼)?
如果你升級了你的內核,那么通常來說通過Fedora updates會有2或3個內核源碼是可用的。?
在大多數Fedora鏡像站點上的update目錄中尋找。示例:http://download.fedora.redhat.com/pub/fedora/linux/updates/12/SRPMS/。?
通過’yum’來獲得內核源碼(對于最新的Fedora內核源碼)?
yum工具可以下載最新的內核源代碼。如果沒有找到,那么這里(還)沒有任何更新,那就使用默認的Fedora內核源碼。?
[root@Wisfern Desktop]# yumdownloader � source kernel
安裝內核源碼
安裝你之前選擇和下載的kernel.src.rpm
[root@Wisfern Desktop]# rpm -ivh kernel-2.6.32.11-99.fc12.i686.rpm?
Preparing… ? ? ? ? ? ? ? ?########################################### [100%]?
1:kernel ? ? ? ? ? ? ? ? ?########################################### [100%]
準備內核源碼
將源碼轉成可用狀態:?
[mirandam@charon downloads]$ sudo rpmbuild -bp �target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec?
源文件可以在/usr/src/redhat/BUILD/kernel-2.6.23/目錄中找到。這里有兩個有用的目錄。?
1.Linux-2.6.23.ARCH/?
這里有包含了Fedora 補丁和更新的標準kernel.org內核源碼。系統架構與uname -m的輸出相匹配,一般來說是i686 ,如果你想,你可以讓�target=選項使用noarch參數。?
2.vanilla/?
這里只包含標準的kernel.org的kernel(沒有補丁和更新).?
NOTE: Fedora編譯和配置內核源碼的詳細過程可以在Fedora Wiki中找到。
http://linux.chinaitlab.com/man/linux/lfs/htmlbook/index.html
總結
以上是生活随笔為你收集整理的Linux 内核开发资料的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux运维资料
- 下一篇: Java Web 三大框架开发资料