Linux Socket CAN——canutils嵌入式移植
Canutils是基于GNU GPLv2许可的开源代码,包括canconfig、canecho、cansend、candump、cansequence五个工具,用于检测和监控Socket CAN接口。本平台采用arm64处理器,故交叉编译工具采用aarch64-linux-gnu
1)下载源码:http://www.pengutronix.de/software/socket-can/download/canutils ,下载最新版本canutils 4.0.6;
2)因为编译canutils需要libsocketcan库支持,下载libsocketcan:http://www.pengutronix.de/software/libsocketcan/download/,下载最新版本libsocketcan 0.0.11,因为以前版本不支持交叉编译工具aarch64-linux-gnu,故下载最新版本。
3)解压libsocketcan-0.0.11.tar.bz2。执行configure命令。(其中--host是指定交叉工具链,--prefix是指定库的生成位置)
./configure --host=aarch64-linux-gnu --prefix=~/workspace/can/install/libsocketcan
执行make;
执行make install,libsocketcan编译完成。
4)解压canutils-4.0.6.tar.bz2,进入解压目录,因canutils不支持交叉编译工具aarch64-linux-gnu,故需要修改文件。
修改configure 文件2604行:ac_ct_CC=$ac_cv_prog_ac_ct_CC为ac_ct_CC="aarch64-linux-gnu-gcc"
修改/config/autocof/config.sub文件241行:添加 | aarch64 | aarch64_be \
318行:添加| aarch64-* | aarch64_be-* \
执行configure命令。(其中--host是指定交叉工具链,--prefix是指定库的生成位置,libsocketcan_LIBS是指定canconfig需要链接的库,LDFLAGS是指定外部库的路径,CPPFLAGS是指定外部头文件的路径)
./configure --host=aarch64-linux-gnu --prefix=~/workspace/can/install/canutils libsocketcan_LIBS=-lsocketcan LDFLAGS=-L~/workspace/can/install/libsocketcan/lib libsocketcan_CFLAGS=-I~/workspace/can/install/libsocketcan/include CFLAGS=-I~/workspace/can/install/libsocketcan/include
执行make
执行make install,/workspace/can/install/canutils下生成四个目录,分别拷贝到开发板文件系统的相应目录。