在linux系統下編寫好目標開發板的驅動程序後,需要以模塊的方式加入內核。期間交叉編譯適合目標板Kernel的模塊尤爲關鍵。在此記錄編譯方法,以免看客和我一樣走彎路。
1、在宿主機上安裝交叉編譯器 arm-linux,具體方法百度,一大筐。
2、將和目標板的內核原文件在宿主機上編譯好(make bzimage)。
3、在編譯好的內核文件中,輸入make modules ARCH=arm CROSS_COMPILE=arm-linux-(可以直接修改makefile文件)編譯模塊,輸入make modules_install。將內核加載,用來解決/lib/modules/下無目標板內核版本文件夾及build文件的問題,也可以make modules_install INSTALL_MOD_PATH=/指定模塊安裝路徑。
4、在自己編寫好的模塊文件makefile中修改以下內容:
KDIR :=/lib/modules/3.0.1(此處爲剛剛運行make modules_install 新生成的文件,與目標板內核版本一致)/build
因爲開發板是arm系統,還需要用到交叉編譯器,添加以下文件:
make -C $(KDIR) M=$(PWD) modules(以下爲添加內容)
ARCH:= armCROSS_COMPILE:= /usr/local/arm/4.4.1/bin/arm-linux(路徑根據自己的安裝路徑自己更改)
OK,說到這裏,一切ok,make,完成。