2

我是内核编程的新手。我在浏览时module_param,被权限值0弄糊涂了。解释说它不会在sysfs中获得条目,而其他喜欢的S_IRUGO会获得条目。我无法理解这个概念。

perm 值 0 表示什么?我们什么时候需要 sysfs 条目?那有什么需要?

请指导我。提前致谢。

4

1 回答 1

4

您可以通过某些方式将模块参数传递给内核模块。假设一个内核模块foo的参数名为bar

  • 使用可以在引导加载程序配置中提供的内核命令行。要查看当前引导的命令行,请运行cat /proc/cmdline. 示例输出:BOOT_IMAGE=/vmlinuz root=/dev/sda1 foo.bar=some-value
  • insmod使用or加载内核模块时modprobe: modprobe foo bar=some-value
  • 加载模块时,您通常可以在 中看到找到bar模块foo的参数/sys/module/foo/parameters/bar

权限值0阻止创建 sysfs 条目(上面的第三个项目符号)。内核代码中的一个示例用法是允许启用调试而不在 sysfs 中公开此参数。

可读/可写模块参数的示例是acpi. 它允许您动态设置应生成的调试信息。可acpi.debug_level用于内核命令行或/sys/module/acpi/parameters/debug_levelsysfs 条目。

于 2013-01-27T22:22:30.820 回答