Linux五步構建內核樹

0. 系統自帶的內核樹

有時,安裝的系統已經自帶瞭Linux內核樹,足夠用來編譯驅動程序瞭。

自帶的內核樹通常位於

/lib/modules/<系統內核版本>/build

其中,系統內核版本可以用uname -r來查看

$ uname -r
5.11.0-41-generic

不過自帶的內核樹似乎不完整,所以建議按照下面的方法編譯一個完整的內核樹。

1. 環境配置

第一步

初次配置內核樹要先安裝一些必要的環境

sudo apt-get build-dep linux linux-image-$(uname -r)

(如果報錯Error :: You must put some ‘source‘ URIs in your sources.list,請參照這裡)

第二步

除瞭上面的環境之外,還要安裝這些

sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf dwarves

2. 下載源碼

sudo apt-get source linux-image-unsigned-$(uname -r)

這一步結束之後,會多出三個文件,

linux-hwe-5.11_5.11.0-41.45~20.04.1.diff.gz
linux-hwe-5.11_5.11.0-41.45~20.04.1.dsc
linux-hwe-5.11_5.11.0.orig.tar.gz

以及一個內核源碼所在的文件夾

linux-hwe-5.11-5.11.0

(註:文件名稱根據不同的系統版本會有所不同)

3. 構建準備

(註:任何時候,運行命令時遇見瞭permission denied,隻需要在命令開頭加上sudo後重新運行即可)

進入linux-hwe-5.11-5.11.0文件夾,輸入

make menuconfig

稍微加載後,會進入這個頁面

在這裡插入圖片描述

這裡什麼都不用修改,直接關閉界面即可(方向鍵選擇Exit然後回車,或者連續按兩下Esc就能退出),原因見本章節末。

然後,會顯示這個對話框

在這裡插入圖片描述

藍色框選中Yes後,按下回車鍵退出即可。

這樣會在當前目錄下生成一個.config文件(輸入ls -a就能找到這個文件),保證稍後的make能夠順利執行。

4. 構建內核

輸入下面的命令開始構建(如遇見permission denied,在命令開頭加上sudo後重新運行即可)

make

這裡要狠狠地等一會兒,一般要一到數個小時。可以通過-j <最大並發任務數>命令,使用並發來提速。最大並發任務數一般可以是CPU數量的兩倍。

(註:通過使用make help進行查閱可以發現,在輸入make時,會自動執行 1)make vmlinux(構建原始內核) 2)make bzImage(構建壓縮的內核)和 3) make modules(單獨構建模塊化的驅動)這三個動作)

5. 安裝模塊

最後,把模塊安裝到/lib/modules/$(uname -r)目錄

sudo make modules_install 

總結

到此這篇關於Linux五步構建內核樹的文章就介紹到這瞭,更多相關Linux內核樹內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: