博客專欄

        EEPW首頁 > 博客 > kernel – 嘗試加載usbhid.ko時,“ module_layout沒有符號版本”

        kernel – 嘗試加載usbhid.ko時,“ module_layout沒有符號版本”

        發(fā)布人:電子禪石 時間:2020-06-24 來源:工程師 發(fā)布文章
        問題描述

        我正在嘗試為usbhid.ko構(gòu)建自己的模塊,但是在編譯之后,無法加載該模塊。 dmesg說是no symbol version for module_layout。我想知道是什么問題?我已經(jīng)使用過Ubuntu提供的內(nèi)核源代碼,并且還要確保內(nèi)核版本相同。


        最佳回答

        具體來說,問題是在構(gòu)建模塊時,內(nèi)核源代碼樹可能缺少Modules.symvers文件。當您構(gòu)建模塊時,kbuild系統(tǒng)實際上會警告您。如果缺少Modules.symvers,您將看到:

        Warning: Symbol version dump /usr/src/linux-2.6.34-12/Modules.symvers            is missing; modules will have no dependencies and modversions.

        如果您的內(nèi)核啟用了CONFIG_MODVERSIONS,則在構(gòu)建驅(qū)動程序的modpost階段,它將使用-m選項運行scripts /mod /modpost。如果您勇敢地看一下scripts /mod /modpost.c源代碼,您會看到-m選項添加了vmlinux中的_module_layout_符號,但是,如果您的內(nèi)核中沒有Modules.symvers,您將無法獲得該符號的CRC值,并最終收到此錯誤消息。

        因此,有兩種解決方法。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞:

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 海原县| 朔州市| 吉林省| 夏河县| 华亭县| 普陀区| 宣汉县| 清水河县| 邻水| 昌吉市| 自贡市| 基隆市| 称多县| 通海县| 赤水市| 达孜县| 吴川市| 泉州市| 沙田区| 开远市| 东平县| 阿拉尔市| 吉首市| 赞皇县| 乐昌市| 襄垣县| 山丹县| 凌源市| 广安市| 克山县| 德昌县| 天祝| 临海市| 陆川县| 从江县| 师宗县| 博湖县| 喀什市| 福贡县| 海丰县| 九龙县|