Linux 驱动安装
多数 Linux 发行版已经随内核提供 PCAN 驱动,常见模块包括 peak_usb、peak_pci 和 peak_pciefd。这类驱动随内核更新,通常不需要单独维护,应优先使用。 当内核未提供驱动、驱动版本过旧或不支持当前设备时,才需要编译安装 PEAK-System 单独发布的 PCAN-Linux 驱动;本文将其编译为 SocketCAN 驱动,由 pcan 模块提供 can0、can1 等接口,内核升级后可能需要重新编译安装。
检查系统是否自带驱动
连接 PCAN 设备后,执行以下命令查看 USB 设备、已加载的 PEAK 驱动和 CAN 网络接口:
lsusb
lsmod | grep '^peak'
ip -details link show type canPCAN-USB 通常使用 peak_usb 内核模块。如果模块没有自动加载,可以手动加载后再次检查:
sudo modprobe peak_usb
lsmod | grep '^peak'
ip -d link show type can如何判断不需要安装驱动
如果 ip -d link show type can 已经显示 can0、can1 等接口,说明系统自带驱动已经正常工作,无需继续安装。
如果 lsusb 能识别设备,但系统没有加载对应的 peak_* 模块,也没有出现 CAN 网络接口,再继续安装 PCAN-Linux 驱动。
安装 PCAN-Linux 驱动
准备编译环境
Debian、Ubuntu 及其衍生发行版执行:
sudo apt update
sudo apt install build-essential linux-headers-$(uname -r) libpopt-dev下载驱动
前往 PEAK-System PCAN-Linux 驱动下载页面,下载最新的 peak-linux-driver-X.Y.Z.tar.gz。
下载完成后解压并进入源码目录:
tar -xzf peak-linux-driver-X.Y.Z.tar.gz
cd peak-linux-driver-X.Y.Z请将 X.Y.Z 替换为实际下载的版本号。
编译驱动
先清理旧的构建结果,再使用 netdev 目标编译 SocketCAN 驱动:
make clean
make netdev安装并验证驱动
sudo make install
sudo modprobe pcan安装完成后请重新插拔 USB 设备;如果接口仍未出现,请重启电脑。
执行以下命令检查安装结果:
lsmod | grep '^pcan'
modinfo pcan | grep -E '^(version|description):'
ip -details link show type candescription 中包含 netdev,并且系统出现 can0、can1 等接口,即表示驱动安装成功。
内核升级
普通源码安装的驱动是针对当前内核编译的。系统升级内核后,如果 PCAN 设备不再出现,请进入驱动源码目录,重新执行 make clean、make netdev 和 sudo make install。
