Skip to content

Linux 驱动安装 ​

多数 Linux 发行版已经随内核提供 PCAN 驱动,常见模块包括 peak_usb、peak_pci 和 peak_pciefd。这类驱动随内核更新,通常不需要单独维护,应优先使用。 当内核未提供驱动、驱动版本过旧或不支持当前设备时,才需要编译安装 PEAK-System 单独发布的 PCAN-Linux 驱动;本文将其编译为 SocketCAN 驱动,由 pcan 模块提供 can0、can1 等接口,内核升级后可能需要重新编译安装。

检查系统是否自带驱动 ​

连接 PCAN 设备后,执行以下命令查看 USB 设备、已加载的 PEAK 驱动和 CAN 网络接口:

bash
lsusb
lsmod | grep '^peak'
ip -details link show type can

PCAN-USB 通常使用 peak_usb 内核模块。如果模块没有自动加载,可以手动加载后再次检查:

bash
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 及其衍生发行版执行:

bash
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。

下载完成后解压并进入源码目录:

bash
tar -xzf peak-linux-driver-X.Y.Z.tar.gz
cd peak-linux-driver-X.Y.Z

请将 X.Y.Z 替换为实际下载的版本号。

编译驱动 ​

先清理旧的构建结果,再使用 netdev 目标编译 SocketCAN 驱动:

bash
make clean
make netdev

安装并验证驱动 ​

bash
sudo make install
sudo modprobe pcan

安装完成后请重新插拔 USB 设备;如果接口仍未出现,请重启电脑。

执行以下命令检查安装结果:

bash
lsmod | grep '^pcan'
modinfo pcan | grep -E '^(version|description):'
ip -details link show type can

description 中包含 netdev,并且系统出现 can0、can1 等接口,即表示驱动安装成功。

内核升级

普通源码安装的驱动是针对当前内核编译的。系统升级内核后,如果 PCAN 设备不再出现,请进入驱动源码目录,重新执行 make clean、make netdev 和 sudo make install。

雪球电子 · 专注通讯