首页 > 其他分享 >交叉编译ethtool

交叉编译ethtool

时间:2022-10-17 20:11:13浏览次数:45  
标签:ethtool git 交叉 编译 libmnl linux arm

一、准备工作

  1. 源代码git仓库地址
# ethtool依赖libmul
git clone git://git.netfilter.org/libmnl
# ethtool源码
git clone git://git.kernel.org/pub/scm/network/ethtool/ethtool.git
  1. 交叉编译工具链

​ 安装需要的交叉编译链工具。这个需要根据自己的开发环境自行解决。

  1. 配置编译环境
# 如果编译工具链目录已经在PATH下,跳过此步骤
export PATH=/.../gcc-linaro-arm-linux-gnueabihf-4.8/bin/:$PATH

二、编译libmnl

ethtool 依赖于 libmnl 库,因此先对 libmnl 库进行交叉编译与静态链接。

# 自动配置编译环境,生成makefile等文件
$ ./configure  --host=arm-linux CC=arm-hisiv400-linux-gcc LDFLAGS=-static --prefix=$PWD
# 若之前编译过,先清除之前的编译结果
make clean
# 编译
$ make

编译完成后,目标文件会保存在当项目根目录下的includelib目录中

三、编译ethtool

# 创建编译所需配置文件
$ ./autogen.sh
# 自动配置编译环境,生成makefile等文件,将$LIBMNL_PWD替换为libmnl项目根目录,如:/opt/libmnl
$ ./configure --prefix=$PWD --host=arm-linux CC=arm-hisiv400-linux-gcc MNL_CFLAGS="-I$LIBMNL_PWD/include" MNL_LIBS="-L$LIBMNL_PWD/lib -lmnl" LDFLAGS=-static
# 若之前编译过,先清除之前的编译结果
$ make clean
# 编译目标文件
$ make

四、编译结果

编译完成后,在ethtool根目录生成名为ethtool的目标文件

$ ll ethtool
-rwxrwxr-x 1 aoniu aoniu 4432456 3月  31 09:52 ethtool
$ ls
aclocal.m4      depcomp              ibm_emac.o     Makefile.am   sfpdiag.o
amd8111e.c      dsa.c                igb.c          Makefile.in   sfpid.c
amd8111e.o      dsa.o                igb.o          marvell.c     sfpid.o
at76c50x-usb.c  e1000.c              igc.c          marvell.o     shell-completion
at76c50x-usb.o  e1000.o              igc.o          missing       smsc911x.c
AUTHORS         e100.c               INSTALL        natsemi.c     smsc911x.o
autogen.sh      e100.o               install-sh     natsemi.o     stamp-h1
autom4te.cache  et131x.c             internal.h     netlink       stmmac.c
......

标签:ethtool,git,交叉,编译,libmnl,linux,arm
From: https://www.cnblogs.com/nazhen/p/16800427.html

相关文章