dpdk21.11 添加igb_uio模块

前言

官网说 基于安全性考虑,然后igb_uio 模块就从 dpdk20.11版本开始 就都去除了,也删除了 dpdk_setup.sh 的脚本
相比于 vfio模块,igb_uio模块的安全性更低
官网中也给出了编译igb_uio模块的方式

igb_uio模块下载链接

官网给出的igb_uio模块下载链接地址
在这里插入图片描述

编译

下载完链接里的igb_uio模块后,将压缩包拷贝到Ubuntu系统中
编译方式有两种

  1. 在外部直接使用make编译
  2. 将igb_uio模块重新加入到dpdk-21.11源码目录中,使用meson+ninja编译

编译方式1:make

解压完成后进入源码目录
dpdk-kmodes-main 源码目录

直接执行make
执行make

make执行完之后,目录中出现 igb_uio.ko 模块
可以直接通过insmod ./igb_uio.ko 挂载
!! 挂载之前需要提前挂载 uio 模块 ‘modprobe uio’

编译方式2:meson+ninja

1. 解压,复制 dpdk-kmods/linux/igb_uio/ 到 dpdk-stable-21.11.4/kernel/linux/ 目录下

qxy@qz652219228:~/dpdk$ cp ./dpdk-kmods-main/linux/igb_uio ./dpdk-stable-21.11.4/kernel/linux/ -r
qxy@qz652219228:~/dpdk$ ls ./dpdk-stable-21.11.4/kernel/linux/
igb_uio  kni  meson.build

2. vi dpdk-stable-21.11.4/kernel/linux/meson.build +4

	subdirs = ['kni', 'igb_uio']		#修改: 添加 igb_uio

创建文件 meson.build 在 dpdk-stable-21.11.4/kernel/linux/igb_uio/ 目录下

— 输入如下内容 –
# 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'))
— 内容结束 —

修改主目录(dpdk-stable-21.11.4)下的 meson_options.txt 文件

	21行 enable_kmods 	# value值 变成 true 

修改主目录(dpdk-stable-21.11.4)下 meson.build +15 添加 kernel_dir 的定义

kernel_version = run_command('uname', '-r').stdout().strip()
kernel_dir = '/lib/modules/' + kernel_version                                                                                                    
# 主要作用是 在下面的 使用的 kernel_dir  添加个定义

执行编译

dpdk-21.11 meson+ninja 编译

挂载

qxy@qz652219228:~/dpdk$ sudo modprobe uio
qxy@qz652219228:~/dpdk$ sudo insmod ./dpdk-kmods-main/linux/igb_uio/igb_uio.ko
#       or
qxy@qz652219228:~/dpdk$ sudo insmod ./dpdk-stable-21.11.4/build/kernel/linux/igb_uio/igb_uio.ko

– end –

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DPDK (Data Plane Development Kit) 是一个开源的数据平面开发工具包。它可以提供高性能的网络 I/O 接口,允许开发人员在用户空间中运行网络应用程序。 igb_uioDPDK 提供的一种用于 Intel 82580/I350 以太网控制器的用户空间驱动程序。要使用 igb_uio 驱动,需要进行以下步骤: 1. 下载 DPDK 并解压缩。 2. 运行 "make config T=x86_64-native-linuxapp-gcc" 来配置 DPDK。 3. 在 .config 文件中找到并启用 "CONFIG_RTE_LIBRTE_IGB_UIO=y" 选项。 4. 运行 "make" 来编译 DPDK。 5. 运行 "make install" 来安装 DPDK。 6. 加载 igb_uio 驱动,运行 "modprobe uio" 和 "insmod build/kmod/igb_uio.ko"。 7. 将网卡绑定到 igb_uio 驱动上,运行 "./usertools/dpdk-devbind.py --bind=igb_uio 网卡名" 在完成这些步骤后,就可以在 DPDK 中使用 igb_uio 驱动了。 注意: - 上面的步骤基于linux系统,在其他系统上安装配置步骤可能有所不同 - 具体操作请参考DPDK官网,这里给出大致流程,需要结合具体DPDK版本参考 ### 回答2: 在DPDK中使用igb_uio驱动需要进行以下步骤: 1. 下载DPDK源代码:首先需要到DPDK官网(https://www.dpdk.org/)下载最新的DPDK源代码。 2. 解压源代码:将下载好的源代码文件解压到一个合适的目录下。 3. 配置编译环境:进入解压后的DPDK源代码目录,在终端中执行命令“make config T=x86_64-native-linuxapp-gcc”配置编译环境。其中,T参数根据自己的处理器架构进行选择,x86_64代表64位。 4. 编译DPDK:继续在终端中执行命令“make”编译DPDK。这一步需要耐心等待编译完成。 5. 设置环境变量:在终端中执行命令“export RTE_SDK=/path/to/dpdk”和“export RTE_TARGET=x86_64-native-linuxapp-gcc”分别设置DPDK的根目录和目标平台。 6. 下载igb_uio驱动:在终端中执行命令“make install T=x86_64-native-linuxapp-gcc”下载igb_uio驱动。这一步会自动从DPDK的软件仓库中下载igb_uio驱动,并将其安装到系统中。 7. 配置驱动:在终端中执行命令“modprobe uio”加载uio驱动,然后执行命令“insmod /path/to/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko”加载igb_uio驱动。 8. 绑定网卡:执行命令“dpdk-devbind --bind=igb_uio ethX”将指定的网卡绑定到igb_uio驱动。 至此,igb_uio驱动就成功下载、编译、配置完毕。现在可以在DPDK中使用igb_uio驱动来进行高性能网络应用开发了。 ### 回答3: DPDK(Data Plane Development Kit)是一种用于快速数据包处理的开源工具集。在DPDK中,igb_uio是一种用户态的UIO(Userspace Input/Output)驱动,用于将网卡设备映射到用户态进程,实现零拷贝和更高的性能。 要下载、编译和配置igb_uio驱动,可以按照以下步骤进行: 1. 首先,确保系统安装了必要的构建工具和依赖项。例如,gcc、make、kernel-headers等。如果缺少相关软件包,可以使用包管理器进行安装。 2. 接下来,下载DPDK源代码。可以从DPDK官方网站(https://www.dpdk.org/)或者DPDK的GitHub仓库中获取最新的源代码。 3. 解压源代码包,并进入解压后的目录。 4. 在终端中,执行以下命令编译DPDKigb_uio驱动: ``` make config T=x86_64-native-linuxapp-gcc make ``` 这将根据系统架构编译DPDKigb_uio驱动的二进制文件。 5. 编译完成后,可以使用以下命令将igb_uio驱动安装到系统中: ``` sudo make install T=x86_64-native-linuxapp-gcc ``` 此命令将igb_uio.ko模块复制到适当的系统目录中。 6. 配置igb_uio驱动,使其可以加载并与网卡设备关联。需要编辑DPDK的配置文件(config文件),将CONFIG_RTE_EAL_IGB_UIO=y设置为解除注释,并保存更改。 7. 加载igb_uio驱动模块,可以使用以下命令: ``` sudo modprobe igb_uio ``` 如果成功加载,可以通过执行以下命令检查igb_uio模块是否成功绑定到网卡设备: ``` sudo ./dpdk-devbind.py --status ``` 此命令将显示网卡设备及其绑定状态。 通过按照以上步骤进行,可以成功下载、编译和配置DPDK下的igb_uio驱动。完成后,可以在DPDK应用程序中使用igb_uio驱动来进行高性能的数据包处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值