centos 6.x下编译dpdk 16.7 心得

之前对dpdk编译了解得较少,之前直接就把centos yum update了,造成测试经理部署的centos 6.5升级为6.9,造成dpdk编译出错。

先说说centos 6.9下编译的心得:

1. 安装DPDK,解压缩DPDK

2.配置编译 config/common_base CONFIG_RTE_BUILD_SHARED_LIB =y

3.编译
gcc 版本需要用 4.4.7的来编译,208开发机上的/usr/bin/gcc是这个版本,/opt/rh...下和/usr/local/gcc-6.x ..下的gcc版本太高了,是不能编译dpdk16.04这个版本的。如果不是4.4.7这个版本,可以:
export PATH=/usr/bin:$PATH 来指定gcc用/usr/bin/gcc这个版本。

尝试过用高版本的来编译,提示说不存在compiler-gcc5.h,把compiler-gcc5.h拷贝到类似于/usr/src/kernels/2.6.32-696.10.1.el6.x86_64/include/linux
这样的目录下,但是因为部分dpdk代码不规范,高版本的会发现更多的错误。

用4.4.7这个编译,发现KNI模块提示出错,原因在http://dev.dpdk.narkive.com/Tmz3Gv1z/dpdk-dev-can-t-build-dpdk-16-04-on-centos-6-8 给出了答案。根据http://www.jianshu.com/p/bc2bde0e4442,我们可以禁掉KNI模块,否则按照前一个链接,需要编译内核,比较麻烦。修改config/。这个问题,dpdk QQ开发群也有同感:“是的,6.5可以,升级以后各种问题。”

近点KNI,需要修改文件,config/common_linuxapp,搜索关键字“KNI”,置为“n”。

主要问题是CentOS 6.x太老了,dpdk官方懒得全面支持。

运行/tools/dpdk-setup.sh 选择x86_64-native-linuxapp-gcc (avx 指令不支持)
#
# Compile librte_acl
#
CONFIG_RTE_LIBRTE_ACL=n
CONFIG_RTE_LIBRTE_ACL_DEBUG=n
重新编译DPDK 重新编译应用程序

编译完,说编译成功,但是“Installation cannot run with T defined and DESTDIR undefined”,提示你没有指定安装路径,这里我们只需要编译,本来也不需要安装,所以忽略,不影响使用。

按照http://dpdk-docs.readthedocs.io/en/latest/linux_gsg/sys_reqs.html#dpdk 这个网页,说要求Kernel version >= 2.6.34,我们的centos6.x都是2.6.32的内核,不符合要求。这个问题有待以后研究。

调整过参数(disable KNI和ACL)的dpdk 16.07.02在这里: https://192.168.1.91/svn/sourceev/trunk/dpdk-16.07.2-adjustParmeter.tar.gz
ACL是针对特定网卡禁掉的,别的网卡未必需要对acl禁掉。

2. 当然最简单的方式是启动时,回退到原来的内核版本。修改/boot/grub/grub.conf,把default改为6.5的那个内核(2.32-431...)。

如果原来没有原来的内核,可以参考https://iforday.com/86.html,来安装6.5的内核。

后来,发现内核更新后,程序没法跑,不能确定是程序的问题,还是dpdk的问题。

禁止内核更新,需要这么做。

方法如下:

  方法1:

  # vim /etc/yum.conf

  exclude=kernel*

  在 [main]配置段下,追加或修改以上内容。

  可通过下面的命令查看是否生效:

  # yum update | grep -i kernel

  方法2:

  在yum命令行中加上-x参数,来跳过指定的更新。如:

  # yum -x ‘kernel*’ update

  Linux禁止系统内核Kernel升级的方法就介绍到这里了,方法2是通过在yum命令行中加入参数来实现的,相较于方法1简单了很多。

    1. #禁止更新内核
    2. exclude=kernel*
    1. # 禁止更新系统
    2. exclude=centos-release*

 

原文地址:https://www.cnblogs.com/tangxiaosheng/p/7481439.html