Q: 在SLES8上如何編譯內核模塊
A: 在某些情況下,用戶需要重新編譯內核模塊,例如:由于使用到了更新的硬件,需要升級驅動程序。
我們對用戶編譯驅動程序的操作做出一些假設,當實際條件滿足這些條件時,驅動的編譯應該
可以順利進行。
1 系統上已經安裝上了正確的內核源代碼(在/lib/modules/`uname -r`/build)
2 系統上已經安裝好了開發工具gmake,gclearcase/" target="_blank" >cc等
3 系統上有當前的內核配置(/boot/vmlinuz.config或/boot/config-`uname -r`,視具體情況)
4 要編譯的驅動源碼內有符合相應內核編譯框架的Makefile文件(obj-y, obj-m, $(TOPDIR)/Rules.make)
在上述條件都已滿足的情況下,假設要編譯的內核驅動程序源碼目錄為/tmp/foobar
# cd /lib/modules/`uname -r`/build
# cp /boot/config-`uname -r` .config
# make menuconfig
選擇'Exit'
選擇'Yes'
# make dep
# make SUBDIRS=/tmp/foobar modules
可以測試新編譯好的內核模塊
# insmod /tmp/foobar/foobar.o
運行dmesg檢查相應的輸出
# dmesg