Linux五步構(gòu)建內(nèi)核樹(shù)
0. 系統(tǒng)自帶的內(nèi)核樹(shù)
有時(shí),安裝的系統(tǒng)已經(jīng)自帶了Linux內(nèi)核樹(shù)
,足夠用來(lái)編譯驅(qū)動(dòng)程序了。
自帶的內(nèi)核樹(shù)通常位于
/lib/modules/<系統(tǒng)內(nèi)核版本>/build
其中,系統(tǒng)內(nèi)核版本可以用uname -r
來(lái)查看
$ uname -r 5.11.0-41-generic
不過(guò)自帶的內(nèi)核樹(shù)似乎不完整,所以建議按照下面的方法編譯一個(gè)完整的內(nèi)核樹(shù)。
1. 環(huán)境配置
第一步
初次配置內(nèi)核樹(shù)要先安裝一些必要的環(huán)境
sudo apt-get build-dep linux linux-image-$(uname -r)
(如果報(bào)錯(cuò)Error :: You must put some ‘source‘ URIs in your sources.list
,請(qǐng)參照這里)
第二步
除了上面的環(huán)境之外,還要安裝這些
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)
這一步結(jié)束之后,會(huì)多出三個(gè)文件,
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
以及一個(gè)內(nèi)核源碼所在的文件夾
linux-hwe-5.11-5.11.0
(注:文件名稱根據(jù)不同的系統(tǒng)版本會(huì)有所不同)
3. 構(gòu)建準(zhǔn)備
(注:任何時(shí)候,運(yùn)行命令時(shí)遇見(jiàn)了permission denied
,只需要在命令開(kāi)頭加上sudo
后重新運(yùn)行即可)
進(jìn)入linux-hwe-5.11-5.11.0
文件夾,輸入
make menuconfig
稍微加載后,會(huì)進(jìn)入這個(gè)頁(yè)面
這里什么都不用修改,直接關(guān)閉界面即可(方向鍵選擇Exit
然后回車,或者連續(xù)按兩下Esc
就能退出),原因見(jiàn)本章節(jié)末。
然后,會(huì)顯示這個(gè)對(duì)話框
藍(lán)色框選中Yes
后,按下回車鍵退出即可。
這樣會(huì)在當(dāng)前目錄下生成一個(gè).config
文件(輸入ls -a
就能找到這個(gè)文件),保證稍后的make
能夠順利執(zhí)行。
4. 構(gòu)建內(nèi)核
輸入下面的命令開(kāi)始構(gòu)建(如遇見(jiàn)permission denied
,在命令開(kāi)頭加上sudo
后重新運(yùn)行即可)
make
這里要狠狠地等一會(huì)兒,一般要一到數(shù)個(gè)小時(shí)??梢酝ㄟ^(guò)-j <最大并發(fā)任務(wù)數(shù)>
命令,使用并發(fā)來(lái)提速。最大并發(fā)任務(wù)數(shù)
一般可以是CPU數(shù)量的兩倍。
(注:通過(guò)使用make help
進(jìn)行查閱可以發(fā)現(xiàn),在輸入make
時(shí),會(huì)自動(dòng)執(zhí)行 1)make vmlinux
(構(gòu)建原始內(nèi)核) 2)make bzImage
(構(gòu)建壓縮的內(nèi)核)和 3) make modules
(單獨(dú)構(gòu)建模塊化的驅(qū)動(dòng))這三個(gè)動(dòng)作)
5. 安裝模塊
最后,把模塊安裝到/lib/modules/$(uname -r)
目錄
sudo make modules_install
總結(jié)
到此這篇關(guān)于Linux五步構(gòu)建內(nèi)核樹(shù)的文章就介紹到這了,更多相關(guān)Linux內(nèi)核樹(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux中對(duì)MySQL優(yōu)化實(shí)例詳解
這篇文章主要介紹了Linux中對(duì)MySQL優(yōu)化實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05centos7 安裝mysql和mysqlclient遇到的坑總結(jié)
這篇文章主要介紹了centos7 安裝mysql和mysqlclient遇到的坑以及相關(guān)知識(shí)點(diǎn)代碼,有需要的朋友們參考下。2019-08-08分別在Linux和Windows下設(shè)置JVM內(nèi)存的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇分別在Linux和Windows下設(shè)置JVM內(nèi)存的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法
這篇文章主要介紹了阿里云服務(wù)器CentOS 6.3下快速安裝部署 LAMP 、vsftpd 環(huán)境的方法的相關(guān)資料,需要的朋友可以參考下2016-02-02在centos7上搭建mysql主從服務(wù)器的方法(圖文教程)
這篇文章主要介紹了在centos7上搭建mysql主從服務(wù)器的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11Ubuntu常見(jiàn)錯(cuò)誤問(wèn)題的解決方法小結(jié)
最近經(jīng)常使用ubuntu,難免會(huì)遇到各種各樣的問(wèn)題。所以想著記錄下來(lái),方便自己和大家以后需要的時(shí)候查看參考,文中介紹的很詳細(xì),相信對(duì)大家學(xué)習(xí)或者使用Ubuntu能有一定的參考借鑒價(jià)值,感興趣的朋友們下面來(lái)一起看看吧。2016-11-11Linux安裝PHP MongoDB驅(qū)動(dòng)
在php中使用mongodb你必須使用 mongodb 的 php驅(qū)動(dòng)。本文是小編在部署生產(chǎn)環(huán)境時(shí)候記錄的筆記,特此分享到腳本之家平臺(tái)供大家參考2016-11-11IO多路復(fù)用之epoll全面總結(jié)(必看篇)
下面小編就為大家?guī)?lái)一篇IO多路復(fù)用之epoll全面總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的?,F(xiàn)在就分享給大家。也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12