如何制作内核模块二进制 blob

2024-02-21

我想为各种发行版分发专有的 Linux 模块,而不需要为所有发行版预先构建模块。例如我有以下文件:

wrapp.c
mod.c
fops.c

所有wrapp.c都是我正在使用的所有内核函数的包装器:

unsigned int wrap_ioread8(void *addr)
{
    return ioread8(addr);
}

我想做的是给客户mod.o和fops.o+wrapp.c。

所以我在内核 3.2 上构建了 mod/fops.o,然后尝试在内核 2.6.32 上使用它们。该模块构建没有问题,但是当我尝试对模块进行 ioctl() 时,我收到“无效参数”。 ioctl接口在3.2和2.6.32之间没有改变!所以我一直无法理解出了什么问题。如果我从源代码构建模块,它就可以正常工作。

我正在阅读有关二进制 blob、o_shipped 等的内容,但到目前为止我还无法使其工作。我缺少什么?

尝试将 mod/fops.o 重命名为 mod/fops.o_shipped 但只要我理解这一点,它只与“make clean”相关......


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何制作内核模块二进制 blob 的相关文章

随机推荐

  • 解释UnixTime毫秒

    我正在尝试找到更好的方法在 C 中将 DateTime 转换为 unix 时间戳 我发现有一个 DateTimeOffset ToUnixTimeMilliseconds 方法 public long ToUnixTimeMilliseco
  • MvxCachingFragmentCompatActivity消失了吗?

    我正在尝试升级到 MvvmCross 5 2 但在 MvxCachingFragmentCompatActivity 上出现语法错误 这个班级消失了吗 正如 5 2 博客中所解释的 https www mvvmcross com mvvmc
  • 如何更新d3表?

    鼠标移动时更新 d3 js 表时遇到一些问题 这是一个简化的example https jsfiddle net lszhou2115 npzjLng9 6 在jsfiddle中 这是主要代码 function mousemove var
  • 如何修复 ubuntu 中的“没有名为‘kivy._clock’的模块”错误?

    我正在尝试使用 Ubuntu 16 04 for Python 3 6 安装 kivy GUI lib 我尝试执行kivy官方网站中的步骤 https kivy org doc stable installation installatio
  • GAE java中通过证书进行客户端身份验证

    我正在写一份申请GAE java通过其身份验证用户证书 我已经使用创建了一个自签名证书keytool在客户端 我还在 Google 应用程序引擎中为我的应用程序启用 https 请求 申请流程非常简单 用户使用任何浏览器进入应用程序的主页
  • 为什么 c++ std::max_element 这么慢?

    我需要找到向量中的最大元素 所以我使用std max element 但我发现它是一个非常慢的函数 所以我编写了自己的版本并设法获得 x3 更好的性能 下面是代码 include
  • 如果等于运算符没有被空格包围,为什么它不起作用?

    我尝试了以下脚本 bin bash var1 Test 1 var2 Test 2 if var1 var2 then echo Equal else echo Not equal fi 它给了我Equal 虽然应该已经打印出来了Not e
  • 如何在 ASP.NET Core 2.0 和 EF Core 2.0 中将应用程序设置从项目根获取到 IDesignTimeDbContextFactory 实现

    我正在 ASP NET Core 2 0 中构建应用程序 但在 EntityFramework 迁移方面遇到问题 我的 DbContext 位于一个单独的项目中 解决方案名称 项目名称前缀 Data 因此我创建了 IDesignTimeDb
  • D3 动态重绘Y轴

    我想创建一个具有多个 线性 轴的动态图 绘制轴后 我想 当新数据到达时 更改数据域并重新绘制 更新轴 我可以使用 D3 选择现有轴并执行此操作 还是必须在代码中显式保存每个轴 我希望我的问题不会令人困惑 init all Y Axis ea
  • C++ STL 容器和就地构建

    请考虑以下事项 class CMyClass public CMyClass printf Constructor n CMyClass const CMyClass printf Copy constructor n int main s
  • 什么是棱镜?

    我试图更深入地了解lens库 所以我尝试使用它提供的类型 我已经有了一些使用镜头的经验 知道它们的强大和方便 所以我转向了 Prisms 但我有点迷失了 棱镜似乎可以做两件事 确定实体是否属于总和类型的特定分支 如果属于 则捕获元组或单例中
  • Golang 方法函数中的接收器类型无效

    我正在尝试制作一个简单的包来将 SSH 命令发送到服务器 我有以下代码 type Connection ssh Client func Connect addr user password string conn Connection er
  • 服务器如何知道请求来自客户端,而不是窃听的黑客?

    我有一个简单的问题 我找不到简单的答案 可能我遗漏了一些东西 或者我不知道某些网络概念是如何工作的 我想知道我不知道的事情 简单地说 问题是虽然窃听是可能的 但服务器如何知道请求来自客户端 而不是窃听的黑客 设想 无论我采用什么安全策略 我
  • 使用 Intellij 的 Yeoman(想法 12)

    使用 OSX 10 8 4 Idea 12 节点 v0 10 17 yo v1 0 3 当尝试使用 Yeoman 作为外部工具时 我得到 usr local bin yo angular env node No such file or d
  • 如何在ConstraintLayout中使用ViewStub?

    似乎在充气时ViewStub in a ConstraintLayout 生成的视图失去了所有约束 我想我们可以使用以下方法定义膨胀视图的约束ConstraintSet 但这违背了目的ViewStub 有没有好的方法可以做到这一点 有一个简
  • Play 框架不会运行内联 JavaScript

    我正在尝试使用 play 框架 2 6 和 scala 设置一个简单的应用程序 但我似乎无法在 html 模板上运行内联 javascript 我不断收到错误 拒绝执行内联脚本 因为它违反了以下内容安全策略指令 default src se
  • 如何向BroadcastReceiver的子类传递参数?

    我设法得到了我的耳机按钮被识别 https stackoverflow com q 15057291 636571按下时由我的应用程序调用 但其中一个按钮需要调用 MyCustomActivity 中的方法 问题是 onReceive 的第
  • 用python监听音频输出[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 第一次在 python 中使用音频 发现了很多可以收听 流式传输麦克风的示例 但是经过大量谷歌搜索 找不到如何收听计算机输出的音频 这
  • 如何计算表格的列数

    例如 tbl ifo id name age gender 1 John 15 Male 2 Maria 18 Female 3 Steph 19 Female 4 Jay 21 Male 如何使用 mysql 计算该表的列数 SELECT
  • 如何制作内核模块二进制 blob

    我想为各种发行版分发专有的 Linux 模块 而不需要为所有发行版预先构建模块 例如我有以下文件 wrapp c mod c fops c 所有wrapp c都是我正在使用的所有内核函数的包装器 unsigned int wrap iore