最近、Centos7.9 上のソース コードから dpdk-21.11.2 をコンパイルしてインストールする必要があるという要件に遭遇しました。dpdk のインストール ディレクトリは /opt/ です。インストールプロセスは比較的複雑なので、今後の参考のために記録しておきます。
関連する設定 | パラメータ |
---|---|
コンパイラ環境 | 仮想マシン Centos7.9 |
カーネルのバージョン | 3.10.0-957 |
dpdkバージョン | 21.11.2 |
DPDK はインテルによって開発された高性能ネットワーク ドライバー コンポーネントです。データ プレーン アプリケーションにシンプル、便利、完全かつ高速なパケット処理ソリューションを提供することを目的としています。主なテクノロジには、ユーザー モード、割り込みの代わりにポーリング、ゼロ コピー、ネットワーク カードが含まれますRSS、メモリアクセスDirectIOなど その他の情報は百度でご覧いただけます。
1. コンパイル環境を準備する
1. 関連する依存関係パッケージをインストールします。
DPDK は、バージョン 20 以降では、meson と ninja を使用してコンパイルし、インストールする必要があります。
(1) pip3環境のインストール
yum install python3 python3-pip
pip3 install --upgrade pip
(2)中間子をインストールする
pip3 install meson
(3) Ninjaのインストール
pip3 install ninja
注:「警告: スクリプト ninja は PATH 上にない '/usr/local/bin' にインストールされています。」が表示される場合は、環境変数を追加する必要があります。
vim /etc/profile
の最後に、export PATH="/usr/local/bin:$PATH" を追加します。
(4) pylftoolsをインストールする
pip3 install pyelftools
pip3 install ninja
2. dpdk ソース コード インストール パッケージをダウンロードします。
公式 Web サイトのダウンロード リンク: http://core.dpdk.org/download/
バージョン 21.11.2 の対応するソース コード パッケージをダウンロードし、サーバー上の指定された場所にアップロードします。ここでは、編集者がそれを /opt/ にアップロードしました。
2. コンパイル、インストール、テスト
(1) コンパイルとインストール
cd /opt/
tar zxf dpdk-stable-21.11.2.tar.gz
cd dpdk-stable-21.11.2/
export DPDK_DIR=/opt/dpdk-stable-21.11.2
export DPDK_BUILD=$DPDK_DIR/build
#查看配置
meson configure
meson build --prefix=/opt/
ninja -C build
DESTDIR=/opt/ ninja -C build install
ldconfig
export PKG_CONFIG_PATH=/opt/lib64/pkgconfig
(2) インストールが成功したかどうかをテストする
インストールが成功した後、コマンドを入力すると、対応するバージョン番号情報が表示されます。これは、インストールが成功したことを意味します。
pkg-config --modversion libdpdk
(3) テストサンプルを実行する
helloworld サンプルをコンパイルして実行します。
#根据自己的安装路径去找到对应的helloworld测试样例
/opt/dpdk-stable-21.11.2/examples/helloworld
make
./build/helloworld --no-huge
次の図が表示され、成功したことが示されます。
3. よくある問題と解決策
1、报错:buildtools/meson.build:49:8: エラー: 問題が発生しました: Python モジュールが見つかりません: elftools
解決策: pip3 install pyelftools && pip3 install ninja
2、报错: go meson_options.txt:7:0: エラー: 不明なタイプの機能。
解決策: pip3 install --user meson $export PATH=~/.local/bin:$PATH