搭建环境:VM

VM搭建参考其他博客

步骤一 点击虚拟机设置,添加两个网卡(我这里都是使用的都是桥接模式)

步骤二、从网上下载dpdk的压缩包:

命令:wget http://fast.dpdk.org/rel/dpdk-18.05.1.tar.gz

解压安装:tar -zxvf  dpdk-18.05.1.tar.gz

步骤三 安装相关依赖:

yum install numactl

yum install numactl-devel

yum install gcc

yum install gcc kernel-devel-$(uname -r)或者直接yum install gcc kernel-devel时候+tab键补全

步骤四、进入 /usr/src/kernels查看内核

步骤五、进入 /lib/modules/3.10.0-957.el7.x86_64 目录查看软链接 build是否正确

不正确会红光闪烁,原因是gcc版本和内核版本不一致,在后续安装中,会造成make: *** /lib/modules/5.2.4-1.el7.elrepo.x86_64/build: No such file or directory.  Stop. 错误,

解决办法:删除原有的build文件,重新链接上,代码如下:

rm -rf build

ln -s  /usr/src/kernels/3.10.0-1127.18.2.el7.x86_64 /lib/modules/3.10.0-957.el7.x86_64/build

内核按具体情况填写

下面这个是正确的:

步骤六、安装DPDK

cd /root/dpdk-stable-18.05.1/

cd usertools/         (有些dpdk的版本目录是tools)

./dpdk-setup.sh       (执行安装)

步骤七、选择gcc进行安装

我这里是15(每个版本的DPDK都不一样,选择x86_64位的gcc安装就行)

gcc编译成功:

步骤八、插入IGB UIO

这里是18,因此选择18

如果是第二次运行,Loading uio module可能不存在,不影响后续

步骤九、设置大页内存

选择22  Setup hugepage mappings for NUMA systems

输入:1024

成功:

步骤十、绑定网卡

选择23  查看当前可用网卡:

这是虚拟机中空闲的2个网卡(前面添加的)

如果网卡出现Active的情况,将两张网卡down掉

代码如下

ifconfig ens37 down

ifconfig ens38 down

注意if后的ens37和ens38

选择24  绑定网卡

输入:ens37 ens38    (或者 02:05.0 02:06.0)

绑定网卡成功:

步骤十一、退出安装+配置环境变量

ctrl+c或者选择35退出安装,配置环境变量

vim ~/.bash_profile

export RTE_SDK=/root/dpdk-stable-18.05.1              (这个是安装的dpdk的绝对路径)

export TE_TARGET=x86_64-native-linuxapp-gcc          (选择gcc编译)

然后刷新环境变量

source ~/.bash_profile

步骤十二、测试

测试安装是否成功

cd /root/dpdk-stable-18.05.1/examples/helloworld

make

cd build

./helloworld

此时会出现 这个错误:

解决办法:

cd /root/dpdk-stable-18.05.1/kernel/linux/igb_uio     (每个版本的igb_uio存放的位置不一样,在dpdk的目录里找到它)

vim igb_uio.c

:set number              (让vim显示行号)

:/pci_intx_mask_supported

将这语句pci_intx_mask_supported(udev->pdev) 修改为 pci_intx_mask_supported(udev->pdev || true)

再进入 ./dpdk-setup.sh 重新安装一次(跟上述步骤一样,唯一不一样的是选择 24绑定网卡的时候不能输入 ens37 ens38  输入 02:05.0 02:06.0  具体用23查看网卡属性)

再次测试:

cd /root/dpdk-stable-18.05.1/examples/helloworld

make

cd build

./helloworld

显示下图则表示成功:

小白式DPDK搭建方法(附相关错误得处理方法)的更多相关文章

  1. Idea for Mac 过期 IntelliJ IDEA 2017 完美注册方法(附idea for Mac破解方法)

    Idea 不能使用了: 开始破解: (1)首先下载 jar包: https://download.csdn.net/download/engerla/10573069 放到位置: /Applicati ...

  2. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...

  3. 使用django建博客时遇到的URLcon相关错误以及解决方法。错误提示:类型错误:include0获得一个意外的关键参数app_name

    root@nanlyvm:/home/mydj/mysite# python manage.py runserver Performing system checks... Unhandled exc ...

  4. 【mysql】修改数据时候,抛出safe mode相关错误,处理方法

    在mysql5中,可以设置safe mode,比如在一个更新语句中 UPDATE table_name SET bDeleted=0; 执行时会错误,报: You are using safe upd ...

  5. CyclicBarrier正确的使用方法和错误的使用方法

    CyclicBarrier是java推出的一个并发编程工具,它用在多个线程之间协同工作.线程约定到达某个点,到达这个点之后的线程都停下来,直到最后一个线程也到达了这个点之后,所有的线程才会得到释放.常 ...

  6. Linux出现Read-only file system错误的解决方法

    造成这个问题的解决办法大多数是由于非正常关机后导致文件系统受损引起的,在系统重新启动之后,受损分区就会被Linux自己主动挂载为仅仅读.解决办法是通过fsck来修复文件系统,然后重新启动就可以,下面是 ...

  7. Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)

    一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...

  8. thinkphp5.0的验证码安装和相关错误

    thinkphp5.0的验证码安装和相关错误 问题 只要是之前使用thinkphp5框架搭建网站的时候发现不管如何调用验证码都无法使用,按照官网要求,使用composer安装验证码出现报错Fatal ...

  9. 从零开始实现ASP.NET Core MVC的插件式开发(八) - Razor视图相关问题及解决方案

    标题:从零开始实现ASP.NET Core MVC的插件式开发(八) - Razor视图相关问题及解决方案 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun ...

随机推荐

  1. pandas_使用属性接口实现高级功能

    C:\Users\lenovo\Desktop\总结\Python\超市营业额.xlsx 这个文档自己创建就可以,以下几篇文章仅作为参考 import pandas as pd import copy ...

  2. 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码

    笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...

  3. sql_to_csv

    将需要信息 导出成 csv,txt等格式 create or replace procedure sql_to_csv(p_query in varchar2, --sql query stateme ...

  4. Springboot开发web项目

    当前,Spring毫无疑问已经成为java后台对象管理标准框架,除了通过IOC能够管理我们的自定义对象的生命周期之外还提供了众多功能繁复的可配置功能模块.但同时带来了复杂的配置项,这对初学者而言简直是 ...

  5. 笨办法学习python3练习代码:argv参数变量与文件操作

    ex15.py 完成ex15.py需要在ex15.py同文件夹目录下面准备一个txt文件(ex15_sample.txt) 执行ex15.py 如: python     ex15.py      e ...

  6. Ubuntu定时执行任务(定时爬取数据)

    cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效. 1:编辑crontab文件,用来存放你要执行的命令 s ...

  7. Focal Loss 损失函数简述

    Focal Loss 摘要 Focal Loss目标是解决样本类别不平衡以及样本分类难度不平衡等问题,如目标检测中大量简单的background,很少量较难的foreground样本.Focal Lo ...

  8. javascript函数的笔记

    1.函数的概念     封装一段可以被重复调用执行的代码块来实现大量代码的重复使用     2.函数的使用分为两步:声明函数 和 调用函数     3.声明函数的关键字全部是小写     4.函数名一 ...

  9. C#LeetCode刷题之#387-字符串中的第一个唯一字符(First Unique Character in a String)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3939 访问. 给定一个字符串,找到它的第一个不重复的字符,并返回 ...

  10. Flutter 容器(6) - FractionallySizedBox

    FractionallySizedBox 用法与SizedBox类似,只不过FractionallySizedBox的宽高是百分比大小,widthFactor,heightFactor参数就是相对于父 ...