技术博客

27/06/2025 作者 Kvaser

安装指南|在树莓派PC上安装Linuxcan和Linux驱动程序

树莓派(Raspberry Pi)已成为PC领域一款价格亲民但功能强大的工具。树莓派单板计算机易于嵌入、设置简单且非常灵活,广泛应用于各种系统中。

Kvaser Linux驱动程序和SDK开发包支持安装在树莓派操作系统上,让您的树莓派系统也能使用Kvaser硬件。安装过程与基于ARM的Linux PC类似,但存在一些关键差异。本文将介绍常规内核模块和动态内核模块(DKMS)的驱动安装方法。

第一步是准备树莓派操作系统。首先启用源码包,方法是取消sources列表中deb-src行的注释,并使用“sudo”命令确保以管理员权限运行,如下所示:

%sudo sed -i  ‘s/^#deb-src/deb-src/’ /etc/apt/sources.list.d/raspi.list

接下来,安装构建工具和内核头文件,并确保安装的内核头文件为最新版本。

%sudo apt update
%sudo apt install build-essential raspberrypi-kernel-headers

如果您尚未下载Kvaser Linux驱动程序和SDK开发包,请在这里下载。在终端窗口中,您需要使用以下命令解压文件:

%tar -xzf linxuxcan_X_XX_XXX.tar.gz

tar程序用于提取压缩的tar文件。其中,“x”命令用于解压,“z”命令用于启用gzip压缩(因为该文件已被压缩,需要解压缩),“f”命令则告知tar程序下一个参数是归档文件名。X_XX_XXX是您所下载的驱动程序和SDK的版本号。

打开解压.tar.gz文件所在的目录,找到linuxcan文件夹。进入”linuxcan”目录后,运行:

%make
%sudo make install

默认情况下,PCIe和虚拟CAN驱动程序均未安装。这是因为您可能不希望在启动时加载这些驱动,特别是当您不打算使用它们时。这样可以减少设备启动时加载的组件。

如果您希望安装并加载虚拟CAN和PCIe驱动程序,则需要运行:

%sudo make load 

如果您使用的是不支持PCIe的旧主板,则需要对“sudo”命令使用“-E”参数,以保留环境变量。如果由于您的主板没有PCIe导致安装出现问题,那么我们需要设置“KDIR”和“KV_NO_PCI”这两个环境变量。

$ sudo -E make install  
使用动态内核模块支持(DKMS

如果您希望使用动态内核模块支持(DKMS),从而避免在内核更新后重新安装驱动程序,可以参考以下步骤。

确保树莓派内核头文件更新到最新版本,然后安装DKMS。

%sudo sed -i  ‘s/^#deb-src/deb-src/’ /etc/apt/sources.list.d/raspi.list
%sudo apt update
%sudo apt install build-essential raspberrypi-kernel-headers
%sudo apt install dkms

该命令将在您的系统上下载并安装DKMS软件包。安装完成后,运行以下命令安装兼容DKMS的驱动程序:

%make dkms
%sudo make dkms_install  

总而言之,在树莓派上安装驱动程序与在其他Linux系统上安装并无太大差异,只是需要注意内核头文件是否正确。除了可以安装Linuxcan之外,您还可以在树莓派上使用SocketCAN。(注意:PC上安装驱动程序将会禁用SocketCAN驱动程序,以避免冲突。在其他Linux PC上安装Linuxcan也是如此。)

它能为您带来什么帮助?

单板计算机在人工智能和嵌入式系统中日益普及。能够在这些系统上安装Kvaser驱动程序,为Kvaser产品应用于更多新兴、有趣的环境中开启了机遇。您也可以在基于ARM的Linux系统上安装Kvaser CanKing 7,构建属于您自己的单板CAN总线监控系统。您还可以通过加装HAT扩展板,为您的树莓派增加M.2接口功能,并使用Kvaser M.2 PCIe 4xCAN板卡来实现板载CAN功能。

 

Author Image

Adam Raymer

Adam Raymer是Kvaser AB公司的一名现场应用工程师,位于美国底特律附近。Adam定期与客户保持良好沟通,是我们全球支持团队中的活跃成员之一。