> CentOS > CentOS教程 >

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/huge

mount -t hugetblfs nodev /mnt/huge

echo 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 --status

To bind eth1 from the current driver and move to use igb_uio
        dpdk_nic_bind.py --bind=igb_uio eth1

To unbind 0000:01:00.0 from using any driver
        dpdk_nic_bind.py -u 0000:01:00.0

To 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=




(责任编辑:IT)