VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试

VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试

  • 一、编译
  • 二、DPDK绑定网卡
  • 三、测试helloworld

一、编译

1、tar -xvf dpdk-18.08.1.tar.xz后进入dpdk-stable-18.08.1,执行 ./usertools/dpdk-setup.sh,选择15 [15] x86_64-native-linuxapp-gcc后出现如下错误
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第1张图片
2、安装yum install numactl-devel*x86_64 -y后继续执行./usertools/dpdk-setup.sh出现
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第2张图片
rpm -ivh kernel-devel-3.10.0-693.el7.x86_64.rpm
编译成功后提示
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第3张图片
目标目录/root/home/code/third/dpdk-stable-18.08.1/x86_64-native-linuxapp-gcc/kmod已经生成igb_uio.ko与rte_kni.ko
在这里插入图片描述

二、DPDK绑定网卡

1、继续选择[24] Bind Ethernet/Crypto device to IGB UIO module绑定网卡,输入ens33后提示
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第4张图片
查看lspci
(1)正常环境下
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第5张图片
执行lspci
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第6张图片
而且lspci文件位置为/usr/sbin/
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第7张图片
(2)虚拟机的lspci版本一致但是文件大小为0,所以拷贝正常环境的lspci到虚拟机
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第8张图片
lspci依赖libpci.so.3.5.1,而/lib64/libpci.so.3的文件大小为0,所以也需要拷贝此文件到虚拟机
运行lspci后正常
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第9张图片
新增虚拟机网卡用于绑定DPDK
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第10张图片
虚拟机测试需要配置4核CPU才会正常启动
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第11张图片
(3)dpdk分配大页内存及绑定网卡/root/home/code/dpdk_run.sh

cd /root/home/code/third/dpdk-stable-18.08.1/usertools
mount -t hugetlbfs nodev /mnt/huge
echo 64 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
modprobe uio
cp /root/home/code/third/dpdk-stable-18.08.1/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko /usr/lib
insmod /usr/lib/igb_uio.ko
ifconfig ens37 down
./dpdk-devbind.py -b igb_uio ens37
ifconfig ens38 down
./dpdk-devbind.py -b igb_uio ens38

(4)/root/home/code/third/dpdk-stable-18.08.1/usertools/dpdk-devbind.py --status
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第12张图片
解绑DPDK
[root@localhost usertools]# ./dpdk-devbind.py -b e1000 0000:02:05.0
[root@localhost usertools]# ./dpdk-devbind.py -b e1000 0000:02:06.0
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第13张图片
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第14张图片

三、测试helloworld

1、进入/root/home/code/third/dpdk-stable-18.08.1/examples/helloworld后执行make提示
在这里插入图片描述
2、设置环境变量后

export RTE_SDK=/root/home/code/third/dpdk-stable-18.08.1
export RTE_TARGET=x86_64-native-linuxapp-gcc

再继续编译则正常
在这里插入图片描述
3、直接运行./build/helloworld 则提示失败
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第15张图片
经过前面的DPDK绑定,再次运行helloworld
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第16张图片
EAL: Error reading from file descriptor 10: Input/output error
需要修改源码
dpdk-stable-18.08.1\kernel\linux\igb_uio\igb_uio.c
需要注释pci_intx_mask_supported后重新编译

VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第17张图片
修改后

	/* fall back to INTX */
	case RTE_INTR_MODE_LEGACY:
		//if (pci_intx_mask_supported(udev->pdev)) {
			dev_dbg(&udev->pdev->dev, "using INTX");
			udev->info.irq_flags = IRQF_SHARED | IRQF_NO_THREAD;
			udev->info.irq = udev->pdev->irq;
			udev->mode = RTE_INTR_MODE_LEGACY;
			break;
		//}

重新编译后执行
VMvare虚拟机下CentOS7.4编译dpdk-18.08.1遇到问题解决与测试_第18张图片

你可能感兴趣的:(网络编程,Linux后台开发)