在Ubuntu上添加usbcan设备
本文主要介绍在Ubuntu上添加usbcan卡,以及如何添加虚拟vcan
1. linux下添加can
将usbcan插入电脑,使用lsusb
查看电脑是否检测到该can设备,识别出的can硬件为PCAN-USB
使用sudo ip addr
查看can口状态,可以看出can0处于down状态
加载can需要的内核模块
sudo modprobe can
sudo modprobe can_raw
sudo modprobe can_dev
查看添加后的内核模块lsmod | grep can
设置波特率和错误重连间隔sudo ip link set can0 type can bitrate 500000 restart-ms 100
启动can0,sudo ip link set up can0
再次使用sudo ip addr | grep can0
查看can0口状态,此时can0已经处于up状态
使用can-utils中提供的工具测试can0是否可以使用了
2.开机自动设置can
-
开机自动加载can需要的模块
修改boot时的加载的内核模块配置文件
cd /etc/modules-load.d sudo vi modules.conf
在modules.conf中添加can需要的内核模块
-
自动设置can参数
NetworkManager对can的配置效果不好,使用systemd-networkd服务配置can
使能systemd-networkd,sudo systemctl enable systemd-networkd
启动sudo systemctl start systemd-networkd
添加can接口参数,cd /etc/systemd/network
,创建配置文件vi 80-can.network
,配置文件名可以任意取,文件是按照字母顺序处理的,添加以下内容
重启systemd-networkd服务,sudo systemctl restart systemd-networkd
- 设置完成后可以使用
ip -details link show can0
查看can0的信息
3.添加vcan
在Linux上还支持创建虚拟的CAN接口
-
手动添加vcan
添加vcan-dev,
sudo ip link add dev vcan0 type vcan
设置mtu,
sudo ip link set vcan0 mtu 16
,canfd只需要将16改为72set-up,
sudo ip link set up vcan0
-
开机自动设置vcan
设置自动加载内核模块vcan,
sudo vi/etc/modules-load.d/modules.conf
,在文件末尾添加vcan
创建vcan虚拟设备,在
etc/systemd/network
目录下创建80-vcan0.netdev
,内容如下创建配置文件
vi 80-vcan0.network
重启systemd-networkd服务
sudo systemctl restart systemd-networkd