11得票2回答
内核模块初始化和退出函数被错误地调用顺序

我正在制作一个非常简单的 hello world 内核模块,但是遇到了一些奇怪的行为。这在升级到内核 3.3.8 之前是可以正常工作的,现在它... 好吧,它在退出时调用了 init 函数,在初始化时调用了 exit 函数。我已经确保我的名称是正确的。// Needed for module ...

11得票1回答
Linux内核模块中的定期任务

我目前正在为友善之臂Linux 2.6.32.2(mini2440)开发GPIO内核模块。我来自电子背景,并且对Linux不熟悉。 内核模块在启动时加载,相关设备文件位于/dev下,名为gpiofreq。 第一次向设备文件写入时,GPIO引脚以50kHz连续切换。第二次写入时它停止切换。第...

11得票5回答
用户程序和Linux内核模块之间有哪些通信选项?

我是一个新手,正在学习Linux内核模块编程。从目前为止我所阅读的资料中,我发现用户程序请求服务或与Linux内核模块通信有以下三种方式: /dev下的设备文件 /proc文件系统中的文件 ioctl()调用 问题:除了上述3种方式,我们还有哪些选项可用于用户程序和Linux内核模块之...

11得票1回答
触发内核中断处理程序:如何实现?

我想了解内核中的异步中断处理,当然是通过传说中的《深入理解Linux内核》。 在此过程中,是谁会触发内核中断处理程序及如何触发? 我希望有人能够帮助我纠正并澄清以下问题: 1)如何触发内核中断处理程序?由谁触发? 2)如何定义新的或更改现有的硬件中断处理程序? 先行致谢!

11得票1回答
为什么在Linux内核中忙循环时进程会被剥夺CPU太久的时间?

一开始看起来,我的问题可能有点琐碎,请耐心阅读完整。 我在Linux内核模块中发现了一个繁忙循环。由于这个原因,其他进程(例如sshd)在长时间内(如20秒)都无法获得CPU时间。这是可以理解的,因为我的机器只有单个CPU,而繁忙循环不给其他进程调度的机会。 只是出于实验目的,我在繁忙循环...

11得票1回答
测试一个内核模块

我对模拟函数和全局变量很感兴趣,以便对内核模块进行单元测试。 最初尝试使用https://github.com/ThrowTheSwitch/CMock但遇到了问题。任何关于如何实现此功能的文章链接也将非常有用(针对内核模块)。更多细节:编译为内核模块会出错,因为stdio不可用,编译为用户...

11得票2回答
在运行时,以编程方式检查 Linux 内核模块是否存在。

我正在编写一个C语言守护进程,需要两个内核模块的存在才能发挥作用。程序不直接使用这些(或任何其他)模块。它只需要这些模块存在即可。 因此,我希望以编程方式检查这些模块是否已经加载,以便在运行时向用户发出警告。 在开始执行解析/proc/modules或lsmod输出之类的操作之前,是否已经存...

10得票13回答
Linux: modpost无法构建任何内容

我在我的机器上无法构建任何内核模块。每当我构建一个模块时,modpost总是说没有模块: MODPOST 0 modules 为了解决问题,我编写了一个测试模块(hello.c): #include <linux/module.h> /* Needed by a...

10得票1回答
无法卸载内核扩展;类具有实例

我正在为音频设备驱动程序编写OSX内核扩展(它是软件,但模拟硬件设备)。 在开发过程中,完全卸载现有的旧版本,然后从头构建和安装新版本会很方便。然而,这有时似乎不可能在不重新启动系统的情况下完成。 程序本身没有运行,并且源文件已从 /System/Library/Extensions/ 目...

10得票3回答
从内核空间配置LED触发器参数

我正在从事一个嵌入式项目。我们的板子使用的是Linux内核v3.16.7。我正在支持一些监控活动的外围LED灯。我已经成功地修改了引导过程,以便在/sys/class/leds/中加载驱动程序并创建sysfs条目,这非常好。我还将oneshot触发器连接到LED上,以便我可以在/sys/cla...