参考:linux内核插入模块时 Unknown symbol in module
参考:arm上加载insmod驱动时出现Unknown symbol in module
安装驱动:
(1)编译linux内核
(2)编译驱动
(3)安装驱动
/mnt/mnt1/sdk # insmod ./drivers/galcore.ko
insmod: can't insert './drivers/galcore.ko': unknown symbol in module, or unknown parameter
galcore: Unknown symbol max_pfn (err 0)
galcore: Unknown symbol invalid_pte_table (err 0)
galcore: Unknown symbol min_low_pfn (err 0)
(1)可能由模块依赖的其他模块没有加载造成,查看galcore.ko的依赖 modinfo ./galcore.ko | grep depend
没有依赖项,排除这种可能
(2)
进入驱动源文件夹,查找包含上述符号的所有文件,驱动源文件没有引用这几个符号
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$ grep -rRn "max_pfn" *
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$ grep -rRn "invalid_pte_table" *
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$ grep -rRn "min_low_pfn" *
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$
zhenglf@hwlnx01:~/Documents/VIP/drivers/driver_810/6.3.2.3$
进入内核源文件夹,查找包含上述符号的所有文件