DPDK环境搭建
我安装的是CentOS7 64位,使用的dpdk16.07版本
(一)配置环境要求
1.安装CentOS7时,要求至少4个核心(可以2个CPU,2个Core,或者1个CPU,4个Core)
2.内存至少1G(为了配置hugepage,多分点比较好)
3. 网卡至少两个
安装虚拟机网卡:
(1)先将虚拟机shutdown;
(2)光标放到虚拟机上,右击设置,选中网络适配器添加两个网卡,配置如下
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进行重启
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. 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的程序;
(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 显示网卡状态
(6)绑定网卡,Option:24
让你输入pci的地址, 3你只要将0000:02:03.0 中的,0000冒号后面的几位输入就行了, 如 02:03.0 记得标点也要输。
注意绑定的时候可以能有个错误的提示如下;
因为是你当前的对应的网卡处于up状态,所以你要执行down命令将其关闭;
例如我的网卡是eno50332184
ifconfig eno50332184 down;关闭后再重新执行一下上面的绑定操作;注意要绑定两个
这样就网卡绑定成功了,然后option27和28是测试,但是我这边会出错,找不到sudo:app/test command cannot be found,现在仍在尝试,会继续跟进,也希望大家可以提出来。
测试部分解决了,是dpdk的bug,可以在网上下载一个补丁就可以了,也可以编辑一下igb_uio.c中的程序,只注释一句if语句就可以了。如下:
也可以看我的另一篇文章dpdk的环境搭建之命令搭建。
参考的文章有http://blog.csdn.net/linzhaolover/article/details/17642259博客,dpdk16.07官方的安装介绍以及自己的各路学习。