首页 > 其他分享 >dpdk21.11 添加igb_uio模块

dpdk21.11 添加igb_uio模块

时间:2022-09-24 11:36:27浏览次数:93  
标签:kernel uio dpdk21.11 添加 build dpdk igb

目录


dpdk21.11 已经删除了 igb_uio 模块,
如果需要添加 需要提前下载 igb_uio 模块,根据官网提供的下载链接,下载地址如下

IGB_UIO模块 两种添加方式

  1. 添加到文件中,然后再次编译(编译出来的结果与之前版本一致(19.11那种,直接在))

  2. 直接编译,不往文件中放,生成的IGB_UIO模块 效果一样

零、 下载IGB_UIO模块

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 这个就能重新构建出来个新的

标签:kernel,uio,dpdk21.11,添加,build,dpdk,igb
From: https://www.cnblogs.com/qz652219228/p/16712813.html

相关文章

  • FF900R12ME7B11 /FF900R12ME7WB11 900A 1200V 双IGBT模块
    英飞凌1200V双IGBT模块采用第7代发射器控制二极管、NTC和PressFIT触点技术。该IGBT模块在相同框架尺寸和避免并联的情况下具有更高的逆变器输出电流。英飞凌1200V双IGBT模......