從頭開始在vmware虛擬機安裝dpdk


1. 打開vmware,選擇centos7.6鏡像,開始安裝操作系統

2. 安裝完畢后,關機,點擊“編輯虛擬機設置”按鈕,點擊“處理器”,在右側勾選第三個“虛擬化IOMMU”。由於我的宿主機是win11,已經支持了Intel VT-x,所以第一個選項就不必勾選了,win7和win10可能需要勾選。

另外,我多添加了幾個網絡適配器,便於測試。

 

注意,如果勾選了第一個選項:

 

 啟動虛擬機時報錯:.

 

 

 則需要取消勾選第一個。

 

3. 編輯本虛擬機配置文件CentOS 7 64 位.vmx(使用記事本打開),(我新建的這個虛擬機配置文件所在目錄是:D:\vmware_machine\machines\CentOS-dpdk)將網卡驅動由e1000改為e1000e,保存后啟動虛擬機。

 4. 修改操作系統的/etc/default/grub

 在文件最后一行添加:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=pt intel_iommu=on"

保存,執行

grub2-mkconfig -o /boot/grub2/grub.cfg

配置大頁內存

 
cat  /etc/sysctl.conf

# For more information, see sysctl.conf(5) and sysctl.d(5).
vm.nr_hugepages=256

sysctl -p

重啟操作系統:

reboot

 

重啟后,檢查配置是否生效:

運行以下命令檢查 IOMMU 支持是否打開:

 dmesg | grep -e IOMMU

檢查 GRUB 中的 IOMMU 相關配置是否生效:

cat /proc/cmdline

 

5. 啟動后,通過ifconfig命令查看網卡名稱,並且查看/etc/sysconfig/network-scripts/ifcfg-*相應網卡文件,確保文件名、文件內容中的網卡名稱與ifconfig命令查看的網卡名稱一致,不一致的話需要手動修改並重啟網卡:

 

 

 6. 安裝python3.9,具體安裝方式不寫了,可自行安裝

 wget https://repo.huaweicloud.com/python/3.9.10/Python-3.9.10.tgz
 tar -zxf Python-3.9.10.tgz 
 cd Python-3.9.10
 ./configure --prefix=/usr/local/python3 --with-ssl
  make && make install
 ln -s /usr/local/python3/bin/python3 /usr/bin/
 ln -s /usr/local/python3/bin/pip3 /usr/bin/

 

7. python3.9安裝完畢后,會有pip3命令,通過pip安裝meson、ninja(dpdk20.11以后版本需通過meson+ninja 的編譯方式進行編譯安裝

pip3 install meson

pip3 install ninja

ln -s /usr/local/python3/bin/meson /usr/bin/

ln -s /usr/local/python3/bin/ninja /usr/bin/

 

8. 安裝dpdk,我下載的是20.11.4版本

cd /home/
wget https://fast.dpdk.org/rel/dpdk-20.11.4.tar.xz
xz -d dpdk-20.11.4.tar.xz
tar -xf dpdk-20.11.4.tar
cd dpdk-stable-20.11.4/
meson ../dpdk_build
cd ../dpdk_build/
meson configure -Dbuildtype=debug -Dexamples=l3fwd-graph
ninja
ninja install
ldconfig
echo "/usr/local/lib64/" >> /etc/ld.so.conf.d/dpdk.conf  # 將dpdk的lib庫添加到系統路徑
ldconfig
echo "export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig" >>  /etc/profile   # 設置pkg-config路徑
echo "modprobe vfio-pci" >>  /etc/profile                                   # 加載vfio-pci模塊
echo "sysctl -w vm.nr_hugepages=256" >>  /etc/profile                       # 設置大頁內存為256G
source /etc/profile

9. 驗證安裝是否成功,輸出圖片內容即為成功

    ldconfig -p|grep librte|wc -l

    ldconfig -p | grep librte_graph

     pkg-config --variable pc_path pkg-config

    pkg-config --modversion libdpdk

 

 

 10. 使用dpdk腳本查看網卡信息

 python3 /home/dpdk-stable-20.11.4/usertools/dpdk-devbind.py -s

輸出以下內容,這是還未綁定網卡的狀態,將每個網卡的bus信息記下來(每行0000開頭的字符串):

 

 11. dpdk綁定網卡

    python3 /home/dpdk-stable-20.11.4/usertools/dpdk-devbind.py  -b vfio-pci 0b:00.0   #表示綁定ens192這塊網卡

   注意,如果此時輸出:

 

 則需要先將網卡ens192關閉:

 

 再次執行綁定腳本:

 

 沒有任何輸出,則為綁定成功。

12. 再次查看網卡綁定狀態信息,可以看到已經綁定成功

 

 13. 運行dpdk示例程序,驗證dpdk是否可用

cp -r /home/dpdk-stable-20.11.4/examples/helloworld/ /home/

 cd /home/helloworld/

make

 

 執行helloworl二進制文件,輸出如下即為成功:

 

 

至此,dpdk安裝完畢,可以使用了。

 


免責聲明!

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



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