1.下载can相关的测试工具
wget https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.11.tar.bz2
wget https://public.pengutronix.de/software/socket-can/canutils/v4.0/canutils-4.0.6.tar.bz2
将下载的两个安装包放在你顺手的路径
2.首先使用bz2的解压命令解压软件包
tar -jxvflibsocketcan-0.0.11.tar.bz2
3.创建一个sh文件,编写一个脚本。将编译完成后生成的库都在out/lib里,将这些库全部放到开发板的文件系下的lib目录里,复制时最好在命令前面加sudo进行复制,然后输入sync命令同步数据,确保数据复制完成。
./configure --host=aarch64-xilinx-linux --prefix=$PWD/out
make
make install
一般源码的安装共三个步骤:配置(configure)、编译(make)、安装(make install)。
--host在需要进行交叉编译时使用,用来指定运行环境,这里使用aarch64-xilinx-linux
--prefix的作用是指定安装路径,若是不进行该选项的配置,安装之后的可执行文件默认安装在/usr/local目录下。其中可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其他的资源文件放在/usr/local/share。
下面是一个例子:
./configure --prefix=$PWD/_install --host=arm-linux
--host=arm-linux 运行环境 (交叉编译成arm)
--prefix=$PWD/_install 指定安装目录,其中$PWD指的是当前路径。
在编译的过程中可能会遇到一些报错,如:
在网上查找相关问题,找到一个博主大佬写的方法:
大概思路是需要下载两个文件补丁进行替换:
wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
找到"config.guess"以及"config.sub"两个文件,然后替换掉即可。
find . -name "config.guess"
find . -name "config.sub"
二、编写canutils-4.0.6
tar -jxvf canutils-4.0.6.tar.bz2解压缩
直接创建一个脚本
mkdir out
./configure --host=arm-xilinx-linux-gnueabi --prefix=$PWD/out libsocketcan_ LIBS=-lsocketcan LDFLAGS="-L$PWD/out/lib/" libsocketcan_CFLAGS="-I$PWD/out/i nclude"
cp ../libsocketcan-0.0.11/include/libsocketcan.h can_netlink.h include/
make
make install
- 将out文件夹放置在开发板根文件系统下的user/lib目录下,即可在开发板上使用如下的测试命令。