搭建环境:VM
VM搭建参考其他博客
命令: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键补全
不正确会红光闪烁,原因是gcc版本和内核版本不一致,在后续安装中,会造成make: *** /lib/modules/5.2.4-1.el7.elrepo.x86_64/build: No such file or directory. Stop. 错误,
解决办法:删除原有的build文件,重新链接上,代码如下:
注释import org.springframework.www.hongtuuzhuc.cn boot.SpringApplication;
import org.springframework.www.javachenglei.com boot.autoconfigure.SpringBootApplication;
import org.springframework.www.lecaixuangj.cn web.bind.annotation.GetMapping;
import org.springframework www.yixinpt2.cn.web.bind.annotation.RestController;
public class www.tyyleapp.com Application www.lafei6d.cn{
public static void main(String[ www.baihuayl7.cn] args) {
SpringApplication.run(www.jintianxuesha.com Application.class);
@GetMapping(value www.qiaoheibpt.com www.baishenjzc.cn=www.tianyueptgw.cn "/undertow/test")
public String www.yifayuled.cn undertow(www.feihongyul.cn) www.yachengyl.cn{
return "hellowww.yixingylzc.cn undertow";
ln -s /usr/src/kernels/3.10.0-1127.18.2.el7.x86_64 /lib/modules/3.10.0-957.el7.x86_64/build
内核按具体情况填写
下面这个是正确的:
cd /root/dpdk-stable-18.05.1/
cd usertools/ (有些dpdk的版本目录是tools)
./dpdk-setup.sh (执行安装)
我这里是15(每个版本的DPDK都不一样,选择x86_64位的gcc安装就行)
gcc编译成功:
这里是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
显示下图则表示成功: