当前位置: 首页>数据库>正文

centos如何安装dpkg centos dpdk

安装dpdk有两种方式:第一种命令;第二种使用dpdk-setup.sh。本文讲解通过dpdk-setup.sh来安装。

1.下载dpdk

 进入dpdk官网,下载想要的版本:http://core.dpdk.org/download/

2.安装依赖的库

yum install -y kernel-devel kernel-headers

yum install kernel.x86_64 -y 

根据编译安装dpdk时候的提示是否还有其他需要安装的依赖库,在此就不一一列举了。

3.环境配置

1. export RTE_SDK='pwd'  (pwd为你dkdk的解压目录,比如/home/dpdk-19.08)

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

4.开始安装

cd /home/dpdk-19.08/usertools

./dpdk-setup.sh

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_centos如何安装dpkg,第1张

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_DPDK_02,第2张

第一步选择: 36,配置编译的环境。

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_重启_03,第3张

 第二步选择 43,选择硬件支持的模式

 在选择43的时候出现如下错误

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_centos如何安装dpkg_04,第4张

经过查询,是内核版本和dpdk的模块版本不一致导致的问题。

查看ls /usr/src/kernels/发现只有 3.10.0-957.27.2.el7.x86_64;而我通过uname -r查看我的版本却是:3.10.0-123.el7.x86_64。

通过rpm命令查看我所安装的内核版本:

  

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_DPDK_05,第5张

 通过rpm -e kernel-3.10.0-123.el7.x86_64 卸载掉第二个kernel,然后重启系统再用uname -r查看内核版本就变成了kernel-3.10.0-957.27.2.el7.x86_64。

再从头开始执行安装步骤。

     1.export RTE_SDK='/home/dpdk-19.08'

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

     3../dpdk-setup.sh

    第三步选择 47,设置大页内存,然后提示输入1024

     设置大页内存太小会导致运行helloworld这个例子报错,所以先设置1024。

    第四部选择49,绑定网卡

选择49的时候绑定网卡,需要先停掉需要绑定的网卡  。

我在虚拟机上开了四个网卡,打算停掉后面的ens38和ens39,执行如下命令:

ifconfig ens38 down

ifconfig ens39 down

然后在运行脚本来选择49:

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_重启_06,第6张

我机器如图显示 ,直接输入02:06.0和02:07.0对应的就是ens38和ens39的网卡(前面4个0不需要输入)。

到此,环境已经搭建好了。

5测试dpdk

  • 1.配置环境,如果上面搭建的时候配置了,就不需要再配置了:

export RTE_SDK='/home/dpdk-19.08/'

export RTE_TARGET=x86_64-native-linuxapp-gcc

  • 2.编译代码

cd /home/dpdk-19.08/examples/helloworld

make

  • 3.运行可执行文件

./build/helloworld

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_linux_07,第7张

centos如何安装dpkg centos dpdk,centos如何安装dpkg centos dpdk_ci_08,第8张

 我的机器输出如上,虽然正确输出了hello from core# 但是上一句提示了错误:

EAL: Error reading from file descriptor 27: Input/output error

经了解是在虚拟机添加的网卡,dpdk不支持导致的。需要修改一行代码,跳过dpdk pci 检查:

打开/home/dpdk-19.02/kernel/linux/igb_uio/igb_uio.c,找到:

pci_intx_mask_supported(dev)

这行代码,然后修改为

pci_intx_mask_supported(dev)||true

再重新执行./dpdk-setup.sh重新编译。

再来运行./build/helloworld

这次就不会有报错了。


https://www.xamrdz.com/database/6an1939646.html

相关文章: