Tag: 内核模块

如何configurationmodprobe来查找我的模块?

我试图让一个内核模块在启动时加载。 如果我运行insmod /path/to/module.ko ,它工作正常。 但每次重新启动都必须重复。 如果我运行modprobe /path/to/module.ko ,它找不到该模块。 我知道modprobe使用了一个configuration文件,但是在/ etc / modules中join/path/to/module.ko之后,我无法加载模块。 什么是正确的configuration?

有没有办法找出什么是使用Linux内核模块?

如果我加载一个内核模块,并用lsmod列出加载的模块,我可以得到模块的“使用计数”(其他模块的数量与模块的引用)。 有没有办法找出什么是使用模块,但? 问题是我正在开发的模块坚持使用count为1,因此我不能使用rmmod来卸载它,但是它的“by”列是空的。 这意味着每次我想重新编译和重新加载模块,我都必须重新启动机器(或者,至less,我不能找出任何其他方式来卸载它)。

如何在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()之后在内核中读/写)? 一般来说,如何在内核中使用包含在macrosSYSCALL_DEFINEn()系统调用?