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/