.ko 加载报错 “unknown symbol in module or invalid parameter” 排查解决方法
问题来源
今天参照Sigmastar的文档,修改config重新编译kernel,打开板上RNDIS虚拟网口。
按照步骤重编后,在demo.sh加入insmod指令,按顺序在启动时加载相关ko模块,结果系统重启时出现如下报错:

猜想问题的原因应该是前置模块未加载,进行排查,最终得出了遇到相关问题的解决方法。
解决方法
使用dmesg命令输出缓冲区的系统启动信息,了解未成功加载的根源:

可以看到,是由于缺乏一系列前置符号量导致该错误的。
我们在宿主机找寻这些符号量是从哪些模块export出来的,进入内核编译kernel目录下查询:
grep -nr "usb_interface_id"
查询grep的输出,最终找到了来源是libcomposite.ko这个模块:

我们在板上系统加载该ko文件,再加载usb_f_ecm.ko模块,不再报错,说明依赖问题得到了解决:




![引用参考文献[1,2]或者[1-3]](https://img-blog.csdnimg.cn/3e295979efde43d9be2bb32548223f52.png)














