Linux裝置驅動--Linux驅動模組交叉編譯的注意事項
阿新 • • 發佈:2019-02-19
在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,完成。