1.下载dpdk-stable-20.11.tar.gz 解压
2.pip3 install meson , ninja-build
如果 pip3安装不了可以用apt-get install 注意meson版本>0.47
3.在dpdk-stable-20.11目录下执行
//如需挂载igb_uio驱动需先参考5.下载igb_uio文件夹
sudo meson -Denable_kmods=true build
sudo ninja -C build
sudo ninja install
sudo ldconfig
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/dpdk.conf
sudo ldconfig
这里主要是进行build 和install到系统目录,然后配置lib位置
4.root用户编辑 /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
modprobe igb_uio
sysctl -w vm.nr_hugepages=256
sudo source /etc/profile
这里主要是配置PKG_CONFIG_PATH环境变量,加载igb_uio驱动,设置大页缓存
5.挂载驱动
cd build/kernel/linux/kni
insmod rte_kni.ko
要挂载igb_uio驱动则需要参考 2.8. Practice for igb_uio — DPDK Test Suite 22.03.0 documentation
下载安装包 三者选一即可
git clone http://dpdk.org/git/dpdk-kmods
git clone git://dpdk.org/dpdk-kmods
git clone https://dpdk.org/git/dpdk-kmods
复制dpdk-kmods/linux/igb_uio到dpdk-stable-20.11/kernel/linux下
在igb_uio目录下新建meson.build文件内容为
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
mkfile = custom_target('igb_uio_makefile',
output: 'Makefile',
command: ['touch', '@OUTPUT@'])
custom_target('igb_uio',
input: ['igb_uio.c', 'Kbuild'],
output: 'igb_uio.ko',
command: ['make', '-C', kernel_dir + '/build',
'M=' + meson.current_build_dir(),
'src=' + meson.current_source_dir(),
'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
'/../../../lib/librte_eal/include',
'modules'],
depends: mkfile,
install: true,
install_dir: kernel_dir + '/extra/dpdk',
build_by_default: get_option('enable_kmods'))
修改/kernel/linux下的meson.build
subdirs = ['kni', 'igb_uio']
随后在dpdk-stable-20.11下执行meson -Denable_kmods=true build 即可在build/kernel/linux/中发现igb_uio
在igb_uio目录执行
sudo modprobe igb_uio
sudo modprobe uio
insmod igb_uio.ko
将指定的网卡挂载为igb_uio驱动
sudo ./usertools/dpdk-devbind.py -b igb_uio ${网卡编号}
网卡编号查看:
./usertools/dpdk-devbind.py --status
6.编译示例程序运行
在dpdk-stable-20.11/examples中选择helloworld
执行 make 然后运行查看结果