Linux內核編譯詳解


在本文實踐過程中出現任何問題和報錯,基本都能在我的另外一篇文章中找到解決辦法,鏈接為:https://www.cnblogs.com/y-c-y/p/14140714.html

內核編譯安裝傻瓜教程(1-4步驟)

使用工具:ubantu18.04(可以使用uname -a查看當前的內核版本) linux5.8.5.tar.xz

Ubantu 往期版本下載地址:
http://old-releases.ubuntu.com/releases/10.10/

Linux內核各個版本下載地址:
https://mirrors.edge.kernel.org/pub/linux/kernel/

步驟1.首先安裝交叉編譯環境
sudo apt update ##更新apt工具
sudo apt-get install build-essential ##安裝gcc和g++的編譯環境

步驟2.准備好要編譯的內核源代碼進入編譯目錄
cp linux-5.8.5.tar.xz /usr/src/ ##將內核代碼壓縮包拷貝到編譯目錄
cd /usr/src/ ##進入編譯目錄
xz -d linux-5.8.5.tar.xz ##解壓原代碼包
tar xvf linux-5.8.5.tar ##解壓原代碼包
cd linux-5.8.5 ##進入解壓之后的源碼目錄

步驟3.接下來的每一步都要做,每一步都要等很久,所以千萬不要忘了自己剛剛執行的命令是什么
make clean ##只清理所有產生的文件
make mrproper ##清理所有產生的文件與.config配置文件
make oldconfig ##生成.config文件,一路回車即可
make ##編譯內核和其他模塊
make modules_install ##安裝其他模塊
male install ##安裝內核
reboot ##系統重啟

步驟4.接下來是最重要的一步
雙手合十,閉上雙眼,一邊回想自己之前的步驟有沒有問題,一邊祈禱能夠成功。
重啟之后沒有像別的文章說的一樣有開機選擇系統的界面,還是和之前一樣進入了ubantu系統,但是輸入uname -r之后會發現已經是新的內核了。

=到此編譯步驟結束=========================================

關於各個步驟的解釋

1.安裝交叉編譯環境,這沒什么好說的,想要詳細了解,那就是另外的事情了。
2.關於步驟三中的一套make命令是最精簡版本,其中
make = make bzImage + make modules

make ##編譯內核和其他模塊的命令

make bzImage ##編譯內核命令,
內核現在的版本編譯出來普遍較大,例如以上的就是11M,推薦使用命令make bzImage而不是make zImage ,編譯出來的對應在源碼編譯目錄的arch/ /boot/目錄下, 查詢方法如下,可以看出是x86_64架構。

make modules ##編譯其他模塊,很多驅動還有功能在.config文件生成時候在(Y/N/M)的時候選成M的都是modules

make modules_install ##把modules安裝好。把模塊放到/lib/modules文件夾一個和內核名一樣的文件夾下,並且運行depmod生成模塊依賴關系文件,系統啟動時加載模塊就是從dep里面讀取信息加載模塊。

make install ##這一步只是安裝內核bzImage,System.map。並不安裝modules。關鍵點是要生成initrd.img文件,修改系統引導配置,產生grub.cfg啟動文件。使用這個命令是最簡單的方法,也可以選擇使用mkinitramfs 等命令。

參考文章如下:
https://blog.csdn.net/qq_34247099/article/details/50949720
https://www.cnblogs.com/klb561/p/9192630.html
https://blog.csdn.net/weibo1230123/article/details/82716763
https://www.cnblogs.com/gavin-world/p/11169282.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM