linux配置can驱动

系统为中标麒麟龙芯版,在终端中使用ifconfig -a命令查询是否有can模块,如果发现没有can模块,则需要加载can驱动。
复制sja1000.ko和sja1000_lpc.ko两个文件至桌面,使用
insmod sja1000.ko
insmod sja1000_lpc.ko
加载这两个文件,出现了如下图所示的问题
在这里插入图片描述
应该是内核版本和.ko文件不匹配导致的。更换系统内的内核文件vmlinuz文件,系统中原有的文件为vmlinuz-3.10.0文件,将原有文件删掉,把新文件复制过去,并更改为原来文件名,并重启设备(若不重启,还是会出现如上图所示的问题)。
重启之后,再次加载.ko文件。在终端使用ifconfig -a查询是否有can模块。此时出现can0,can1等模块。
设置需要使用的can0口参数,
在这里插入图片描述在这里插入图片描述 用到的命令
ip link set can0 type can bitrate 250000
ip link set can0 up
此时发现重启设备后找寻不到can模块,发现要重新加载,设备不能自动加载。将.ko文件放到系统/lib/modules/xxx/kernel/drivers/net/can/下,执行一下depmod -a,重启就能自动加载(设备出现别的问题,目前还未试)。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐