環境: Centos 7 ,dpdk 16.04
虛擬機軟件:VMWare WorkStation 10.0.1 build-1379776
CPU: 4個CPU, 每個CPU1個核心
內存:2GB
網卡:intel網卡*2, 用於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.
modprobe uio
insmod build/kmod/igb_uio.ko
mkdir -p /mnt/hugemount -t hugetblfs nodev /mnt/hugeecho 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
由於系統啟動時會自動加載網卡使用的驅動,所以要先解除指定網口對驅動的綁定。 綁定網卡的時候
通過./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步直接用新驅動替換當前驅動:
./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=
http://xxxxxx/Linuxjc/1156034.html TechArticle