博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在qemu kvm虚机中编译DPVS
阅读量:2399 次
发布时间:2019-05-10

本文共 3180 字,大约阅读时间需要 10 分钟。

编译前准备

创建虚机

创建一个虚机,这边用以前有的base镜像及xml文件,这边使用centos 7镜像,创建一个叉分镜像,具体命令为:

qemu-img create -b /opt/lessons/centos7.base -f qcow2 vm1.base

创建后就根据原先的xml文件修改一下即可,修改后的centos.xml文件为:

1
4096
4096
4
hvm
/machine
destroy
restart
destroy
/usr/bin/qemu-system-x86_64

在宿主机上执行virsh create centos.xml开启虚机,开启虚机后修改一下网卡为固定IP地址,结果修改后不能联网,查找资料后发现其使用的是nat网络,需要修改成bridge模式,主要是修改centos.xml文件,具体修改如下:

修改为

资料参考:、

下载源码

前面虚机已经创建,也已安装相关软件(如git等),从github上下载DVPS和从DPDK官网上下载DPDK,具体为:

git clone https://github.com/iqiyi/dpvs.gitcd dpvswget http://static.dpdk.org/rel/dpdk-17.11.2.tar.xztar vxf dpdk-17.11.2.tar.xzcd 
cp patch/dpdk-stable-17.11.2/*.patch dpdk-stable-17.11.2/cd dpdk-stable-17.11.2/patch -p 1 < 0001-PATCH-kni-use-netlink-event-for-multicast-driver-par.patchpatch -p1 < 0002-net-support-variable-IP-header-len-for-checksum-API.patch

编译

安装依赖包

编译DPVS需要依赖一些包,如内核源码等,其中内核源码不能直接yum install,版本对不上(uname -a可以查看内核版本),具体命令如下所示:

yum install numactl-devel*x86_64yum install popt-develyum install openssl-devel.x86_64kernel内核源码从https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/编译使用的centos具体内核版本为:https://buildlogs.cdn.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-devel-3.10.0-327.el7.x86_64.rpm下载完成后:rpm -ivh kernel-devel-3.10.0-327.el7.x86_64.rpm

编译DPDK

这些都安装完成后,先编译DPDK,到DPDK目录下执行如下命令:

$ cd dpdk-stable-17.11.2/$ make config T=x86_64-native-linuxapp-gccConfiguration done$ make # or make -j40 to save time, where 40 is the cpu core number.$ export RTE_SDK=$PWD

编译DPVS

DPDK编译完成后开始编译DPVS,回到DPVS目录执行make,出现如下错误:

error: incompatible type for argument 2 of ‘_mm_storeu_si128’

查找资料说是虚机CPU不支持SSE/AVX/AVX2/AVX512等指令,需要修改虚机CPU类型,修改成与主要接近宿主机的CPU类型或者直接使用宿主机CPU类型,这边使用接近宿主机CPU类型,具体修改如下所示:

修改为

修改后重启修改再编译就无问题了。

具体参考资料:、(错误解决)

转载地址:http://qhdob.baihongyu.com/

你可能感兴趣的文章
Virtual的一些总结
查看>>
java中File类创建和删除功能
查看>>
linux下常用网络操作(重点)
查看>>
职场中神奇的程序员,却常常被人说“太直”,这是什么样的思维?
查看>>
glibc-printf
查看>>
Struts2--非表单标签
查看>>
Lambda函数式接口
查看>>
Lambda表达式使用场景及实例
查看>>
数据结构--循环双链表实现、详解
查看>>
数据结构--优先队列实现、模拟线程调度
查看>>
Java并发--Java中的13个原子操作类详解
查看>>
数据结构--稀疏矩阵常用的三种压缩存储(顺序、行单链表、十字链表)
查看>>
Java并发--监视器(monitor)、等待/通知机制
查看>>
Zookeeper--数据初始化过程
查看>>
Zookeeper--数据同步
查看>>
Zookeeper--配置详解
查看>>
Swagger2注解详细说明
查看>>
使用Turbine聚合监控
查看>>
构建高可用的Config Server、使用Spring Cloud Bus刷新配置
查看>>
Nginx——重写与重定向
查看>>