搭建環境: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
顯示下圖則表示成功: