环境配置
DPDK 系统要求:
Kernel version >= 4.14
GCC(版本 5.0+)或 Clang(版本 3.6+)
Python 3.6 或更高版本
Meson (version 0.53.2+) and ninja
pyelftools (版本 0.22+)
笔者环境:
内核版本: 6.6.32-1-lts
发行版: ArchLinux
gcc 版本 14.1.1 20240522
Python 3.12.3
Meson 1.4.1
pyelftools 0.31-2
环境配置
- 检查当前内核是否支持
1 | # 查看当前内核是否支持 |
如果不支持 HUGETLBFS
或者 PROC_PAGE_MONITOR
,重编内核。
- 安装上述环境
1 | sudo pacman -S gcc clang pkgconf python meson ninja python-pyelftools numactl |
- 配置大页
最简单的配置,只使用 2MB 的大页,没有配置 1GB 的,如果有需要可以官网查教程。
非 root 用户使用 sudo vim
操作下面文件填写自己认为适合的数值,不太离谱都行。
1 | echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages |
HugePages_Total 不为 0 就代表成功。
1 | ➜ ~ cat /proc/meminfo | grep Huge |
编译安装
下载一个自己喜欢的 DPDK 版本,懒得话就:
1 | git clone http://dpdk.org/git/dpdk --depth=1 |
进入项目主目录:
1 | meson setup build |
编译安装完成后,查看路径 /usr/local/lib/pkgconfig
有无和libdpdk.pc
,没有的话全局找一下该文件路径,并且在 ~/.zshrc
添加 export PKG_CONFIG_PATH=/path/to/
,我本机设置 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
,完成后进行下面命令:
1 | sudo ldconfig |
Hello World
简单运行一下:
1 | cd examples/helloworld |
Output:
1 | ➜ build git:(main) sudo ./helloworld |