16得票1回答
在Linux中劫持实时时钟

我想编写一个Linux内核模块(LKM),以劫持实时时钟(中断8)。因此,我希望将中断设置为我的函数,并在某个时刻将其发送回旧函数。 我尝试使用request_irq函数,但没有成功,可能是因为内核函数不愿共享中断(我猜这是一个好的决定)。 我还尝试编辑中断描述表(IDT),根据我找到的一些...

16得票2回答
Linux内核 - 通过模块动态添加系统调用

有没有办法通过一个模块来动态添加系统调用?我已经找到了可以通过修改 sys_call_table[] 数组来覆盖现有系统调用的地方,让我的模块在安装时使用我的替代函数而不是原生函数,但是对于新的系统调用和模块,能实现这个操作吗?

15得票3回答
加载内核模块时出现未知符号

我需要帮助理解为什么在插入模块时会出现错误。我已经尝试过这个,但没有成功。 $ sudo modprobe lpfc_scst FATAL: Error inserting lpfc_scst (/lib/modules/2.6.32-33-generic/extra/lpfc_scst....

15得票1回答
在Linux中静态地插入内核模块

在从源代码构建Linux内核时,可以通过.config决定某个功能是静态构建到内核中还是打包成模块以便动态插入。 但如果我有任何第三方模块的源代码,例如打包的设备驱动程序,是否可能将此代码静态地集成到内核中?而不是从根文件系统加载内核模块?

15得票3回答
如何使用ioctl()来操作我的内核模块?

我正在尝试编写一个内核模块,使用linux/timer.h文件。我已经使它在模块内部工作,现在我正在尝试让其从用户程序中工作。 以下是我的内核模块://Necessary Includes For Device Drivers. #include <linux/init.h> #i...

15得票3回答
如何在Linux内核模块中获取电池电量?

我正在尝试在Linux内核模块中获取电池电量(通过modprobe插入模块)。我希望使用内核API调用来获取电池信息。我已在网络上寻找解决方案,并探索了Linux内核源代码和Michael Meskes的"acpi"程序源代码以获得更多想法。 这些是我认为可以使用的一些技术: 读取和解析...

15得票2回答
在Linux内核中获取网络设备列表

我一直在查看net/core/dev.c和其他文件,尝试找出如何获取当前配置的网络设备列表,但发现有些困难。 最终目标是能够使用dev.c中的dev_get_stats获取网络设备的统计信息,但我需要知道当前的接口,以便获取net_device结构体进行传递。由于我正在编写一个模块,它会添加...

15得票1回答
在内核模块中获取当前时间(秒)

在内核模块中,获取当前时间距离纪元的秒数的标准方法是什么? 我看到了一些涉及获取xtime的技术,它们非常冗长,并且涉及while循环和锁。肯定有更好的方法。 [这不是一个重复的问题。我已经查看了此前在SO上的相关问题。许多答案要么没有指定使用的函数,要么错误地引用了在内核中不允许使用的t...

15得票1回答
将可加载的内核模块标记为in-tree。

这个问题涉及到Linux内核4.10。 加载一个外部的LKM会导致内核打印一个警告: module: loading out-of-tree module taints kernel. 这是由module.c中的以下检查引起的: if (!get_modinfo(info, "intre...

14得票4回答
我能用模块替换Linux内核函数吗?

我正在进行暑期研究,涉及内核工作。我们希望对TCP进行修改,具体来说是RTT计算。我想要做的是将tcp_input.c中的一个函数的分辨率替换为由动态加载的内核模块提供的函数。我认为这将提高我们开发和分发修改的速度。 我感兴趣的函数被声明为静态函数,但我已经重新编译了内核,并通过EXPORT...