linux內核之源碼編譯

linux內核之源碼編譯


如需轉載請標明出處:http://blog.csdn.net/itas109
QQ技術交流羣:129518033

環境:
系統:Ubuntu 20.04
內核版本:5.4.0-26-generic
升級的內核版本:5.4.50

1.下載linux內核

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.50.tar.xz

wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.4.50.tar.xz

2.安裝所需前置軟件

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

centos可參考(未驗證)

sudo yum install gcc bc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel

注意:至少需要12GB的磁盤空間來完成內核的編譯過程
在這裏插入圖片描述

3.解壓源碼

tar xvJf linux-5.4.50.tar.xz

使用cd linux-5.4.50進入目錄

4.清理內核源目錄

make mrproper
make clean

5.配置內核參數

編譯內核的方式:

  • make menuconfig(基於文本選單的配置界面,字符終端下推薦使用)
  • make xconfig(基於圖形窗口模式的配置界面,xwindow下推薦使用)
  • make oldconfig(只在原來內核配置上略作修改)
  • make config(基於文本的最爲傳統的配置界面,不推薦使用)

最終都會生成.config文件
在這裏插入圖片描述
在這裏插入圖片描述
小技巧:
在正式編譯內核之前,必須配置需要包含哪些模塊。
有個一個好的辦法就是直接複製當前系統的內核配置文件,然後使用menuconfig命令來進行修改部分所需參數。這樣可以最大程序兼容原有參數。(高度定製化可以忽略該步驟,直接進行內核參數配置)

cp /boot/config-$(uname -r) .config

6.編譯內核

CPU intel i5-6500使用4線程虛擬機大約需要80分鐘左右

make -j8

7.安裝內核和模塊

安裝模塊(大約需要5分鐘)

sudo make modules_install

安裝內核(大約需要3分鐘)

sudo make install

8.啓用內核作爲引導

將內核啓用來作爲引導

sudo update-initramfs -c -k 5.4.50

更新 grub

sudo update-grub

重啓系統可以選擇新安裝的內核

9.結果

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

10.其他

問題1:重啓出錯 end Kernel panic - not syncing: System is deadlocked on memory

解決:
由於虛擬機內存不足導致(原來設置2GB),調整成4GB後成功啓動


License

License under CC BY-NC-ND 4.0: 署名-非商業使用-禁止演繹

如需轉載請標明出處:http://blog.csdn.net/itas109
QQ技術交流羣:129518033


Reference:
1.https://www.linux.com/topic/desktop/how-compile-linux-kernel-0/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章