4、編譯模塊
本文引用地址:http://m.butianyuan.cn/article/201611/322698.htm在work/lab/test01/目錄下輸入make命令。
#make
成功后會(huì)生成 test.ko文件。這個(gè)就是我們需要的模塊文件,其他的都是中間的臨時(shí)文件。
查看一下test.ko文件信息,可以看出是基于ARM平臺(tái)的目標(biāo)文件。
#file test.ko
可能出錯(cuò)原因
注意:由于編譯模塊時(shí)需要使用內(nèi)核中的一些依賴文件,因此需要確保在內(nèi)核源碼中那些文件存在。
如果上面的編譯有錯(cuò)誤,我們需要在內(nèi)核源碼根目錄下(/work/linux-2.6.36.2-v1.05/)執(zhí)行以下命令
#make oldconfig && make prepare && make scripts
5、測試模塊
將前面生成的模塊文件(test.ko)下載到開發(fā)板的/lib/modules/2.6.36.2 目錄下(如果沒有此目錄,則需要手動(dòng)創(chuàng)建)。
在開發(fā)板上進(jìn)行模塊的裝載與卸載操作。
(1)裝載模塊
# insmod/lib/modules/2.6.36.2/test.ko
(2)查看模塊列表
#lsmod
(3)卸載模塊
#rmmod test
運(yùn)行結(jié)果如下圖:
作者:滄海獵人出處:http://blog.csdn.net/embedded_hunter轉(zhuǎn)載請(qǐng)注明出處嵌入式技術(shù)交流QQ群:179012822
總結(jié)
- 在做以上實(shí)驗(yàn)時(shí),要一直思考每個(gè)步驟的作用。我會(huì)盡量寫的詳細(xì)一些,你千萬不要只知道照著敲命令,否則你很難有進(jìn)步。
以上是本人在網(wǎng)絡(luò)上找的,復(fù)雜但省時(shí),下面是從是師兄那里學(xué)來的簡單但是費(fèi)時(shí)
可以把寫好的驅(qū)動(dòng)程序(如test.c)放到內(nèi)核源碼目錄下的任何子目錄(如linux2.6.38/drivers)修改test.c所在目錄的Makefile:添加obj-m+= test.o 然后回到源碼目錄linux2.6.38
執(zhí)行make modules,即可在test.c所在的目錄下生成test.ko
評(píng)論