小白式DPDK搭建方法(附相关错误得处理方法)
搭建环境: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搭建方法(附相关错误得处理方法)的更多相关文章
- Idea for Mac 过期 IntelliJ IDEA 2017 完美注册方法(附idea for Mac破解方法)
Idea 不能使用了: 开始破解: (1)首先下载 jar包: https://download.csdn.net/download/engerla/10573069 放到位置: /Applicati ...
- 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法
前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...
- 使用django建博客时遇到的URLcon相关错误以及解决方法。错误提示:类型错误:include0获得一个意外的关键参数app_name
root@nanlyvm:/home/mydj/mysite# python manage.py runserver Performing system checks... Unhandled exc ...
- 【mysql】修改数据时候,抛出safe mode相关错误,处理方法
在mysql5中,可以设置safe mode,比如在一个更新语句中 UPDATE table_name SET bDeleted=0; 执行时会错误,报: You are using safe upd ...
- CyclicBarrier正确的使用方法和错误的使用方法
CyclicBarrier是java推出的一个并发编程工具,它用在多个线程之间协同工作.线程约定到达某个点,到达这个点之后的线程都停下来,直到最后一个线程也到达了这个点之后,所有的线程才会得到释放.常 ...
- Linux出现Read-only file system错误的解决方法
造成这个问题的解决办法大多数是由于非正常关机后导致文件系统受损引起的,在系统重新启动之后,受损分区就会被Linux自己主动挂载为仅仅读.解决办法是通过fsck来修复文件系统,然后重新启动就可以,下面是 ...
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...
- thinkphp5.0的验证码安装和相关错误
thinkphp5.0的验证码安装和相关错误 问题 只要是之前使用thinkphp5框架搭建网站的时候发现不管如何调用验证码都无法使用,按照官网要求,使用composer安装验证码出现报错Fatal ...
- 从零开始实现ASP.NET Core MVC的插件式开发(八) - Razor视图相关问题及解决方案
标题:从零开始实现ASP.NET Core MVC的插件式开发(八) - Razor视图相关问题及解决方案 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun ...
随机推荐
- python学习笔记1 -- 函数式编程之高阶函数 sorted排序
python提供了很强大的内置排序函数,妈妈再也不担心我不会写冒泡排序了呀,sorted函数就是这个排序函数,该函数参数准确的说有四个,sorted(参数1,参数2,参数3,参数4). 参数1 是需要 ...
- JavaScript高级程序设计(第三版) 7/25
第七章 函数表达式 1.定义函数的方式有两种,一种是函数声明,一种是函数表达式. //函数声明 function fuc (a){ } //函数表达式 var fuc = function(a){ } ...
- 不想得手指关节炎?帮你提炼IDEA常用代码补全操作
一.常用的代码补全操作 1..for和.fori(for 循环遍历) 输入args.for回车(args是一个数组或集合类),则会生成for循环遍历: 输入args.fori回车,则会生成带有索引的f ...
- 2019 HL SC day4
自闭场本来 以为 顶多一些不太会 结果发现 一堆不太会 . 树状数组 感觉 好久没看 了有点遗忘 不过还好 现在我来了.莅临之神将会消灭一切知识点哦. 今天说点不一样东西 树状数组 hh 很有用的东 ...
- JS&ES6学习笔记(持续更新)
ES6学习笔记(2019.7.29) 目录 ES6学习笔记(2019.7.29) let和const let let 基本用法 let 不存在变量提升 暂时性死区 不允许重复声明 块级作用域 级作用域 ...
- 《Head First 设计模式》:单件模式
正文 一.定义 单件模式确保一个类只有一个实例,并提供一个全局访问点. 要点: 定义持有唯一单件实例的类变量. 私有化构造,避免其他类产生实例. 对外提供获取单件实例的静态方法. 二.实现步骤 1.创 ...
- vmware15虚拟机安装教程
自己碰到的问题:本人win7 64位旗舰版系统.之前用VMware12pro版本的软件,在安装Ubuntu18.04之后,有时候开启Ubuntu虚拟机时有点问题,重启就可以了.但是不稳定,所以改用VM ...
- Spring Cloud Data Flow用Shell来操作,方便建立CICD
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 之前我们用两篇文章讲解了Spring Cloud Data Flow,例子都是用UI操作的,但我们在Linux系统上经常是无 ...
- 朴素贝叶斯分类器基本代码 && n折交叉优化 2
这个代码基于上一个代码 不同的是:读取了txt文件,改变了min_ft与max_ft的参数 import re import pandas as pd import warnings import n ...
- 社区观点 | 理解比原链MOV链上交换协议
去中心化交换协议的发展 从Bitshare,Stellar到以太坊上的Etherdelta,Bancor,0x协议,去中心化交换协议也经过了好几代发展和很多模式的探索,每一代都通过前面的协议的痛点来进 ...