我正在將Linux模塊(PageMgrMod
)移植到更新的內核,但現在這些函數對其他模塊不可見。例如,當裝入使用PageMgrMod
模塊提供了錯誤現有的Linux模塊符號
no symbol version for init_pgmgr
Unknown symbol init_pgmgr
但是看完/proc/kallsyms
顯示符號存在
ffffffff81883c0d T x86_init_pgd_noop
ffffffffa012a5c0 r __ksymtab_init_pgmgr [PageMgrMod]
ffffffffa012a669 r __kstrtab_init_pgmgr [PageMgrMod]
ffffffffa012a600 r __kcrctab_init_pgmgr [PageMgrMod]
ffffffffa012a380 T init_pgmgr [PageMgrMod]
此功能在2.6.18內核的工作,但未能在2.6.32- 24內核。
我已經看到類似的問題,但這些解決方案沒有幫助,因爲我無法修改其他模塊。
如果有差別,模塊源位於不同的文件夾中。
你從'PageMgrMod'模塊使用Module.symvers文件當你構建一個使用'PageMgrMod'模塊?使用不正確的.symvers文件(或根本沒有文件)可能會導致您描述的錯誤。 – Eugene