dpdk20.11在ubuntu20.04中新一代的安装
(2021-01-13 16:44:22)分类: DPDK |
新的安装方式貌似有点不一样了,改动挺大
前期准备
sudo apt-get install python3
sudo apt-get install python3-pip
sudo apt install pkg-config
sudo pip3 install meson
sudo pip3 install ninja
编译dpdk
cd dpdk-20.11
sudo meson -Dexamples=all build
cd build
sudo ninja install
新的dpdk没有igb_uio模块了,要自己下载
http://git.dpdk.org/dpdk-kmods/commit/linux/igb_uio
下载后虚拟机需要修改igb_uio.c
-
case
RTE_INTR_MODE_LEGACY: -
if ( || true) { -
dev_dbg(&dev->dev, "using INTX"); -
udev->info.irq_flags = IRQF_SHARED | IRQF_NO_THREAD; -
udev->info.irq = dev->irq; -
udev->mode = RTE_INTR_MODE_LEGACY; -
break; -
} -
dev_notice(&dev->dev, "PCI INTX mask not supported\
编译以后就有了igb_uio模块了
vfio需要先编辑/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt intel_iommu=on"
grub-mkconfig -o /boot/grub/grub.cfg 或update-grub
重启
$ cat /proc/cmdline | grep iommu=pt
$ cat /proc/cmdline | grep intel_iommu=on
查看生效
编辑启动脚本:
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
install -d /mnt/huge
mount -t hugetlbfs nodev /mnt/huge 2>/dev/null
echo 0 > /proc/sys/kernel/randomize_va_space
下面这两个模块安装了少报错
modprobe 8021q
modprobe vxlan
//igb_uio
modprobe uio
insmod /root/dpdk-kmods-main/linux/igb_uio/igb_uio.ko
modprobe vfio-pci
/usr/bin/chmod a+x /dev/vfio
/usr/bin/chmod 0666 /dev/vfio/*
./dpdk-devbind.py --bind=igb_uio
ens37
新一代dpdk
make文件内置了动态库和静态库的编译选项,默认是动态库
所以会找不到网卡,动态库网卡so没有连接过来
习惯了全兼容的我
不然dpdk rte_eth_dev_count_avail 总是为0
21.11版本里 需要安装
直接pip 可能找不到
pip install
pyelftools-0.27-py2.py3-none-any.whl