• Ubuntu工控机CAN卡驱动安装(手动安装)


    Ubuntu工控机CAN卡驱动安装(手动安装)

    1.驱动源码下载

    链接:https://pan.baidu.com/s/1KsXjNR8P6Z-TCk9oO-vIEQ
    提取码:669m

    下载PCI-9820I CAN卡linux驱动源码zpcican_socket.rar,解压将文件夹复制到ubuntu工控机对应目录下
    在这里插入图片描述

    2.检查PCI CAN卡硬件连接是否正常

    通过lspci –n检查硬件连接是否有问题,从下图可以看到10b5:9821(测试型号为PCI-9820I),表示连接正常
    输入:sudo apt install pciutils
    在这里插入图片描述

    3.编译CAN卡驱动

    修改makefile文件中KDIR参数,根据实际的kernel-source目录填写。
    测试电脑实际内核头文件目录为/usr/src/linux-headers-4.15.0-112-generic,
    在这里插入图片描述

    所以将驱动源码中Makefile的KDIR修改为/usr/src/linux-headers-4.15.0-112-generic
    在这里插入图片描述

    然后执行make(终端输入 make),即可得到zpcican.ko
    在这里插入图片描述

    4.加载驱动

    4.1复制驱动

    将zpcican.ko复制到/lib/modules/ 目录下(在zpcican.ko所在的目录下 右键终端,输入sudo cp zpcican.ko /lib/modules
    在这里插入图片描述

    在zpcican_socket_JN_2022_05_15目录下执行如下指令:
    sudo cp -pv ./zpcican.ko /lib/modules/4.15.0-112-generic/
    提示输入密码
    在这里插入图片描述

    4.2 生成驱动依赖文件
    通过生成依赖文件可以保证系统启动时自动加载zpcican驱动
    先进入/lib/modules/4.15.0-45-generic/目录
    cd /lib/modules/4.15.0-45-generic/

    然后执行指令depmod,生成驱动模块依赖关系文件
    sudo depmod
    提示输入密码
    在这里插入图片描述

    4.3 加载驱动模块
    仍然在/lib/modules/4.15.0-45-generic/目录,输入如下指令:
    sudo modprobe sja1000
    sudo modprobe zpcican

    在这里插入图片描述

    5.检查can驱动是否安装成功

    检查驱动是否安装成功,如果显示对应CAN通道,表示安装成功:
    ls /sys/class/net/
    在这里插入图片描述

    显示can0,can1表示驱动安装成功

    6.开机自启动

    理论上说不需要的,但是发现有些电脑开机后,输入ifconfig指令发现can卡没有起来,对于这种情况,一般是生成驱动依赖没有正常完成,折中的解决办法是加入开机启动脚本,Ubuntu系统的开机启动脚本是/etc/目录下的rc.local文件,赋予文件rwx权限

    sudo chmod 777 /etc/rc.local

    然后往里面增加can口的配置和启动can口的指令,指令为zp开头的驱动文件夹下的readme.txt下的四句话,
    在这里插入图片描述

    打开readme.txt,最后的四行看到第一和第二行出现bitrate,第三和第四行出现can0 up和can1 up的就是,把#去掉,前两句是配置波特率,后两句是启动can口up,记得手动改下波特率500000(也就是500k),重启后输入ifconfig,如果出现了can0和can1那就是成功了。
    在这里插入图片描述

    7.补充

    敲入以下指令:
    sudo vim /etc/rc.local
    进入到下面的界面,将下面图片中exit 0 移动到最末尾行
    按“i”进入编辑模式,用键盘上下左右键控制,移动完成后
    按“esc”–>”:”–>”wq”保存并退出,再输入ifconfig就可以看到can0和can1了

  • 相关阅读:
    阿里云ecs使用docker安装nacos
    二级导航栏
    【SpringBoot】Spring常用注解总结
    视频m4v如何转换成mp4
    rules使用正则表达式进行校验手机号
    4. git 添加版本标签
    Keras:ModelCheckpoint和model.fit的verbose有什么差异?
    【十字链表,邻接多重表(无向图的另一种链式存储结构),图的遍历】
    第十三届蓝桥杯c++b组2022年国赛决赛题解
    Redis之Lua脚本讲解
  • 原文地址:https://blog.csdn.net/qq_44013790/article/details/126281525