linux模块编译后加载不成功 5

我在menuconfig中选择了要编译的USBNET模块,编译成功后,modprobeusbnet,却报错了:modprobe:ERROR:couldnotinsert'... 我在menuconfig 中选择了要编译的USBNET模块,编译成功后,modprobe usbnet,却报错了:modprobe: ERROR: could not insert 'usbnet': Exec format error,用dmesg打印出来的信息是:usbnet: exports duplicate symbol usbnet_device_suggests_idle (owned by kernel),请各位大牛支招! 展开
 我来答
融火IC
推荐于2017-05-22 · TA获得超过522个赞
知道小有建树答主
回答量:412
采纳率:77%
帮助的人:148万
展开全部

从dmesg的输出来看,内核已经export了一个同样的symbol,你加载的驱动再次输出一遍就有问题了。

可能原因:

  1. usbnet模块可能在系统启动后已经加载了,你不需要手动再次加载。这个又可能由两个原因造成:(1)你在menuconfig中选择USBNET模块为[*]模式(驱动集成到内核),而非[M]模式(驱动以模块方式动态插入内核);(2)你已经选择了[M]模式,但是按照系统的默认配置在系统启动过程中会自动动态加载这个驱动,无需手动加载;

  2. 虽然选择了USBNET模块并重新编译了内核,但是新编译的内核并没有更新到系统上,系统还是使用的老的内核。

现在你应该可以排除一下上面的猜测的几种可能原因吧?

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式