使用 ip link 命令查看网络接口,发现没有 can0 接口: link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,DYNAMIC,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether c2:5d:c0:ad:a3:3f brd ff:ff:ff:ff:ff:ff
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 98:1a:35:33:eb:c9 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 98:1a:35:33:eb:ca brd ff:ff:ff:ff:ff:ff
5: usb0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 96:6f:6c:6d:ce:cc brd ff:ff:ff:ff:ff:ff
我正在使用Ubuntu 22.04 的 ALTAS 200i DK A2 开发板实现 CAN 通信,但遇到了一些问题。
设备和环境
问题描述
ALTAS 200i DK A2 开发板上没有原生的 CAN 接口,但我需要实现 CAN 通信。我已经尝试通过 USB 转 CAN 适配器在电脑上发送信号,并使用 CAN 转 USB 适配器接收信号。
已尝试步骤
在开发板上确认 USB 设备:
lsusb确认 CAN 转 USB 适配器已被识别:Bus 004 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. Hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0c72:000c PEAK System PCAN-USB
Bus 003 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
检查 USB 设备信息:
dmesg | grep -i usb检查设备信息:能找到can转usb设备的条目[ 31.829500] usb 3-1.1: new full-speed USB device number 3 using xhci-hcd
[ 31.931579] usb 3-1.1: New USB device found, idVendor=0c72, idProduct=000c, bcdDevice=54.ff
[ 31.931587] usb 3-1.1: New USB device strings: Mfr=10, Product=4, SerialNumber=0
[ 31.931590] usb 3-1.1: Product: XCAN-USB
[ 31.931592] usb 3-1.1: Manufacturer:
查看网络接口:
ip link命令查看网络接口,发现没有can0接口:link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,DYNAMIC,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether c2:5d:c0:ad:a3:3f brd ff:ff:ff:ff:ff:ff
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 98:1a:35:33:eb:c9 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 98:1a:35:33:eb:ca brd ff:ff:ff:ff:ff:ff
5: usb0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 96:6f:6c:6d:ce:cc brd ff:ff:ff:ff:ff:ff
加载驱动程序:
peak_usb模块:modprobe: FATAL: Module peak_usb not found in directory /lib/modules/5.10.0+编译和安装 PEAK-System 驱动:
peak-linux-driver:Makefile:131: *** "Unable to automatically find the Kernel headers. These are mandatory to build the pcan driver. Please set the KERNEL_LOCATION variable to the root directory of your own built Kernel.". Stop.查找内核头文件:
find / -name "linux-headers*"没有找到匹配的头文件。/usr/lib/modules/5.10.0+/目录下。设置 KERNEL_LOCATION 并尝试重新编译:
仍然遇到问题:
make clean和make NET=NO_NETDEV_SUPPORT仍然未成功编译驱动。求助