centos 7 搭建dpdk開發環境
環境: Centos 7 ,dpdk 16.04
虛擬機器軟體:VMWare WorkStation 10.0.1 build-1379776
CPU: 4個CPU, 每個CPU1個核心
記憶體:2GB
網卡:intel網卡*2, 用於dpdk實驗;另一塊網卡用於和宿主系統進行通訊(這點需要特別注意)
1.編譯dpdk
cd dpdk16.04
make config T=x86_64-native-linuxapp-gcc
make
這種方法編譯後,會產生一個build目錄,
各個檔案夾:
app:測試程式,如test和testpmd
lib:庫檔案
include:標頭檔
kmod:編譯好的模組,我的編譯後有igb_uio.ko和rte_kni.ko.
2、載入系統的UIO驅動以及新產生的dpdk的igb_uio驅動
modprobe uio
insmod build/kmod/igb_uio.ko
3、分配大頁記憶體
mkdir -p /mnt/hugemount -t hugetblfs nodev /mnt/hugeecho 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
4、解除要使用的網卡的驅動綁定
由於系統啟動時會自動載入網卡使用的驅動,所以要先解除指定網口對驅動的綁定。 綁定網卡的時候
通過./tools/dpdk_nic_bind.py –usage可以查看該指令碼的使用方法。 主要用法如下:
To display current device status: dpdk_nic_bind.py --statusTo bind eth1 from the current driver and move to use igb_uio dpdk_nic_bind.py --bind=igb_uio eth1To unbind 0000:01:00.0 from using any driver dpdk_nic_bind.py -u 0000:01:00.0To bind 0000:02:00.0 and 0000:02:00.1 to the ixgbe kernel driver dpdk_nic_bind.py -b ixgbe 02:00.0 02:00.1
5、綁定網卡到指定的驅動
可以不經過第5步直接用新驅動替換當前驅動:
./tools/dpdk_nic_bind.py -b igb_uio eth1
也可以經過第5步後,直接綁定新驅動,可以直接設定多個網卡綁定:
./tools/dpdk_nic_bind.py -b igb_uio 0000:00:08.0 0000:00:09.0 其中0000:00:08.0 和 0000:00:09.0是mac地址
=====================================================
一個好訊息是dpdk中整合了一個指令碼/tools/setup.sh 其中包含了編譯dpdk原始碼,設定環境變數比如hugepages,載入核心模組等等
運行setup.h之前需要設定下環境變數 export RTE_SDK=