在beaglebone中开发CAN驱动,我采用内核默认的配置,参考文档是“Sitara Linux Software Developer’s Guide”,内核用的是linux-3.1.0-psp04.06.00.03.sdk,
将编译好的.ko文件拷贝到lib相应的目录下。
加载驱动后出现如下问题:
root@am335x-evm:/# modprobe d_can
[95.548096] d_can: version magic '3.1.0 mod_unload modversions ARMv5 ' should be '3.1.0 mod_unload modversions ARMv7 '
FATAL: Error inserting d_can (/lib/modules/3.1.0/kernel/drivers/net/d_can.ko): Invalid module format
该如何解决呢?
说明:CAN模块是和所用的内核同时编译,编译的命令依次为:
(1)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- mrproper
(2)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- tisdk_am335x-evm_defconfig
(3)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- uImage
(4)make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- modules
还有:我看像blooth等的驱动模块加载内核的时候就一并加进去了,为什么can的还得自己加进去呢?
还有:我将CAN模块设置成静态的编译内核,总会导致电脑突然断电,郁闷呐!
zerong li:
回复 Yaoming Qin:
该文档已经看过了,谢谢!现在该问题已经解决,驱动模块可以在加载,但是运行CAN的命令如canconfig can0(或can1) start,会显示Cannot find device "can0"。。。直接编译到内核的方法我也试过,存在同样的问题,我又开了一个新帖详细阐述具体情况,期待您的回答,谢谢!
zerong li:
回复 Yaoming Qin:
我又发了个新帖详细说明了情况,希望给予指导!www.deyisupport.com/…/9198.aspx
TI中文支持网

