dpdk环境搭建

DPDK环境搭建

我安装的是CentOS7 64位,使用的dpdk16.07版本

(一)配置环境要求

1.安装CentOS7时,要求至少4个核心(可以2个CPU,2个Core,或者1个CPU,4个Core)

2.内存至少1G(为了配置hugepage,多分点比较好)

3. 网卡至少两个

安装虚拟机网卡

(1)先将虚拟机shutdown

(2)光标放到虚拟机上,右击设置,选中网络适配器添加两个网卡,配置如下

dpdk环境搭建_第1张图片

 

3. dpdk版本配置环境要求:如果使用不同的dpdk版本,最好看一下官方dpdk的pdf要求,dpdk16.07要求内核Kernel version >= 2.6.34(使用uname –r查看),glibc>=2.7,(ldd –version查看)。CentOS7 64位kernel version是3.10.0,glibc是2.17(2.17大于2.7)

4.有关于CentOS7的其它配置安装(后面进行要用)

1ip地址的配置:安装好CentOS7后,由于CentOS7的ip地址需要自己配置,进入网卡配置文件 cd/etc/sysconfig/network-scripts, 编辑vi ifcfg-eno16777736(我的网卡名称),然后修改完成后service network restart进行重启

dpdk环境搭建_第2张图片

2ifconfig的配置:yuminstall net-tools.x86_64 按照提示进行安装

3gcc的安装:yum –y intallgcc

4c++的安装:yum –y installgcc-c++

5内核文件的安装:因为dpdk涉及到驱动编译,驱动编译涉及到内核所以需要安装内核文件:yum install –y kernel-devel kernel-headers,然后yum install kernel.x86_64 -y

(二)dpdk的安装

1)、下载源码

解压,进入dpdk16.07

2)、设置环境变量

1. export RTE_SDK=`pwd`  

2. export RTE_TARGET=x86_64-default-linuxapp-gcc  

3. #export RTE_TARGET=i686-default-linuxapp-gcc 

然后用source启用这几个环境变量;

source  dpdk.rc 

注意,你以后如果重新登陆终端,进入这个目录,都要source一下这个文件,才能正常运行dpdk的程序;

3)、利用setup.sh进行配置

(1)命令:./dpdk-setup.sh (进入dpdk16.07下的tools,运行dpdk-setup.sh)出现下面的信息:

----------------------------------------------------------

 Step 1: Select the DPDK environment to build

----------------------------------------------------------

[1]arm64-armv8a-linuxapp-gcc

[2]arm64-dpaa2-linuxapp-gcc

[3]arm64-thunderx-linuxapp-gcc

[4]arm64-xgene1-linuxapp-gcc

[5]arm-armv7a-linuxapp-gcc

[6]i686-native-linuxapp-gcc

[7]i686-native-linuxapp-icc

[8]ppc_64-power8-linuxapp-gcc

[9]tile-tilegx-linuxapp-gcc

[10]x86_64-ivshmem-linuxapp-gcc

[11]x86_64-ivshmem-linuxapp-icc

[12]x86_64-native-bsdapp-clang

[13]x86_64-native-bsdapp-gcc

[14]x86_64-native-linuxapp-clang

[15]x86_64-native-linuxapp-gcc

[16]x86_64-native-linuxapp-icc

[17]x86_x32-native-linuxapp-gcc

 

----------------------------------------------------------

 Step 2: Setup linuxapp environment

----------------------------------------------------------

[18]Insert IGB UIO module

[19]Insert VFIO module

[20]Insert KNI module

[21]Setup hugepage mappings for non-NUMA systems

[22]Setup hugepage mappings for NUMA systems

[23]Display current Ethernet device settings

[24]Bind Ethernet device to IGB UIO module

[25]Bind Ethernet device to VFIO module

[26]Setup VFIO permissions

 

----------------------------------------------------------

 Step 3: Run test application for linuxappenvironment

----------------------------------------------------------

[27]Run test application ($RTE_TARGET/app/test)

[28]Run testpmd application in interactive mode ($RTE_TARGET/app/testpmd)

 

----------------------------------------------------------

 Step 4: Other tools

----------------------------------------------------------

[29]List hugepage info from /proc/meminfo

 

----------------------------------------------------------

 Step 5: Uninstall and system cleanup

----------------------------------------------------------

[30]Unbind NICs from IGB UIO or VFIO driver

[31]Remove IGB UIO module

[32]Remove VFIO module

[33]Remove KNI module

[34]Remove hugepage mappings

 

[35] Exit Script

 

(2)Option: 15 (我的是64位,32位的选择6)


会报错,这是因为是由于build链接出错,没有所链接的那个地址,修改一下就好了,Ctrl+C退出

cd /lib/modules/3.10.0-327.el7.x86_64进入该目录下


如果还报错,提示没有pcap。,则安装一下sudo yum install libpcaplibcap-devel就可以通过了

 

(3)Option:18

 

(4)Option:21,64位的虚拟机建议使用1G的hugepage,输入128.执行完后可以在Option上输入29就行显示

 

(5)Option:23 显示网卡状态,但是报错,如下:

 

Traceback (mostrecent call last):

  File"/root/dpdk-16.07/tools/dpdk-devbind.py", line 576, in

    main()

  File"/root/dpdk-16.07/tools/dpdk-devbind.py", line 572, in main

    get_nic_details()

  File"/root/dpdk-16.07/tools/dpdk-devbind.py", line 248, inget_nic_details

    dev_lines =check_output(["lspci", "-Dvmmn"]).splitlines()

  File"/root/dpdk-16.07/tools/dpdk-devbind.py", line 125, in check_output

    stderr=stderr).communicate()[0]

  File "/usr/lib64/python2.7/             subprocess.py", line 711, in__init__

    errread, errwrite)

  File"/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child

    raise child_exception

OSError: [Errno 2]No such file or directory

这是由于CentOS7中没有lspci的原因,安装一下就可以解决:yum install pciutils -y

然后再执行一次Option:23  显示网卡状态

 dpdk环境搭建_第3张图片

(6)绑定网卡,Option:24


让你输入pci的地址, 3你只要将0000:02:03.0 中的,0000冒号后面的几位输入就行了, 如 02:03.0   记得标点也要输。

注意绑定的时候可以能有个错误的提示如下;

dpdk环境搭建_第4张图片

因为是你当前的对应的网卡处于up状态,所以你要执行down命令将其关闭;

例如我的网卡是eno50332184

 ifconfig eno50332184 down关闭后再重新执行一下上面的绑定操作;注意要绑定两个

 dpdk环境搭建_第5张图片

这样就网卡绑定成功了,然后option27和28是测试,但是我这边会出错,找不到sudo:app/test command cannot be found,现在仍在尝试,会继续跟进,也希望大家可以提出来。

测试部分解决了,是dpdk的bug,可以在网上下载一个补丁就可以了,也可以编辑一下igb_uio.c中的程序,只注释一句if语句就可以了。如下:

dpdk环境搭建_第6张图片

也可以看我的另一篇文章dpdk的环境搭建之命令搭建。


参考的文章有http://blog.csdn.net/linzhaolover/article/details/17642259博客,dpdk16.07官方的安装介绍以及自己的各路学习。

 

你可能感兴趣的:(dpdk)