欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TSN之iproute2交叉编译

程序员文章站 2022-03-19 11:56:50
...

0 开发环境

  • 笔记本:ubuntu18.04.5,内核版本为5.3
  • 开发板:imx8mp-evk
  • 内核版本:Linux5.4.24
  • 交叉编译工具链:fsl-imx-xwayland-glibc-x86_64-imx-image-core-aarch64-imx8mpevk-toolchain-5.4-zeus.sh

注:下面的可能会遗漏部分细节,但主要的部分基本都写出来了,应该无大碍。
注:以下步骤虽然针对的imx8mp-evk,但只要是aarch64架构的芯片,大部分操作都通用的。
注:这是个人的踩坑记录,虽然可以解决问题,但估计不是最好的解决方案,欢迎评论区一起探讨。

1 iproute2是什么

iproute2是Linux上有关TCP/IP网路的一系列工具,现时由Stephen Hemminger负责维护。这一系列工具的原作是Alexey Kuznetsov,他亦是Linux内核中有关QoS实现的作者。这一系列的工具包括了以下几个元件:

  • ss ip lnstat nstat rdma routef routel ctstat rtstat tc bridge devlink rtacct rtmon tipc arpd genl

这一系列工具是为了取代一些过时不更新的命令
TSN之iproute2交叉编译

以上参考自https://zh.wikipedia.org/zh-hans/Iproute2

2 为什么要交叉编译iproute2

大部分嵌入式板卡应该具有这个工具,但不知是什么原因imx8mp-evk缺少我使用的tc命令,因此我需要进行交叉编译满足需求。

可以通过git下载最新的版本进行编译

git clone https://github.com/shemminger/iproute2

下面是git下来的最新代码
TSN之iproute2交叉编译

3 交叉编译iproute2

source /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
git clone https://github.com/shemminger/iproute2
cd iproute2/
./configure --host=aarch64-poky-linux --prefix=/home/sazczmh/NXP_Intern/imx8mp_tsn/iproute2/iproute2

TSN之iproute2交叉编译

make -j 8

TSN之iproute2交叉编译
没有问题成功进行了编译,然后make install为如下结果
TSN之iproute2交叉编译
TSN之iproute2交叉编译

这一切看似正常,没有什么问题,可是接下来导入开发板发现了缺少一个动态链接库。TSN之iproute2交叉编译
然而交叉编译也没有生成相应的文件。
TSN之iproute2交叉编译

通过万能的谷歌,发现了只要再交叉编译iptables就可以得到想要的动态链接库了。

4 iptables

从官网下载源码并解压
https://www.netfilter.org/projects/iptables/downloads.html

注:个人愚钝,不建议从git下载(这个iptables从git下载的源码好像有点不会搞)

source /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux
cd iptables-1.8.5
mkdir bin
./configure --host=aarch64-poky-linux --prefix=/home/sazczmh/NXP_Intern/imx8mp_tsn/iptables-1.8.5/bin/ --disable-nftables
make -j 8
make install

TSN之iproute2交叉编译

然后将生成的这三个文件拷贝到开发板对应的/usr/lib文件夹下即可
TSN之iproute2交叉编译

TSN之iproute2交叉编译
注:我复制的比较随意,软链接?没了,不过可以用我就没管。



注:个人能力有限,欢迎批评指正。



原创不易,严禁剽窃!

TSN之iproute2交叉编译

欢迎大家关注我创建的微信公众号——小白仓库
原创经验资料分享:包含但不仅限于FPGA、ARM、RISC-V、Linux、LabVIEW等软硬件开发,另外分享生活中的趣事以及感悟。目的是建立一个平台记录学习过的知识,并分享出来自认为有用的与感兴趣的道友相互交流进步。