Skip to content

きっかけ

ちょっとDPDK関係の仕事から離れている間に、DPDK SDKがバージョンが18から20とか21に上がっていた。現時点で最新のLTSバージョンをインストールしてみたら、バージョン18とは様子が随分変わっていたので、インストール手順のメモ。

注:私はDPDKで遊ぶとき、クラッシュ前提のrootアカウントでやってます。以下の手順もそうなってますので、十分ご注意ください。

まずMeson/Ninjaのインストールから

18ではmakeでビルドしていたが、20/21ではmakeでもcmakeでもなく、Meson/Ninjaに変わっていた。

# yum install python3-pip
# pip3 install meson ninja --user

でmesonとninjaが/root/.local/bin/にインストールされるので.bash_profileに以下の行を入れてPATHを張る。

export PATH=$PATH:/root/.local/bin

これでmesonとninjaが実行できる。

# meson --version
0.57.1

# ninja --version
1.10.0.git.kitware.jobserver-1

DPDK20のソースをダウンロードしてビルド/インストール

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

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

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

`

cd /home/dpdk-stable-20.11.1

meson build

cd build

ninja

ninja install

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

`

alias db='/usr/local/bin/dpdk-devbind.py'

modprobe vfio-pci

modprobe uio_pci_generic

db -s

Network devices using kernel driver

0000:01:00.0 'I211 Gigabit Network Connection 1539' if=enp1s0 drv=igb unused=vfio-pci,uio_pci_generic 0000:02:00.0 'I211 Gigabit Network Connection 1539' if=enp2s0 drv=igb unused=vfio-pci,uio_pci_generic 0000:03:00.0 'I211 Gigabit Network Connection 1539' if=enp3s0 drv=igb unused=vfio-pci,uio_pci_generic 0000:04:00.0 'I211 Gigabit Network Connection 1539' if=enp4s0 drv=igb unused=vfio-pci,uio_pci_generic (後略) ` 注:dpdk-devbindは、頻繁に使用するので、dbとエリアス登録している。

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

次回予告

dpdk-devbindとかDPDK20/21の各種ツールを試してみたい。18とあまり変わらないと思うけど。