dpdk21.11 已經刪除了 igb_uio 模塊, 如果需要添加 需要提前下載 igb_uio 模塊,根據官網提供的下載鏈接,下載地址如下 IGB_UIO模塊 兩種添加方式 添加到文件中,然後再次編譯(編譯出來的結果與之前版本一致(19.11那種,直接在)) 直接編譯,不往文件中放,生成的IGB ...
目錄
dpdk21.11 已經刪除了 igb_uio 模塊,
如果需要添加 需要提前下載 igb_uio 模塊,根據官網提供的下載鏈接,下載地址如下
IGB_UIO模塊 兩種添加方式
添加到文件中,然後再次編譯(編譯出來的結果與之前版本一致(19.11那種,直接在))
直接編譯,不往文件中放,生成的IGB_UIO模塊 效果一樣
零、 下載IGB_UIO模塊
一、 直接添加到文件中
解壓上面下載的 dpdk-kmods-main.tar.gz
添加修改 對應的模塊,設置對應參數
1.1 複製 dpdk-kmods/linux/igb_uio/ 到 dpdk-stable-21.11.1/kernel/linux/ 目錄下
cp dpdk-kmods-main/linux/igb_uio/ ../dpdk-stable-21.11.1/kernel/linux/ -r
1.2 修改 meson.build 代碼
vi dpdk-stable-21.11.1/kernel/linux/meson.build +4
---
subdirs = ['kni', 'igb_uio'] #修改: 添加 igb_uio
1.3 創建 igb_uio 模塊的編譯代碼
創建文件 meson.build 在 dpdk*/kernel/linux/igb_uio/ 目錄下
添加如下代碼到 新創建的 meson.build 文件中
# ----start----
# 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'))
# ----end----
1.4 添加IGB_UIO的編譯使能
修改 dpdk-stable-21.11.1/meson_options.txt 文件
---
21行 enable_kmods value值 變成 true
1.5 添加 kernel_dir 的定義
在 dpdk-stable-21.11.1/meson.build +15 添加 kernel_dir 的定義
---
kernel_version = run_command('uname', '-r').stdout().strip()
kernel_dir = '/lib/modules/' + kernel_version
1.6 執行編譯
export RTE_SDK=/home/qxy/suricata-dpdk/dpdk-stable-21.11.1/ # 根據實際目錄自行修改
export RTE_TARGET=x86_64-native-linuxapp-gcc # 這個也可以隨便改
meson build
meson configure build -Dprefix=/home/qxy/suricata-dpdk/dpdk-stable-21.11.1/x86_64-native-linuxapp-gcc #跟上面RTE變數同步
ninja install -C ./build
--- 編譯添加完成 --- 收工 --- 下班
二、 外部直接編譯
2.1 下載 IGB_UIO 模塊
下載地址同上
2.2 進入目錄,直接make
igb_uio 目錄下的 MakeFile 可以直接用,啥都不用乾
cd dpdk-kmods-main/linux/igb_uio/
make
收工--下班
後記
其實還是 第二種 更方便
如果修改某些代碼再次編譯的話,直接執行ninja install -C ./build
這個就能重新構建出來個新的