由于公司提供的socketcan的驱动是基于Linux内核版本编的,不同版本的内核Insmod会失败。所以要将内核版本和驱动版本保持一致。
1、查看公司提供的socket的版本有好几个,随便挑选一个进行编译;
2、查看自己的内核和ubunt版本,发现和自己的不匹配所以要跟换Ubuntu的内核版本;
3、首先在网站挑选一个和驱动移植的版本内核源码,然后下载安装。由于选的版本在官网没有,只能去其他地方找找,以下连接各个版本还是比较全的
一、选择版本连接:https://pkgs.org/download/linux-source
二、点进去复制下载连接。然后再游览器重新打开,就可以下载了。点进去拉倒最下面,然后复制下面的链接进行下载:https://ubuntu.pkgs.org/20.04/ubuntu-updates-main-amd64/linux-source-5.4.0_5.4.0-42.46_all.deb.html
4、使用如下命令进行安装sudo dpkg -i linux-source-5.4.0_5.4.0-42.46_all.deb
5、 解压下载好的内核源码压缩包,然后 复制正在运行的ubntu内核的.config进行配置,sudo cp /usr/src/linux-headers-4.18.0-15-generic/.config ./
6、Make menconfig,添加CAN的组件支持;
7、Make menconfig,添加CAN的组件支持;
8、sudo make bzImage编译内核;
可能会提升确实库或者报错,用下列命令进行安装
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install ncurses-dev
sudo apt-get install libssl-dev
9、sudo make modules
sudo make modules_install
sudo make install
10、重新启动不停的按ESC键,然后进入到引导界面,就可以看到刚刚安装的内核了。如何还想用原来的,可以再切回去。