centos安裝dpdk

  • 下載dpdk包並解壓
  • 配置環境變量
  • 編譯dpdk
  • 測試dpdk
  • 參考文章

1. 下載dpdk安裝包
http://core.dpdk.org/download/
下載 dpdk-19.02.tar.xz
解壓到本地目錄/home下: tar -xf dpdk-19.02.tar.xz

2. 環境變量配置:
在dpdk-19.08下,創建一個dpdkenv的文件,在裏面填充如下內容:

export RTE_SDK=’/home/dpdk-19.02’ (pwd爲你dkdk的解壓目錄),
export RTE_TARGET=x86_64-native-linuxapp-gcc (對於64位機用這個命令,對於32位機用i686-native-linuxapp-gcc)

執行一下 source dpdkenv.
查看環境變量是否設置好:env |grep RTE

3. 通過dpdk提供的腳本安裝dpdk
到 /home/dpdk-19.02/usertools目錄下,執行./dpdk-setup.sh,依次選擇執行以下操作:

  1. 配置編譯的環境:
    在這裏插入圖片描述
  2. 加載igb uio模塊:
    在這裏插入圖片描述
  3. 配置大頁:
    dnimg.cn/20200310191124909.png)
  4. 綁定網卡:
    在這裏插入圖片描述

執行腳本過程中,可能出現以下各種問題:

  1. 沒有安裝gcc命令:
    在這裏插入圖片描述
    解決辦法:yum -y install gcc 安裝gcc環境

  2. 沒有安裝依賴庫 numa.h
    在這裏插入圖片描述
    解決辦法:yum install numactl-devel*x86_64,安裝numa.h相關庫即可解決.

  3. uio模塊沒有加載
    在這裏插入圖片描述
    解決辦法:modprobe uio,手動向內核中加載uio模塊。

  4. 內核版本和dpdk的模塊版本不一致導致的問題
    在這裏插入圖片描述解決辦法

    1 #cat /etc/redhat-release
    2 CentOS Linux release 7.6.1810 (Core)
    4 #uname -r 查看一下系統版本
    5 3.10.0-957.el7.x86_64
    6 #rpm -qa kernel 通過rpm命令查看我所安裝的內核版本
    7 kernel-3.10.0-957.el7.x86_64
    8 #ls /usr/src/kernels/ 查看有沒有相應的內核開發包
    9 空 如果該目錄下沒有系統內核源碼,執行以下操作
    10 #yum install kernel-devel 安裝內核頭文件後
    11 #ls /usr/src/kernels/
    12 3.10.0-1062.12.1.el7.x86_64
    13 兩個版本號不一致,進行升級並重啓
    18 #yum -y update kernel kernel-devel
    19 #reboot
    20 再此查看,版本號一致,問題解決
    21 #ls /usr/src/kernels/
    22 3.10.0-1062.12.1.el7.x86_64
    23 #uname -r
    24 10.0-1062.12.1.el7.x86_64

  5. 無法綁定網卡:不down掉的話,綁定會告訴你ok,然而實際上真相是下面那個not modifying,也就是失敗了。
    在這裏插入圖片描述
    解決辦法:ifconfig ens33 down,關掉一個網卡,才能綁定dpdk。
    ens33down掉之後,出現了無法連接xshell的情況。一般reboot之後,ens33會重新啓動,問題消失。

4.測試dpdk
完成以上內容環境就配置完成了,下面我們來測試一下,測試程序在/home/dpdk-19.02/example/helloworld目錄下:

  1. 在dpdk-19.0/目錄下 配置環境變量:source dpdkenv

  2. 在dpdk-19.02/example/helloworld/目錄下 編譯:make,之後生成一個build目錄

  3. 執行可執行文件:./build/helloworld
    我遇到了以下問題:
    在這裏插入圖片描述
    從上面的輸出中發現是 hugepage 相關的問題,執行了下面的操作:

    sudo su -c ‘echo 128 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages’

    再執行./build/helloworld,成功輸出:
    在這裏插入圖片描述
    到此爲止dpdk安裝正確!!!

5.參考:
2篇很好的文章:
https://blog.csdn.net/u010411205/article/details/100895584
https://blog.csdn.net/weixin_28712713/article/details/100804163
uname -r和/usr/src下的版本號不一致問題: https://www.cnblogs.com/pureyes/p/4127499.html
cannot get hugepage information問題: https://blog.csdn.net/Longyu_wlz/article/details/102994876

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章