DPDK helloworld编译过程

ubuntu16.04 DPDK helloworld实战

一. DPDK 的安装

参照连接 https://www.jianshu.com/p/a9a3885efe5a 里面的dpdk安装过程
安装根据上述地址教程安装dpdk 和 libpcap
运行helloworld参照 DPDK应用基础
环境:ubuntu16.04 64位
DPDK: 16.11.1
libpcap 1.8.1

1.1 安装libpcap

  1. 去官网 http://www.tcpdump.org/#latest-releases 下载libpcap 1.8.1 的压缩包;

  2. 保存提取的/home文件夹下;

  3. 安装依赖库m4、bison、flex;

    sudo apt-get install m4 bison flex
    
  4. 进入提取出来的libpcap-1.8.1文件夹;

    cd libpcap-1.8.1
    
  5. 在特权用户下配置安装libpacap;

    sudo su
    ./configure
    make
    make install
    
  6. 安装成功,但是后面安装DPDK的时候却提示找不到libpcap.so.1,因为libpcap.so.1默认安装到了/usr/local/lib下,我们做一个符号链接到/usr/lib/下即可。

    sudo ln -s /usr/local/lib/libpcap.so.1 /usr/lib/libpcap.so.1
    

    libpacap 是DPDK 可选的编译工具之一,libpacap的头文件和和库(libpcap-devel),用于编译和使用基于libpcap的PMD。PMD在默认情况下禁用,可以在编译时的配置文件中通过CONFIG_RTE_LIBRTE_PMD_PCAP=y启用。

1.2 安装DPDK

  1. 去官网 http://dpdk.org/download下载dpdk-stable-16.11.1 的压缩包;
  2. 解压提取到/home
  3. 配置并编译DPDK,架构为64位x86linux系统,gcc编译
    cd dpdk-stable-16.11.1
    make install T=x86_64-native-linuxapp-gcc    #参考文章中没有提到安装编译器,吃了很多苦
    make config T=x86_64-native-linuxapp-gcc
    sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config
    make
    

二. helloworld实例的运行

2.1配置hugepage

在DPDK的实例运行前都必须配置大页缓存

  1. 预留hugepage给DPDK使用(在这使用)

    hugepages=1024
    
  2. 对于其他hugepage页面尺寸设置如下:页面尺寸必须特别制定或者将该尺寸设置为系统默认的巨页大小。例如4个1GB的页面

    default_hugepagesz=1 Ghugepagesz=1G hugepages=4
    
  3. 在/sys/devices/目录下的nr_hugepages中设置hugepage大小

    echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
    

不同系统可能不一样可以用find找一下nr_hugepags具体在哪个文件夹下

2.2 DPDK使用hugepage

  1. 当hugepage 被预留成功,DPDK就可以使用hugepage内存:

    mkdir /mnt/huge
    mount -t hugetlbfs nodev /mnt/huge
    
  2. 如果需要永久使用一个挂载点,可以将这个挂载点的信息写入/etc/fstab文件中:

    nodev /mnt/huge hugetlbfs deault 0 0 
    

2.3 编译 helloworld 应用程序

DPDK 编译完成后,它会包含应用程序所需的所有依赖库与头文件。当应用程序在Linux上DPDK环境编译时,必须输出下列变量。

  1. RTE_SDK :指向DPDK的安装目录

  2. RTE_TARGET:指向DPDK目标环境的目录

    export RTE_SDK=/home/user/dpdk-stable-16.11.1
    cp -r $RTE_SDK/examples/helloworld  my_rte_app
    cd my_rte_app/
    export RTE_TARGET=x86_64-native-linuxapp-gcc
    sudo make 
    

    编译成功

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值