怎樣完成內(nèi)核模塊編譯?
大部分程序員都研究?jī)?nèi)核模塊編譯,在當(dāng)今社會(huì)Linux越來(lái)越成為主流,你是Linux系統(tǒng)的應(yīng)用者么?本文為你詳細(xì)介紹內(nèi)核模塊編譯,為你在學(xué)習(xí)內(nèi)核模塊編譯時(shí)起一定的作用。
1.進(jìn)入新內(nèi)核源代碼目錄
#cd /usr/src/kernels/linux-2.6.26.2
2.讀取配置過(guò)程中生成配置文件,創(chuàng)建對(duì)應(yīng)于配置的依賴(lài)關(guān)系樹(shù),從而決定哪些需要編譯與哪些不需要編譯
#make dep
3.完全刪除上步留下來(lái)的文件,避免發(fā)生錯(cuò)誤。(如果是新下載內(nèi)核沒(méi)有編譯過(guò),可以跳過(guò))
#make clean
4.編譯內(nèi)核
#make bzImage
在上面的命令成功編譯以后會(huì)在/usr/src/kernels/linux-2.6.26.2/arch/x86/boot/
目錄下產(chǎn)生新內(nèi)核的映像bzImage
5.編譯可加載內(nèi)核模塊
#make modules
6.把生成的模塊拷貝到需要的目錄下
#make modules_install
7.生成模塊間的依賴(lài)關(guān)系,這樣在啟動(dòng)新內(nèi)核以后,使用modprobe命令加載模塊時(shí)候能夠正確定模塊。
#depmod
-a注意第5-7步,只有在進(jìn)行內(nèi)核配置時(shí)候選上了Enable loadable module support (CONFIG_MODULES)才是必要的。
經(jīng)過(guò)以上的步驟終于生成了新的內(nèi)核和模塊,為了能夠使用上新版內(nèi)核,還要做以下工作。
- #cp /usr/src/kernels/linux-2.6.26.2/System.map /boot
- #cp /usr/src/kernels/linux-2.6.26.2/arch/x86/boot/bzImage /boot
- #cd /boot #mv bzImage vmlinuz-2.6.26
注意上面的前面兩條命令沒(méi)有像網(wǎng)上其他很多是帖子一樣覆蓋了原來(lái)內(nèi)核的映像和內(nèi)核符號(hào)隱射表。把新的直接放在/boot下面,這樣能在新內(nèi)核啟動(dòng)不了的情況下,可以啟動(dòng)新內(nèi)核。希望通過(guò)本文對(duì)內(nèi)核模塊編譯有所幫助。
【編輯推薦】