dpdk21.11 添加igb_uio模塊

来源:https://www.cnblogs.com/qz652219228/archive/2022/09/24/16712813.html
-Advertisement-
Play Games

dpdk21.11 已經刪除了 igb_uio 模塊, 如果需要添加 需要提前下載 igb_uio 模塊,根據官網提供的下載鏈接,下載地址如下 IGB_UIO模塊 兩種添加方式 添加到文件中,然後再次編譯(編譯出來的結果與之前版本一致(19.11那種,直接在)) 直接編譯,不往文件中放,生成的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 這個就能重新構建出來個新的


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下生成鏡像文件的方法及其與IAR,MDK差異。 痞子衡很久以前寫過一篇文章 《ARM Cortex-M鏡像文件(.bin/.hex/.s19)》,詳細介紹了三種流行的鏡像文件格式,這些鏡像文件不同於可執行文件 ...
  • 痞子衡嵌入式半月刊: 第 63 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • 前幾天裝了幾台linux伺服器,安裝操作系統的時候,選擇了預設磁碟分區,結果導致後面主目錄分區空間不夠用了,需要把其他分區的空間劃分給主分區一點。 下麵以CentOS6.5演示: 一、查看當前系統的磁碟分佈: df -h 發現root分區只有50G,home分區有864G。那麼我需要將850G的容量 ...
  • 進程間通信(Interprocess Communication,IPC)是指兩個或者多個進程之間進行數據交換的過程 ==進程擁有獨立的記憶體空間== 類別 簡單進程間通信 命令行參數(向子進程傳遞和exec系列函數) 這裡可以這麼理解:在創建子進程的時候,命令行參數是共用的 可以通過fork 的返回 ...
  • 本文主要介紹 aardio + AutoHotkey 混合編程。 在 aardio 中可以調用很多編程語言,例如 C語言、C++、C#、Java、Python、R、Javascript、Node.Js、Fortran、VB、Flash ActionScript、PHP、VBScript、PowerS ...
  • cobbler cobbler簡介 Cobbler是一個Linux伺服器安裝的服務,可以通過網路啟動(PXE)的方式來快速安裝、重裝物理伺服器和虛擬機,同時還可以管理DHCP,DNS等。 Cobbler可以使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler-web),還提供了API ...
  • cobbler部署 #先關閉防火牆和selinux [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 //cobbler服務,selinux必須得是disabled狀態,所以要重啟 [ro ...
  • top 主要用於查看 Linux系統中的所有進程 top 詳解 及 使用 上面的top top - 04:27:03 up 6 days, 23:25, # top 系統運行時間 2 users, # 用戶個數 load average: 0.00, 0.00, 0.00 # 平均負載 Tasks: ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...