ubuntu安装dpdk【笔记】

1、虚拟机用了4个核,2G内存,2个网卡

2、安装了

apt-get install numactl

apt-get install libnuma-dev

3、去http://core.dpdk.org/download/下载了17.11.10

4、解压后,进入usertools,运行dpdk-setup.sh。我选的是8,因为我的是32位系统。否则,会碰到一些错误。

编译成功则如下:

ubuntu安装dpdk【笔记】_第1张图片

5、选择,安装IGB UIO

6、设置hugepages,虚拟机需要设置512

7、绑定网卡

8、运行testpmd

注意:

添加的网卡需要是intel的,否则testpmd不成功。查看网卡 lspci(第3块是intel的)

ubuntu安装dpdk【笔记】_第2张图片

 

如果网卡不是intel的,需要对虚拟机的配置文件进行编辑,添加ethernet2.virtualDev = "e1000",ethernet2是添加的网卡的名字,e1000是intel网卡中的千兆网卡。

 

可能的错误:

(1)DPDK运行出现EAL Error reading from file descriptor 23 Input output error

原因:pdk不支持该网卡导致,需要修改dpdk目录下的lib/librte_eal/linuxapp/igb_uio/igb_uio.c,将

  • 将文件中该行修改
pci_intx_mask_supported(dev)
  • 修改为
pci_intx_mask_supported(dev)||true

再重新编译。

(2)没有数据发送的问题。

两个intel网卡都是nat模式。

我刚开始没有数据发送,但是后来在testpmd下start了一段时间,有数据结果了,很奇怪。

 

运行helloworld

1、进入examples文件夹下的helloworld文件夹,make出可执行文件

2、

echo 512 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

mkdir /mnt/huge

mount -t hugetlbfs nodev /mnt/huge

sudo modprobe uio

sudo insmod kmod/igb_uio.ko

./helloworld -c 3 -n 1

注意kmod在dpdk安装目录下对应的gcc目录下;运行helloworld,如果出现“AL: Cannot obtain physical addresses:”的错误,需要使用sudo命令

(这里我没有绑定网卡也成功运行了helloworld)

 


 

 

 

 

你可能感兴趣的:(网络)