Linux周立功CAN驱动安装指导

Linux周立功CAN驱动安装指导

  • 安装
  1. 打开Linux终端,进入root模式

①非永久模式,在命令前加sudo前缀

②永久模式,在终端输入sudo su命令,再输入当前用户的密码,就可以以root身份登录到终端。

  1. 将sja1000.h复制到内核目录

#cd (zpcican中Makefile所在目录)

#cp sja1000.h /usr/src/your-kernel-source/drivers/net/can/sja1000/sja1000.h

注:your-kernel-source,为内核目录源,通过cat /proc/vesion指令查看内核版本信息,再在usr/src(通常)下寻找和版本对应的内核目录。例如:内核版本信息为Linux version 4.40-141-generic。。。。,则在usr/src下的linux-headers-4.4.0-141-generic即为your-kernel-source。以上仅适用于Ubantu系统,在其他Linux系统未测试。

  1. 编辑Makefile,将KDIR更改为您的内核目录
  2. 编译并加载zpcican.ko

#make

#insmod zpcican.ko

注:make完成后在zpcican文件夹下,可以看到生成zpcican.ko等文件

若加载模块失败(insmod zpcican.ko失败):

①若报找不到insmod zpcican.ko,使用指令cp -r zpcican.ko /usr/src/linux-headers

-4.4.0-141-generic,拷贝zpcican.ko到路径

②若报没找到模块,或缺乏(没找到)依赖项错误

# modinfo ./zpcican.kolgrep depend 查看依赖项名称, 结果是---->depends:     依赖项名称(sja1000)

# modprobe sja1000  加载依赖项

#inmod ./zpcican.ko  再加载zpcican.ko模块

③若报无法插入模块zpcican.ko:无效模块格式

应考虑,内核目录是否错误,重新查看内核版本,防止内核版本变更导致的错误

  1. 安装can-utils

#apt-get update

#apt-get install can-utils

注:apt-get update的时间比较久,耐心等待

  1. 检查硬件

#lspci -n

出现如下图结果:

Linux周立功CAN驱动安装指导_第1张图片

  1. 检查设备节点

#ls / sys / class / net / can*

出现如下图结果:

Linux周立功CAN驱动安装指导_第2张图片

  • CAN接收发送测试
  1. 检测CAN是否连接

#ip link show can0

结果如下

  1. 设置can波特率

# ip link set can0 type can bitrate 500000 triple-sampling on

或者:#ip link set can0 type can bitrate 500000

  1. 使能CAN接口

#ip link set can0 up

或者:#ifconfig can0 up

  1. CAN接收测试

用一转多,一头接待测试板卡CAN0,另一头接CAN-E-U卡,CAN-E-U接笔记本电脑,笔记本电脑端打开cantest,设置与CAN0相同的波特率,ID422,每次发送10帧,如下图所示;

终端输入#candump can0指令进入等待接收模式,此时点击cantest发送按钮,在终端可以观察到如下结果:

Linux周立功CAN驱动安装指导_第3张图片

  1. CAN发送测试

在另一个终端输入#cangen can0 -g 4 -I 42A -L 1 -D i -v -v指令,可以在cantest观察到数据不停的接收。结果如下:

Linux周立功CAN驱动安装指导_第4张图片

同时在终端也可以看到数据的发送:

Linux周立功CAN驱动安装指导_第5张图片

  1. 当can总线不再被需要或重新配置can(波特率)时,请关闭can接口

你可能感兴趣的:(Linux,杂项)