19得票2回答
如何使用remap_pfn_range将内核内存重新映射到用户空间?(涉及IT技术)

remap_pfn_range函数(在驱动程序中使用的mmap调用中)可用于将内核内存映射到用户空间。它是如何完成的?有人可以解释具体步骤吗?内核模式是特权模式(PM),而用户空间是非特权模式(NPM)。在 PM 中,CPU 可以访问所有内存,而在 NPM 中,一些内存受限制-不能被 CPU ...

19得票5回答
模块编译:未找到 asm/linkage.h 文件

我正在尝试编译一个“hello world”内核模块的示例,遇到了一些问题。这些问题出现在Ubuntu 11.04、内核3.2.6、gcc 4.5.2和Fedora 16、内核3.2.7、gcc 4.6.7上。 代码:#include <linux/module.h> #incl...

19得票3回答
写 Linux 内核模块时获取用户进程的 PID

如何获取触发我的内核模块中file_operation.read例程的用户进程的PID(即正在读取/dev/mydev的进程)?

18得票1回答
在内核模块中如何从文件描述符获取文件名?

我需要从给定的文件描述符中获取文件名,在我编写的小型Linux内核模块中。我尝试了在Getting Filename from file descriptor in C中提供的解决方案,但由于某种原因,它打印出垃圾值(在使用readlink和/proc/self/fd/NNN时)。我该怎么做?

18得票3回答
如何为Android创建一个可加载的内核模块?

我知道有很多关于这个活动的步骤指引和教程在网上流传,但是即使我看了很多,仍然无法使它运作起来。如果有人能够有耐心浏览我所采取的步骤(如下所示),并指出我可能偏离轨迹的地方,我将不胜感激。我已经花了一天半的时间盯着make文件,并阅读了指引和教程,所以任何建议都会有用。 环境: 我正在使用一个...

18得票5回答
内核模块mokutil: 注册新密钥失败

我正在尝试签署一些内核模块(用于虚拟机VirtualBox),如此处所述。 根据那里的说明,我创建了新的密钥:openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -d...

18得票1回答
优先顺序 - printk() vs dev_dbg() vs netdev_dbg() (注:此为提问标题,无需回答)

最近我在Linux源代码树中运行了scripts/checkpatch.pl脚本,并收到了以下警告:WARNING: Prefer netdev_dbg(netdev, ... then dev_dbg(dev, ... then pr_debug(... to printk(KERN_DE...

17得票1回答
“linux无法处理ffffffff00000010处的内核分页请求”是什么错误?

我写了一些Linux内核代码,导致运行时出错,并报告linux unable to handle kernel paging request at ffffffff00000010。 这只是一个在Linux内核编程中挂钩open系统调用的代码。 以下是该代码:#include <li...

17得票2回答
在内核模式和用户模式之间使用ioctl通信

我想使用ioctl与我的内核模块通信。我编写了两个C程序,一个用于内核模块,另一个用于用户模式。在编译内核模块时,我遇到了以下错误: 错误:在初始化器中指定了未知字段“ioctl” 出错的代码行如下:struct file_operations Fops = { .read = devi...

17得票4回答
如何在内核编程中执行shell命令?

我想在我的C代码中使用stdlib.h库的system()函数。实际上,我正在进行内核编程。 每当我想要在其中使用system()时,它会提示stdlib.h文件不存在的错误。