小白式DPDK搭建方法(附相關錯誤得處理方法)


搭建環境:VM

VM搭建參考其他博客

步驟一 點擊虛擬機設置,添加兩個網卡(我這里都是使用的都是橋接模式)

 

 

 

 

 

 步驟二、從網上下載dpdk的壓縮包:

命令: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鍵補全

步驟四、進入 /usr/src/kernels查看內核

 

 

 步驟五、進入 /lib/modules/3.10.0-957.el7.x86_64 目錄查看軟鏈接 build是否正確

不正確會紅光閃爍,原因是gcc版本和內核版本不一致,在后續安裝中,會造成make: *** /lib/modules/5.2.4-1.el7.elrepo.x86_64/build: No such file or directory.  Stop. 錯誤,

解決辦法:刪除原有的build文件,重新鏈接上,代碼如下:

rm -rf build

ln -s  /usr/src/kernels/3.10.0-1127.18.2.el7.x86_64 /lib/modules/3.10.0-957.el7.x86_64/build

內核按具體情況填寫

下面這個是正確的:

 

 

 步驟六、安裝DPDK

cd /root/dpdk-stable-18.05.1/

cd usertools/         (有些dpdk的版本目錄是tools)

./dpdk-setup.sh       (執行安裝)

 

 

 步驟七、選擇gcc進行安裝

我這里是15(每個版本的DPDK都不一樣,選擇x86_64位的gcc安裝就行)

 

 

gcc編譯成功:

 

 

 

 

步驟八、插入IGB UIO

 

 

 這里是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

顯示下圖則表示成功:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM