1. 程式人生 > >linux核心編譯與解除安裝

linux核心編譯與解除安裝

         linux開行版的自帶核心不一定能滿足linux學習和某些特殊的要求,這時我們就不得不根據自己的需求重新安裝核心。這裡我介紹一些常用編譯核心的步驟。

編譯核心

一、一定是下載滿足需求的核心啦。
二、選擇核心配置:

         進入下載好的原始碼的根目錄下,輸入:

make menuconfig

         選擇配置之後儲存退出。之後在原始碼的根目錄下會有.config檔案。這個檔案就是配置檔案。

p.s.選擇預設選項的話:

make defconfig

p.s. 有時會將補丁打入核心,所有在make menuconfig之前,先打補丁:

patch -p1 < (PATCH_PATH)/(PATCH_NAME)。

         引數 p1 :將補丁中的​需要修改或新增的檔案的第一級路徑省略。如:“a/include/linux/cgroup_subsys.h” 和省略 a/。

p.s. 如果需要當前核心的配置檔案時,那麼就得克隆當前配置檔案:

zcat /proc/config.gz > .config; make oldconfig。

p.s. make menuconfig可能不能使用,這是因為缺少編譯環境。

sudo apt-get install libncurses5 libncurses5-dev build-essential kernel-package

         問題就會迎刃而解

三、如果之後又修改過配置檔案,或者在用已用的配置檔案配置新的程式碼樹的時候。應該驗證和更新配置:
make oldconfig
四、通過之上四步,核心已經配置好了,這是就可以編譯了。
make -j(cpu數×2)
五、安裝新核心。注意:必須是root使用者!
make modules_install --------------->可以把所有編譯好的模組安裝到正確的主目錄/lib/modules下。

make install -----------> 自動將映像新增到/boot目錄下​。

這是已安裝新核心了。重新啟動就可以選擇不同核心了。

p.s. ubuntu 發行版時,系統可能會自動隱藏grub選單。所以必須修改grub檔案:

開啟 /etc/default/grub 註釋 GRUP_HIDDEN_TIMEOUT = 0 僅在前頭加一個#即可。

最後必須更新grub :

update-grub

解除安裝核心:

解除安裝自己編譯的核心

在/boot目錄下,存放著核心檔案及映象:
/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*​
/boot/System-map*KERNEL-VERSION*​
/boot/config-KERNEL-VERSION
/lib/modules​
KERNEL-VERSION代表你想解除安裝的核心的版本號。依次刪除所示檔案

最後必須更新grub :

update-grub。
解除安裝發行版自帶的核心

1、查詢核心檔案 :

dpkg --get-selections|grep linux 。

帶有image的就是核心檔案。如:

linux-image-3.16-amd64                   nstall

2、解除安裝:

sudo apt-get remove linux-image-(接核心版本)

最後必須更新grub :

update-grub