使用pktgen-dpdk,编译成功后, 运行报错: 找不到 libmlx4.so.1。
但是l2fwd和testpmd可以运行。
rm /usr/local/lib64/dpdk/pmds-21.0/librte_net_mlx4.so*
版本: pktgen20.11 + dpdk20.11
安装了 OFED ,版本
version: MLNX_OFED_LINUX-5.4-3.4.0.0-rhel8.5-x86_64
./mlnxofedinstall --upstream-libs --dpdk
应该是之前的编译残留了 librte_net_mlx4.so。而pktgen采用动态链接的方式编译,dpdk库初始化时会检查 目录下 每个动态库依赖。
l2fwd和testpmd可以运行,是因为采用 static静态链接的方式编译
rdma-core版本的问题。mlx_ofed安装时自带一个rdma-core包。但是这个包 并不是在本机源码编译过的,其会寻找libmlx4的库(本机并不存在)。因此,可从linux-rdma/rdma-core 重新编译。
[root@ct8test88 z]# ./pktgen
Copyright (c) <2010-2020>, Intel Corporation. All rights reserved. Powered by DPDK
EAL: Detected 128 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Detected shared linkage of DPDK
EAL: libmlx4.so.1: cannot open shared object file: No such file or directory
EAL: FATAL: Cannot init plugins
EAL: Cannot init plugins