Questions tagged «kernel-module»

2
在Linux内核模块中读取/写入文件
我知道所有关于为什么不应该从内核读取/写入文件,而是如何使用/ proc或netlink来执行此操作的讨论。我还是想读/写。我还阅读了《 驾驶我的坚果》-内核中不应该做的事情。 但是,问题在于2.6.30无法导出sys_read()。相反,它被包裹在SYSCALL_DEFINE3。因此,如果我在模块中使用它,则会收到以下警告: WARNING: "sys_read" [xxx.ko] undefined! WARNING: "sys_open" [xxx.ko] undefined! 显然insmod无法加载模块,因为链接未正确进行。 问题: 2.6.22之后如何在内核中读取/写入(其中sys_read()/ sys_open()不导出)? 通常,如何使用SYSCALL_DEFINEn()内核中包装在宏中的系统调用?

7
有没有办法弄清楚正在使用Linux内核模块的原因?
如果加载内核模块并使用列出加载的模块lsmod,则可以获取该模块的“使用计数”(其他模块的数量以及对该模块的引用)。但是,有没有办法弄清楚正在使用什么模块? 问题是我正在开发的模块坚持认为其使用计数为1,因此无法使用rmmod其卸载,但是其“ by”列为空。这意味着每次我想重新编译并重新加载模块时,都必须重新引导计算机(或者,至少,我找不到其他方法来卸载它)。

1
哪种Linux驱动程序子系统/ API用于简单的屏幕/监视器设备?
我正在开发带触摸屏的嵌入式系统。触摸屏既可作为输入也可作为输出,而“虚拟”键盘则覆盖图形输出。 我有一个工作的设备驱动程序,该驱动程序可以从触摸传感器读取输入并将其正确转换为按键,这是在kernel.org上的本指南的帮助下创建的。我想扩展此驱动程序以处理图像输出到屏幕上。 我想同时支持getty和X,并尽可能减少重复。我正在运行带有精挑细选软件包的最小Debian变体,例如最小X。请注意,尽管我可能会将其转储到公共GitHub存储库中,但我并不打算尝试将该驱动程序放入存储库管道中。 目前,输出屏幕图像是通过一个棘手的解决方法完成的:一个引导选项,即使未连接到显示器,也可以强制渲染到CPU的嵌入式图形硬件;还有一个守护程序,该屏幕不断地对刮擦进行缓冲,从而修改了少数预定义像素以创建键盘视觉效果,并将其推出到实际屏幕。 这可以作为概念证明,证明我正确理解了屏幕设备期望的语言,但显然不是最佳选择。 kernel.org 也有“ DRM”设备驱动程序的指南,但是对于我的硬件能够做到的事情,这似乎严重过头了: Linux DRM层包含旨在满足复杂图形设备需求的代码,通常包含非常适合3D图形加速的可编程管线。 我的硬件都没有类似于3D加速的东西,因此我得出结论,这可能不是我想要的。 我应该使用哪个子系统/ API?我认为缺少术语是阻止我搜索的原因,但是有关如何完成此操作的更多信息将不胜感激。 硬件详细信息(可能不相关): CPU和屏幕通过8080式并行协议进行通信,CPU本身不支持该协议,因此我使用GPIO(通过mmap操纵寄存器)对其进行了仿真。 发送完整的屏幕图像大约需要20毫秒,但是从嵌入式图形缓冲区中获取完整的副本大约需要180毫秒,因此跳过这一步是最重要的目标。屏幕硬件包括足够的SGRAM存储器以保持整个帧的数据价值,并支持写入矩形子区域,因此希望使用仅更新屏幕已更改部分的钩子。 该屏幕并不特别关注输入数据的时间。触摸传感器输入由专用IC处理,该IC通过CPU支持的I²C与CPU通信。本驱动程序使用该linux/input-polldev.h接口。CPU是Broadcom BCM2835,屏幕是带有嵌入式Himax HX8357控制器的TFT ,触摸屏传感器解码器是ST STMPE610,HX8357和BCM2835之间有一个电压电平转换器(Nexperia 74LVCH245A)。可根据要求提供更多详细信息。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.