linux 增加tc命令

发布时间 2023-06-12 20:25:36作者: YYFaGe

  tc命令是iproute2包中的一个工具,可以用了模拟网络延时、抖动、丢包等操作,有些设备上没有tc命令,需要手动增加。下面以zynqMP linux 5.4为例说明tc命令的移植过程

一、tc命令交叉编译

  1、下载iproute2包源码:git clone https://github.com/shemminger/iproute2

  2、解压源码包就入目录,运行configure配置脚本查看帮助 

  

  我们可以看到这里需要配置的就是--prefix这个个安装目录参数

  3、source zynqmp的交叉编译环境

  4、运行配置脚本./configure --prefix /home/yyfage/YY/open_source/iproute2/iproute2_install-6.1.0

  5、脚本运行完成后,会生成一个config.mk的文件,这个就是Makfile会读取的配置文件。打开这个配置文件可以看到已经配置好了各种编译参数。像CC参数其实就是第三步source 交叉编译环境产生的环境变量CC

  6、执行make编译程序

  7、执行make install安装,不过这里执行安装有问题出现以下错误

    

    安装不成功也没关系,我们关心的tc命令就这 tc目录中,直接把tc目录中生成的tc程序复制到板端即可

二、交叉编译iptables

  要运行tc命令还需要iptables库的支持

  1、下载iptables源码:git clone git://git.netfilter.org/iptables

  2、运行autogen.sh 脚本生成configure配置脚本

  3、执行./configure --prefix=/home/yyfage/YY/open_source/iproute2/iptables_isntall --host=aarch64-xilinx-linux --disable-nftables 配置工程,会生成Makefile文件

  4、执行make编译

  5、执行make install安装

  6、将安装目录 lib下的libxtables.so.12复制到板端即可

三、内核配置

  在内核源码目录中执行make ARCH=arm64 CROSS_COMPILE=aarch64-xilinx-linux- menuconfig打开内核配置选项,也可以用petalinux

  1、进入 --> Networking support 

      --> Networking options 

    添加IP: advanced router 和IP: policy routing  

  

  2、进入 --> Networking support 

      --> Networking options 

        -->QoS and/or fair queueing 

     添加Network emulator (NETEM)