TSN之iproute2交叉编译
TSN之iproute2交叉编译
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
这一系列工具是为了取代一些过时不更新的命令
以上参考自https://zh.wikipedia.org/zh-hans/Iproute2
2 为什么要交叉编译iproute2
大部分嵌入式板卡应该具有这个工具,但不知是什么原因imx8mp-evk缺少我使用的tc命令,因此我需要进行交叉编译满足需求。
可以通过git下载最新的版本进行编译
git clone https://github.com/shemminger/iproute2
下面是git下来的最新代码
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
make -j 8
没有问题成功进行了编译,然后make install
为如下结果
这一切看似正常,没有什么问题,可是接下来导入开发板发现了缺少一个动态链接库。
然而交叉编译也没有生成相应的文件。
通过万能的谷歌,发现了只要再交叉编译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
然后将生成的这三个文件拷贝到开发板对应的/usr/lib文件夹下即可
注:我复制的比较随意,软链接?没了,不过可以用我就没管。
注:个人能力有限,欢迎批评指正。
原创不易,严禁剽窃!
欢迎大家关注我创建的微信公众号——小白仓库
原创经验资料分享:包含但不仅限于FPGA、ARM、RISC-V、Linux、LabVIEW等软硬件开发,另外分享生活中的趣事以及感悟。目的是建立一个平台记录学习过的知识,并分享出来自认为有用的与感兴趣的道友相互交流进步。