一 順利的情況
假設(shè)存在一個(gè)文件叫mymq.c,下該文件相同目錄下的makefile如下語(yǔ)句:
obj-y += mymq.o
然后編譯:編譯完成了以后,mymq.c文件中,有個(gè)函數(shù)叫mymq_open,搜索這個(gè)函數(shù)在不在System.map文件中,如果在,就說(shuō)明這個(gè)模塊被內(nèi)置到內(nèi)核中了。
執(zhí)行g(shù)rep -rn mymq_open System.map,在文件System.map中搜索函數(shù)mymq_open
二 沒(méi)被內(nèi)置成功的情況
如下所示:按照上面的簡(jiǎn)單配置,內(nèi)核沒(méi)有出現(xiàn)在符號(hào)表中,怎么辦呢?
執(zhí)行g(shù)rep -rn mymq_open System.map,在文件System.map中搜索函數(shù)mymq_open,
?解決辦法:
使用subsys_initcall而不是module_init,如下所示
subsys_initcall(mymq_init);
如果這樣還不行的話,那就看看,mymq.c所在的目錄是如果被上級(jí)目錄鏈接的,就是上一級(jí)目錄的Makefile,如下所示,
?obj-m += mymq/ 這樣設(shè)置,mymq目錄下的文件不會(huì)被編譯進(jìn)內(nèi)核,
將obj-m += mymq/ 改成obj-y += mymq/
修改后如下所示:?
在次編譯內(nèi)核然后 ,執(zhí)行g(shù)rep -rn mymq_open System.map,在文件System.map中搜索函數(shù)mymq_open文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-423118.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-423118.html
?小結(jié)
到了這里,關(guān)于如何將模塊加載到linux內(nèi)核的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!