Kvaser Linux 驱动安装
大部分现代 Linux 发行版已经随内核提供 Kvaser SocketCAN 驱动,模块名为 kvaser_usb。使用 Kvaser USB 设备前,建议先确认当前系统是否已经支持:如果插入设备后能看到 can0 到 can3,通常无需安装独立驱动;只有系统没有 kvaser_usb 模块、模块无法加载,或插入设备后没有创建 CAN 网络接口时,才需要安装独立 SocketCAN 驱动。
先确认系统是否已有驱动
先检查系统是否带有 kvaser_usb 模块,并尝试加载:
modinfo kvaser_usb
sudo modprobe kvaser_usb如果 modinfo 能输出模块信息,且 modprobe 没有报错,说明当前系统已经具备 Kvaser USB SocketCAN 驱动。
插入 Kvaser USB 设备后,再检查设备枚举、内核日志和 CAN 网络接口:
lsusb -d 0bfd:
dmesg | grep -Ei 'kvaser|can|usb'
ip link show type can如果能看到 can0 到 can3,说明当前系统已经实际支持 Kvaser USBcan Pro 4xHS,可以直接按 SocketCAN 方式使用,无需继续安装独立驱动。
确认 Kvaser USBcan Pro 4xHS 是否被当前系统支持
可以先看当前内核版本:
uname -rLinux 5.12+ 理论上支持 Kvaser USBcan Pro 4xHS;Linux 5.10、5.4、4.19 默认不认为支持(除非 BSP 已经 backport 相关驱动)。
再检查内核配置中是否启用了 Kvaser USB 驱动:
grep CONFIG_CAN_KVASER_USB /boot/config-$(uname -r)
zcat /proc/config.gz | grep CONFIG_CAN_KVASER_USB如果配置结果为 CONFIG_CAN_KVASER_USB=m,表示驱动以内核模块形式提供;如果为 CONFIG_CAN_KVASER_USB=y,表示驱动已编入内核。最终仍以插入设备后是否出现 can0 到 can3 为准。
原生驱动不可用时安装独立 SocketCAN 驱动
当系统没有 kvaser_usb 模块、模块无法加载,或插入设备后没有创建 CAN 网络接口时,则需要安装 Kvaser 独立 SocketCAN 驱动。
Kvaser SocketCAN 驱动下载: https://kvaser.com/single-download/?download_id=1011691570
注意
SocketCAN 驱动使用 Linux 通用 SocketCAN API,不能与 Kvaser Linux Drivers and SDK(LinuxCAN/CANlib 专有驱动)混用。如果应用程序依赖 Kvaser CANlib API,请安装 Kvaser Linux Drivers and SDK。
Kvaser SocketCAN 驱动要求:
- Linux 内核 4.9 或更高版本;
- 与当前运行内核版本匹配的内核头文件;
make和gcc编译工具。
Ubuntu/Debian 系统可执行:
sudo apt update
sudo apt install build-essential linux-headers-$(uname -r) ethtool从上述官方页面下载驱动压缩包,然后解压并进入源码目录。压缩包名称中的版本号以实际下载版本为准。
tar -xzf socketcan_kvaser_drivers_X_XX_XXX.tar.gz
cd socketcan_kvaser_drivers安装或升级驱动前,先断开所有 Kvaser USB 设备。安装时,在驱动源码目录中执行:
sudo make uninstall
make
sudo make install安装后验证
连接 USB 设备后,检查系统是否创建 CAN 网络接口:
ip link show type can查看驱动和设备信息:
ip -details link show can0看到 can0 到 can3 后,才算当前系统已经实际支持并识别 Kvaser USBcan Pro 4xHS。

