用户程序和 Linux 内核模块之间的通信有哪些选项?
我是 Linux 内核模块编程的新手。从我目前阅读的材料来看,我发现用户程序有 3 种方式请求服务或与 Linux 内核模块通信 /dev 中的设备文件 /proc 文件…
CMOS_WRITE 无法工作的可能原因是什么?
我已经被 RTC 问题困扰了好几天:我无法写入 RTC 寄存器。 以下是代码片段,我从 reg(最后一行)读取的值始终与我刚刚写入 reg 的值不同。任何人都可…
Linux 内核模块中的 Linux 实模式接口
我有一个需要在嵌入式系统上不时调用的 BIOS 函数,并且使用 LRMI 我能够从用户空间程序成功调用它。现在我想从可加载内核模块中执行相同的操作。 有…
如何唯一地识别尝试 open() 内核模块的用户?
我正在开发一个内核模块,并且试图唯一地标识每个尝试 open() 模块的用户(可以是进程或线程)。 识别它们的最佳方法是什么?我可以通过系统调用获取 …
file_operations 问题,我如何知道打开文件进行写入的进程是否决定关闭它?
我目前正在编写一个简单的“多播”模块。 只有一个进程可以打开 proc 文件系统文件进行写入,其余进程可以打开它进行读取。 为此,我使用 inode_opera…
inode_operations ,警告:从不兼容的指针类型进行初始化
我正在尝试编译一个简单的内核程序,该程序从 proc 文件读取和写入。 我试图通过覆盖 inode_operations struct (.permission) static int module_perm…
从内核模块的结构中删除填充
我正在使用标准命令编译一个内核模块,其中包含大小为 34 的结构。 make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules sizeof(some_struct) …
Linux 内核 - 遍历缓冲区头
在Linux内核中,有没有办法从模块内向下遍历到buffer_heads? 我可以看到如何获取 struct bio(task_struct 宏:current->bio)。但是我怎样才能到…
Linux 内核 - 数据块在内核中的哪个位置物理写入特定的磁盘分区?
我正在修改 Linux 内核,并试图找到内核源数据块在物理上写入磁盘分区(例如 ubd0)的位置。这发生在内核源代码中的什么地方?实际的物理写调用?我找…
Linux - 以编程方式写入 proc 文件
我在网上找到了几个示例,我们可以在其中创建 proc 文件,分配每次打开 proc 文件进行读取或写入时调用的读取和写入方法。 但是,我似乎找不到任何有…