linux內核編譯與卸載

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

編譯內核

一、一定是下載滿足需求的內核啦。

官網:https://www.kernel.org/
p.s. 學習最新的內核,可以克隆linus在github的代碼:https://github.com/torvalds/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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章