Skip to content

2023/9/5更新

CentOS7にDPDK22をインストール

A. はじめに

VirtualBoxで作成した、CentOS7.9 VMにDPDK SDKの最新LTS(22.11.2)を入れてみました。そのときのメモです。

注:本記事記載の操作はrootアカウントで行っています。十分ご注意ください。

B. 手順

B.1 まず、python3.8のインストール

DPDK22はpython3.6ではビルドできず、python3.7以降にする必要があります。

# yum install -y centos-release-scl
# yum install -y rh-python38
# scl enable rh-python38 bash
# python3 -V
Python 3.8.13
# pip3 -V
pip 19.3.1 from /opt/rh/rh-python38/root/usr/lib/python3.8/site-packages/pip (python 3.8)

B.2 つづいてMeson/Ninjaのインストール

# pip3 install pyelftools
# pip3 install meson ninja
# meson --version
1.2.1
# ninja --version
1.11.1.git.kitware.jobserver-1

B.3 DPDK22のソースをダウンロードしてビルド/インストール

LTS(long term support)バージョンを入れないと余計な苦労をするハメになるので、ちゃんとここから最新LTSバージョンをダウンロードします。

なお、2023/9/1時点のLTSは22.11.2となっています

# cd /home
# wget https://fast.dpdk.org/rel/dpdk-22.11.2.tar.xz
# tar xJvf dpdk-22.11.2.tar.xz

Meson/Ninjaでビルド/インストールします。

# cd dpdk-stable-22.11.2/
# meson build
# cd build
# ninja
# ninja install

以上でビルドとインストールは完了。恐ろしく簡単でした(時間はかかります)。/usr/local/binや /usr/local/includeにSDKの各種ファイルがちゃんとインストールされています。

# modprobe vfio-pci
# modprobe uio_pci_generic
# /usr/local/bin/dpdk-devbind.py -s

Network devices using kernel driver
===================================
0000:00:03.0 '82540EM Gigabit Ethernet Controller 100e' if=enp0s3 drv=e1000 unused=vfio-pci,uio_pci_generic *Active*
(後略)

DPDK対応ドライバuio_pci_genericやvfio-pciも使えそうです。

C. 今後

dpdk-devbindとかDPDK22の各種ツールを試してみたいと思います。