為升級後的Linux核心打包(適用於ubuntu)
打包替換核心
打包替換新核心使用的是make-kpkg命令,所以此方法只適合支援make-kpkg命令的系統版本,一般適合Ubuntu、Debian等系統,不適合RedHat系統。
1、定製核心
#make mrprobe ,清理原始碼樹。
#make menuconfig ,配置核心。
2、打包核心
(1)拷貝.confg檔案:
執行#cp /boot/config-,然後按下Tab鍵,系統會自動填上該目錄下符合條件的檔名,然後繼續輸入 .config,目的是使用在boot目錄下的原配置檔案。
不執行這一步的話,後面make的時候會提示找不到.confg檔案。
如果在上一步配置了核心的話應該是會自動生成.
(2)編譯打包核心
#make-kpkg --initrd - -append-to-version=-pyh - -revision=zxxiong.0716 -j 4kernel_image kernel_headers
執行完以上命令後將在上一級目錄生成兩個.deb包:
標頭檔案包:linux-headers-3.12.5-pyh_zxxiong.0716_amd64.deb
核心包:linux-image-3.12.5-pyh_zxxiong.0716_amd64.deb
【--initrd】選項會讓make-kpkg自動幫我們生成initramfs;
【--revision】會給生成的deb檔案加上一個版本資訊。這個引數只是影響到檔名,如果不指定,預設會是“10.00.Custom”;
【--append-to-version】也是一種版本資訊,它不僅出現在deb安裝包的檔名裡,也會影響到kernel的名稱,比如本例中,核心更新完成之後,用“uname -r”察看會得到“3.12.5-pyh”;
【kernel_image】表示生成核心和預設模組的安裝包。
【kernel_headers】這樣make-kpkg會生成一個核心標頭檔案的安裝包。
如果我們用普通使用者來執行make-kpkg,需要加上fakeroot執行
#fakeroot make-kpkg --initrd - -append-to-version=-pyh - -revision=zxxiong.0716 -j 4 kernel_image kernel_headers |
(注:需要設定平臺 如-amd64在這裡配置檔案已經預設配置了,所以這裡不用加,選項kernel_image是生成核心.deb包,選項kernel_headers是生成標頭檔案.deb包,這兩個選項可以只使用一個)
(3)安裝核心
將上面生成的.deb包拷貝到需要替換核心的機器上,執行以下命令:
#dpkg –i linux-headers-3.12.5-pyh_zxxiong.0716_amd64.deblinux-image-3.12.5-pyh_zxxiong.0716_amd64.deb (接上一行)
或者直接在deb包所在目錄執行:#dpkg –i ./*.deb
執行命令之後則會自動更新/boot目錄下的檔案(即自動執行命令:# update-initramfs -c -k3.12.5 和#update-grub2),然後重啟系統並選定載入的核心就可以了,還可以修改/boot/grub/grub.cfg配置檔案中的 set default=”0”, 預設為0,安裝完後檢視該檔案新載入的核心是第幾項就設定為幾(從0開始),這樣則不需要在開機時選擇啟動第幾項了。
(5) 重啟系統
#reboot