ubuntu虚拟机编译dpdk23

虚拟机环境

  1. 网卡设置

我这里使用的是ubuntu20,网卡配置至少两张。一张nat用于设置虚拟机ip用于通信,其他的桥接用给dpdk使用。
在这里插入图片描述
对于dpdk使用的网卡,在虚拟机的路径下的xxx.vmx文件中增加修改下列的文本,注意:在虚拟机关机情况下修改。(修改此文件的目的是达到多队列网卡的目的)

# X为网卡id
ethernetX.virtualDev = "vmxnet3"
ethernetX.wakeOnPcktRcv = "TRUE"

iommu和大页配置开启:
在/etc/default/grub文件的GRUB_CMDLINE_LINUX添加iommu=pt intel_iommu=on default_hugepagesz=1G hugepagesz=1G hugepages=4
再使用grub-mkconfig -o /boot/grub/grub.cfg
然后执行update-grub再重启虚拟机
在这里插入图片描述
在这里插入图片描述

  1. 依赖

虚拟机需要安装一些依赖。如果编译dpdk的时候还出现了其他错误,可以根据报警信息搜索一下。

sudo apt-get install meson
sudo apt install python3-pyelftools
sudo apt-get install build-essential
sudo apt-get install libnuma-dev
  1. 大页
# 系统默认每个大页的大小是2M, 在这里设置256个大页
echo 512 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge

注意命令需要root权限

DPDK编译

  1. 编译裁剪
    如果你想全部编译就跳过此步骤。
    在drivers目录下的各各子目录下的meson.build中,针对subdirs 中的选项,如果不需要可以将其注释或删除
# 这里的build是指定构建的目录,可以替换为你自己指定的目录
meson build
ninja -C (指定到上面的路径)
sudo ninja install -C
# 将dpdk的lib库添加到系统路径
echo "/usr/local/lib64/" >> /etc/ld.so.conf.d/dpdk.conf  
sudo ldconfig
# 设置pkg-config路径
echo "export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig" >>  /etc/profile
 # 加载vfio-pci模块
echo "modprobe vfio-pci" >>  /etc/profile
source /etc/profile

# 以下命令用于检查dpdk是否安装好 有输出基本上就没问题
ldconfig -p|grep librte|wc -l
ldconfig -p | grep librte_graph
pkg-config --variable pc_path pkg-config
pkg-config --modversion libdpdk

到此dpdk就安装好了

测试

进入到源代码的examples/helloworld下,直接make然后用root权限执行build下的helloworld程序

EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: VFIO support initialized
TELEMETRY: No legacy callbacks, legacy socket not created
hello from core 1
hello from core 2
hello from core 3
hello from core 0

./usertools/dpdk-devbind.py -s #查看网卡信息
./usertools/dpdk-devbind.py -b vfio-pci 后面跟上网卡名,网卡提前需要down

参考:
https://zhuanlan.zhihu.com/p/613149235?utm_id=0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值