如何在/proc/driver下创建proc条目?

2023-11-25

我想在 a 下创建一个文件/proc/driver目录。我想使用像这样的宏proc_root_driver(或提供的其他内容)而不是显式使用“driver/MODULE_NAME”。我用create_proc_entry :

struct proc_dir_entry *simpleproc_fops_entry;
simpleproc_fops_entry = create_proc_entry(MODULE_NAME, 0400, NULL /* proc_root_dir */);

谷歌搜索后,我找到了使用建议proc_root_driver,但是当我使用它时,我收到错误

该函数中未声明 proc_root_driver

并且,proc_root_driver在 linux/proc_fs.h 中不可用。

我试图声明这样的结构:

struct proc_dir_entry proc_root;
struct proc_dir_entry *proc_root_driver = &proc_root;

编译错误消失了,但文件没有出现在/proc/driver or /proc。我怎样才能创建一个条目/proc?


查看 proc_fs.h,proc_root_driver 定义为:

extern struct proc_dir_entry *proc_root_driver;

只要启用 CONFIG_PROC_FS 即可。如果您在配置内核时选择了 CONFIG_PROC_FS,您应该能够按照您自己的建议使用它,即:

#include <linux/proc_fs.h>
struct proc_dir_entry * procfile
procfile = create_proc_entry("myprocfile", 0400, proc_root_driver);

如果这不起作用,请检查您是否设置了 CONFIG_PROC_FS。为了确保这一点,您可以使用 -E 选项编译源文件,并检查 create_proc_entry 调用是否包含非 NULL 参数作为最后一个参数。如果它是 NULL,或者根本不存在调用,则 CONFIG_PROC_FS 未启用。

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

如何在/proc/driver下创建proc条目? 的相关文章

  • 在 strace 中捕获 vDSO

    我想知道是否有一种方法可以捕获 换句话说观察 vDSO 调用 例如gettimeofday in strace 另外 有没有一种方法可以在不加载的情况下执行二进制文件linux vdso so 1 标志或环境变量 最后 如果我编写一个程序来
  • 如何设置 intel_idle.max_cstate=0 来禁用 c 状态?

    我想在我的计算机上禁用 c 状态 我在 BIOS 上禁用了 c state 但没有获得任何结果 不过 我找到了一个解释 大多数较新的 Linux 发行版 在配备 Intel 处理器的系统上 使用 intel idle 驱动程序 可能编译到内
  • 我想为 Linux 内核做出贡献 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android 版 usbmon

    我想分析我的设备的 USB 通信 SGS4 我到处都看到需要配置 usbmon 并将其编译到内核中 Afaik 这个模块没有内置在android linux系统中 我在编译内核方面没有太多经验 但如果有必要 我会这样做 您能说出这样做的步骤
  • 将内核内置模块替换为可加载模块

    我开发了一个内核模块来管理 nf4 标签作为字符设备 我在内核之外开发了这个模块 并在开发阶段将其编译为可加载内核模块 即 ko 进行了测试 一旦驱动程序功能正常且足够稳定 我就使用补丁将其插入 Linux 内核源代码 v4 9 30 以便
  • tcp_max_syn_backlog 和 somaxconn 有什么区别?

    我一直在阅读一些关于 Linux 上的 TCP 实现的文章 我很困惑 它们之间有什么区别net ipv4 tcp max syn backlog and net core somaxconn和backlog作为参数传递给listen 系统调
  • 哪个进程拥有给定的端口(Linux 内核)?

    我正在为 Linux 编写一个简单的应用程序层防火墙 目前没什么特别的 只是我需要的东西 由于 iptables 的所有者模块不够 我决定使用 libnetfilter queue 来实现 在我的防火墙 C C 应用程序 中的某个时刻 我需
  • 加载内核模块时出现未知符号

    我需要帮助理解为什么在插入模块时出现错误 我努力了this http www linuxforums org forum kernel 56497 unkown symbol module error while insmodding bu
  • 如何杀死内核模块中的等待队列?

    我是内核模块的新手 使用等待队列 我阻塞线程 直到缓冲区有数据 使用hrtimer 我定期唤醒队列 现在 问题是即使在我删除内核模块之后 我也可以看到该进程 thread1 仍在运行 我认为问题在于等待队列永远等待并且进程在这里被阻塞 请帮
  • Linux Slab 分配器和缓存性能

    来自指南理解Linux内核第三版 第 8 2 10 章 板坯着色 从第 2 章我们知道 同一个硬件缓存行映射许多不同的 RAM 块 在这个 在本章中 我们还看到相同大小的对象最终存储在缓存中的相同偏移量处 不同板内具有相同偏移量的对象将以相
  • 如何在Linux内核中启用CONFIG_PREEMPT选项?

    我是 Linux 内核编程的新手 尝试在 x86 64 上使用旧内核 Linux 2 6 32 我想启用其中的 CONFIG PREEMPT 选项 但找不到有关如何执行此操作的信息 我可以使用我的首选选项编译新内核 但不知道在这种情况下我需
  • 在内核模块中执行shell命令

    是否可以在内核模块中执行shell命令 我知道我们可以在用户空间 C 代码中使用system子程序 我正在调试一个存在内存泄漏问题的内核模块 在无限循环中执行 insmod 和 rmmod module ko 后 8G RAM 的系统在几分
  • dmesg 和 /var/log/kern.log 之间的区别

    我正在修改kvm模块 并在内核代码中添加了printk语句 运行虚拟机后 printk为我提供了错误地址和有关客户操作系统的其他信息 我需要根据此信息生成统计信息 当我使用 dmesg 时 我只能看到错误地址 在内核空间中 即它们的地址高于
  • x86 平台中的 KVM 影子页表处理

    据我了解 在没有硬件支持来宾虚拟到主机物理地址转换的处理器上 KVM 使用影子页表 当来宾操作系统修改其页表时 会构建和更新影子页表 硬件中有没有专门的指令 以x86为参考 来修改页表 除非有特殊说明 否则不会对VMM 造成陷阱 Linux
  • 从 Linux 内核模块的文件描述符获取文件名/路径?

    在Linux内核模块中 有没有一种方法可以从文件名 路径中获取文件名 路径 unsigned int fd 我知道这个答案 如何从内核模块内的文件描述符获取文件名 https stackoverflow com questions 8250
  • 是否可以将 CFLAGS 设置为 Linux 内核模块 Makefile?

    例如 常见设备模块的Makefile obj m jc o default MAKE C lib modules shell uname r build M shell pwd modules clean MAKE C lib module
  • 进程名称长度的最大允许限制是多少?

    进程名称允许的最大长度是多少 我正在读取进程名称 proc pid stat文件 我想知道我需要的最大缓冲区 我很确定有一个可配置的限制 但就是找不到它在哪里 根据man 2 prctl http man7 org linux man pa
  • 了解 U-Boot 内存占用

    我不明白加载 U Boot 时 RAM 中发生了什么 我正在开发 Xilinx Zynq ZC702 评估套件 并尝试使用 U Boot 在其上加载 Linux 内核 于是我使用Xilinx工具Vivado和SDK生成了一个BOOT bin
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我

随机推荐

  • 当键盘出现时如何使视图控制器滚动到文本字段

    我想让我的uiviewcontroller xib滚动 我的视图控制器有大约 8 个文本字段 所以我的问题是当我想在第五期写点东西时textfield等等我的键盘覆盖了文本字段 我怎样才能摆脱这个问题 并使我的视图控制器滚动 由于我是iPh
  • 如何使用 Spring 4 和注释编写单元测试来验证异步行为?

    如何使用 Spring 4 和注释编写单元测试来验证异步行为 由于我习惯了 Spring 的 旧的 xml 风格 我花了一些时间才弄清楚这一点 所以我想我回答自己的问题是为了帮助别人 首先是公开异步下载方法的服务 Service publi
  • java中的3D Ray-Quad相交测试

    在 3D 空间中 我试图确定射线 直线是否与正方形相交 如果是 则确定它相交的正方形上的 x 和 y 位置 我有一条由两点表示的射线 R1 Rx1 Ry1 Rz1 and R2 Rx2 Ry2 Rz2 正方形由四个顶点表示 S1 Sx1 S
  • 将参与者添加到 XMPP 聊天室

    我想在我的应用程序中实现群聊 为此我使用 MUC 聊天室来实现相同的功能 在这里 我想向房间添加成员列表 我有 JID 我想将它们内部添加到列表中的所有成员中 我如何在不邀请他们的情况下添加他们 添加成员后 我想实现一项功能 每当聊天室的用
  • 是否可以在 Dart 类中将方法声明为 Final?

    在 Java 中 可以在类中声明方法以防止子类覆盖它 例如 class Foo final void bar some code here Dart中有类似的构造吗 package meta提供了一个 nonVirtual注解禁止覆盖方法和
  • 在 SecureRandom 类中使用“SHA1PRNG”

    我有一个基本问题 为什么在 SecureRandom 类中使用 SHA1PRNG 如果有人解释一下 将会很有帮助 提前致谢 前任 SecureRandom getInstance SHA1PRNG Warning 我认为直接依赖这个算法是不
  • 从平面列表创建 java 层次结构树集

    我有对象 T 的列表 它有一个父属性 其中顶部对象的父属性为 null 我想将所有对象放入 TreeSet 或 TreeMap 中 顶级对象将是所有没有父对象 父对象为空 的根对象 并且它们下面将有子对象 像这样的东西 o Ra Rb Rc
  • Ninject 和 ASP.NET Web API

    在我提出问题之前 您应该知道我从此页面获取了当前的代码 http www strathweb com 2012 05 using ninject with the latest asp net web api source 我正在尝试通过使
  • 在模板函数中包装 std::format 无法使用最新的 MSVC 编译器更新进行编译

    我有点困惑为什么这段代码突然停止编译 https godbolt org z hhM5GG78x 但如果我将编译器改回 v19 31 它将编译 https godbolt org z 11j8WbEzG 这是有问题的代码 include
  • 如何使用 LINQ 从字符串中删除字符

    我有一个像这样的字符串 XQ74MNT8244A 我需要删除所有char从字符串中 所以输出会像 748244 这个怎么做 请帮我做到这一点 new string XQ74MNT8244A Where char IsDigit ToArra
  • Redis 和 Membase 之间的主要区别是什么?

    Redis 和 Membase 之间的主要区别是什么 可扩展性 Membase 提供分布式键 值存储 就像 Memcache 一样 因此无论数据集有多大 写入和读取都将始终在可预测的恒定时间内执行 另一方面 Redis 只提供主从复制 可以
  • 当页面为 HTTPS 时 URLReferrer 为 null

    我们使用 URLReferrer 和在查询字符串中传递的代码来生成在线视频 以便只有我们的付费客户才能链接到我们的视频播放页面 该系统已经运行良好一段时间了 我知道 URL 引荐来源网址可能会被欺骗 但谁会告诉他们的客户做这样的事情来访问视
  • 使用字典替换文本文件中的单词

    我正在尝试打开一个文本文件 然后通读它 用存储在字典中的字符串替换某些字符串 根据以下问题的答案如何在 Python 中编辑文本文件 我可以在进行替换之前取出字典值 但循环字典似乎更有效 该代码不会产生任何错误 但也不会进行任何替换 imp
  • Node.js 中的 New Date() 时间错误

    考虑 root ubuntu firma Exotech heart beat heart beat service date Mon Apr 24 17 07 52 CEST 2017 root ubuntu firma Exotech
  • RabbitMQ 向每个消费者发送相同的消息

    我已经实现了 RabbitMQ 网站上的示例 RabbitMQ 示例 我已将其扩展为带有一个用于发送消息的按钮的应用程序 现在我在两台不同的计算机上启动了两个消费者 当我发送消息时 第一条消息发送到computer1 然后第二条消息发送到c
  • 如何使用 Javascript 动态嵌入 Java 小程序?

    我希望能够使用按下按钮时调用的 Javascript 函数动态地将 Java 小程序插入网页中 在页面加载时加载小程序会减慢速度太多 冻结浏览器等 我使用以下代码 它在 FF 中无缝工作 但在 IE8 Safari 4 和 Chrome 中
  • 简单 CRUD 的 EJB 3 会话 Bean 设计

    我正在编写一个应用程序 其唯一目的是执行 CRUD 操作以维护数据库中的记录 一些表 实体之间存在关系 我见过的创建会话 bean 的大多数示例都涉及与许多我没有的实体交互的复杂业务逻辑 操作 由于我的应用程序非常基础 那么会话 bean
  • Spring Boot Oauth2 扩展 DefaultTokenServices

    我有一个 OAuth2 实现 对于授予类型 密码运行良好 现在我需要添加一个逻辑 如果用户之前登录 则限制相同的用户 密码组合允许再次登录 为此 我研究并认为我要创建一个扩展 DefaultTokenServices 类的新类 MyDefa
  • 覆盖 Angular 默认日期管道

    我需要覆盖默认的 Angular 7 日期管道格式 medium short fullDate等 因为我不想使用两个日期管道 默认一个和自定义一个 所以我做了以下操作 并且想知道这样做是个好主意 extend date pipe ts im
  • 如何在/proc/driver下创建proc条目?

    我想在 a 下创建一个文件 proc driver目录 我想使用像这样的宏proc root driver 或提供的其他内容 而不是显式使用 driver MODULE NAME 我用create proc entry struct pro