122得票2回答
在Linux内核模块中读写文件

我知道有关为什么不应该从内核读/写文件,而应该如何使用/proc或netlink来完成此操作的所有讨论。但我还是想要读/写。我也阅读了Driving Me Nuts - Things You Never Should Do in the Kernel。然而,问题在于2.6.30没有导出 sys...

82得票7回答
有没有一种方法可以找出是什么在使用Linux内核模块?

假设我加载了一个内核模块并用 lsmod 命令列出了已加载的模块,我可以得到该模块的“使用计数”(即引用该模块的其他模块数量)。但是,有没有办法找出究竟是哪个模块在使用这个模块呢? 问题在于我正在开发的一个模块坚持认为它的使用计数为1,因此我无法使用 rmmod 命令卸载它,但它的“by”列...

59得票5回答
如何重新编译单个内核模块?

通常内核源代码存储在/usr/src/linux-2.6.x/。 如果我修改了一个模块的源代码,为避免重新编译整个内核,该如何只重新编译这个模块呢?

56得票4回答
如何配置modprobe以找到我的模块?

我正在尝试让内核模块在启动时加载。 如果我运行insmod /path/to/module.ko,它可以正常工作。但是这每次重启都要重复执行。 如果我运行modprobe /path/to/module.ko,它找不到该模块。 我知道modprobe使用一个配置文件,但即使将/path/t...

51得票2回答
`mknod` 的相反操作是什么?

我正在学习如何编写字符设备驱动程序,使用内核模块编程指南并使用mknod在/dev中创建了一个节点来与我的驱动程序通信。 然而,在查看手册页和观察到rmnod不存在的情况下,我找不到任何明显的方法来删除它。 什么是正确的方法来撤销mknod的效果,安全地移除在/dev中创建的节点?

37得票4回答
什么是内核线程?

我刚开始编写设备驱动程序,对于线程还很陌生,查阅了许多文档以获取有关线程的概念。仍然有一些疑问。 什么是内核线程? 它与用户线程有何不同? 这两个线程之间的关系是什么? 如何实现内核线程? 在哪里可以看到实现的输出? 有人能帮帮我吗? 谢谢。

34得票4回答
KVM:模块验证失败:签名和/或所需的密钥丢失 - 污染内核。

我正在使用 Ubuntu 14.04 LTS 和内核版本 3.13.11.4。我尝试加载已打补丁的 KVM 模块 kvm 和 kvm-intel,但遇到以下错误 kvm: 模块验证失败:签名和/或所需密钥丢失 - 污染内核 以及 kvm: 模块污点错误,不创建跟踪事件. 所使用...

33得票2回答
printk和pr_info的区别

“printk”和“pr_info”函数有什么确切的区别?在什么情况下,我该选择其中之一?

33得票6回答
跨编译内核模块

我正在尝试在我的英特尔x86主机上为ARM架构交叉编译一个helloworld内核(2.6.x)模块。 ARM的codesourcery工具链位于:/home/ravi/workspace/hawk/arm-2009q3 内核源代码位于:/home/ravi/workspace/hawk/...

29得票2回答
如何找到正在使用特定内核模块的进程列表?

当我尝试使用rmmod卸载模块时,我收到错误消息“Error: Module in use”,lsmod | grep <module name> 显示计数。 有没有办法告诉我哪些进程正在使用这个特定的内核模块/驱动程序?