CAN-PCIe/402系列板卡Linux驱动软件安装快速入门

此快速入门目的是为让用户能快速了解CAN-PCIe/402系列板卡的Linux驱动软件安装流程。esd官方安装流程,请阅读Linux驱动软件包中的README文件。

【1】安装前的准备

  1. 下载CAN-PCIe/402系列板卡的Linux驱动软件。
  2. 下载中心可以下载Linux驱动软件包。在写此快速入门时,最新的驱动软件版本为4.0.1。如果是64位的操作系统,请下载esdcan-pcie402-linux-x86_64-4.0.1-0.71d.tgz,如果是32位的操作系统,请下载esdcan-pcie402-linux-x86-4.0.1-0.71d.tgz 。

  3. Linux版本
  4. 驱动软件4.0.1适用的Linux kernel版本为Linux 2.6.x + 3.x + 4.x。安装流程在如下Linux发布版本中被测试过,但驱动软件的使用不局限于此Linux发布版本。
    Linux ubt 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

【2】解压缩软件驱动包

  1. 此入门手册使用的是64位驱动包。驱动包解压缩在登陆用户的HOME目录中,用户可以根据自己的需求解压缩到其他目录中。
  2. 拷贝驱动包到HOME目录。
  3. 解压缩驱动包到HOME目录。
  4. cd ~
    tar -xv -f esdcan-pcie402-linux-x86_64-4.0.1-0.71d.tgz

【3】使用dkms方式build和install驱动软件

  1. 安装dkms。
  2. sudo apt-get install dkms
  3. 添加驱动目录内的src目录到dkms中,需使用root权限。
  4. cd ~/esdcan-pcie402-linux-x86_64-4.0.1
    sudo -s
    root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# dkms add ./src
  5. build驱动软件。
  6. root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# dkms build esdcan-pcie402-linux-x86_64/4.0.1
  7. install驱动软件
  8. root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# dkms install esdcan-pcie402-linux-x86_64/4.0.1

【4】使用udev方式自动生成设备节点

  1. 拷贝驱动目录内的esdcan-pcie402-dev.rules文件到udev的rules.d目录下,此rules文件在每次系统启动时被加载。其中指定的由驱动自动生成的脚本文件/proc/bus/can/%k/inodes会被执行,用来生成设备节点。
  2. root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# cp udev/esdcan-pcie402-dev.rules /etc/udev/rules.d/
  3. 手动载入kernel module,用来测试安装是否成功。
  4. root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# modprobe -v esdcan-pcie402
    root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# dmesg | grep esd
  5. 查看/dev目录下是否有生成can的设备节点,如出现/dev/can0装置节点,说明udev rules中的脚本执行成功。
  6. root@ubt:~/esdcan-pcie402-linux-x86_64-4.0.1# ll /dev/can*
    crw-rw-rw- 1 root root 52, 0 1月 17 09:55 /dev/can0

【5】安装NTCAN头文件

sudo install -v -g root -o root -m u=rw,g=r,o=r ~/esdcan-pcie402-linux-x86_64-4.0.1/include/ntcan.h /usr/local/include/

【6】安装NTCAN库文件

sudo install -v -g root -o root -m u=rwx,g=rx,o=rx ~/esdcan-pcie402-linux-x86_64-4.0.1/lib64/libntcan.so.4.2.2 /usr/local/lib/
cd /usr/local/lib/
sudo ldconfig -v -n /usr/local/lib/
sudo ln -sfv libntcan.so.4 libntcan.so

【7】检查如下的文件是否安装到指定的目录中

【8】将NTCAN库文件载入系统

  1. 将/usr/local/lib/目录写入/etc/ld.so.conf中。
  2. sudo sh -c "echo /usr/local/lib/ >> /etc/ld.so.conf"
  3. 执行ldconfig命令读取/etc/ld.so.conf文件,将/usr/local/lib中的NTCAN库文件载入系统。
  4. sudo ldconfig
  5. 查看NTCAN库文件是否载入成功。如果显示ntcan相应的信息,说明载入成功。
  6. ldconfig -p | grep ntcan

【9】为cantest工具创建链接文件

sudo ln -s ~/esdcan-pcie402-linux-x86_64-4.0.1/bin64/cantest /usr/local/sbin/cantest

【10】测试以上安装步骤是否成功

  1. 在任意目录,执行cantest,查看是否有对应的板卡信息与设备节点被读取出来。
  2. 编译与连接example/cantest.c,生成执行文件。
  3. cd esdcan-pcie402-linux-x86_64-4.0.1\example\
    gcc -o cantest_in_example cantest.c -lntcan
  4. 执行编译生成的cantest_in_example执行文件。
  5. ./cantest_in_example