1. 從源碼RPM包建立一個內核
1.1. 獲得源碼
1.2. 准備內核源碼樹
1.3. 復制源碼樹和生成一個補丁
1.4. 配置內核選項
1.5. 准備建立文件
1.6. 建立新內核
1.6.1. 以下是通用教材
1.7. 安裝新內核
2. 只建立內核模塊(kernel modules)
1. 從源碼RPM包建立一個內核
注意:下面的說明只對Fedora12和之後版本有效
這份文檔為那些想要重新建立內核的高級用戶提供說明。但是,重新建立的內核無法得到Fedora內核團隊的支持。但是,您是高級用戶,您可以自己處理,對嗎?無論如何,高級用戶建立定制內核的原因有如下幾項:
* 測試他們編寫的或從其他地方得到的補丁。
* 重新配置已經存在的內核。
* 學習內核或內核開發。
這些說明也可以用於簡單的准備內核源碼樹。
開始之前,確認系統已經安裝了必要的軟件包:
* rpmdevtools
* yum-utils
yum-utils是一個默認的包。用如下命令安裝:
su -c 'yum install rpmdevtools yum-utils'
如果您要用make xconfig,安裝如下軟件是必要的:
* qt3-devle
* libXi-devel
* gcc-c++
對於Fedora 15,用如下命令:
su -c 'yum install qt3-devel libXi-devel'
1.1. 獲得源碼
不要用root建立軟件包
用root建立軟件包是很危險且沒有必要的,即使對於內核。下面的指令允許任何普通用戶從源碼包開始建立和安裝內核
1. 在您的用戶主目錄下准備一個建立RPM包的環境,運行如下命令:
rpmdev-setuptree
這個命令新建了幾個不同的目錄${HOME}/rpmbuild/SOURCES, ${HOME}/rpmbuild/SPECS和${HOME}/rpmbuild/BUILD 。${HOME}是您的用戶主目錄。
2. 下載kernel-<version>.src.rpm文件。用--enablerepo選項使能適當的源碼庫。(yumdownloader --enablerepo=repo_to_enable --source kernel)
yumdownloader --source kernel
3. 用yum-builddep命令為內核源碼安裝編譯依賴。
su -c 'yum-builddep kernel-<version>.src.rpm'
4. 用如下命令安裝kernel-<version>.src.rpm
rpm -Uvh kernel-<version>.src.rpm
這個命令把RPM目錄寫入了${HOME}/repbuild/SOURCES和${HOME}/rpmbuild/SPECS,${HOME}是您的用戶主目錄。可以忽略像下面這樣的信息:
warning: user kojibuilder does not exist - using root
warning: group kojibuilder does not exist - using root
空間需求。完全的內部編譯過程需要若干GB的額外空間。
1.2. 准備內核源碼樹
這一步擴大為整個內核源碼文件。這對於查看代碼、編輯代碼和生成補丁是必需的。
1. 用如下命令准備內核源碼樹:
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec
現在,內核源碼樹就位於~/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch>目錄。