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