如何添加内核模块参数?

如何添加内核模块参数?

如何在 Ubuntu 11.04 中添加内核模块参数?

我可以使用该/etc/module文件吗?如果可以,如何使用?

答案1

/etc/modules似乎是通过 加载的/etc/init/module-init-tools.conf。第一个参数是模块名称,其他参数是参数。将以下内容添加到/etc/modules似乎没问题:

thinkpad_acpi fan_control=1

要在启动的早期阶段加载此模块并设置这些参数,请将上一行添加到/etc/initramfs-tools/modules文件中。在该文件发生更改后,您需要重新生成 ramdisk:

sudo update-initramfs -u

作为一种可能的替代方案,您可以尝试将选项添加到内核行(我自己还没有测试过,但它似乎适用于像这样的设置i915.modeset=1。编辑/etc/default/grub并找到带有的行GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"。将其替换为以下内容:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash thinkpad_acpi.fan_control=1"

获取内核模块的选项列表:

modinfo -p thinkpad_acpi

这对不起作用i915,因此我必须运行:

modinfo i915 | grep ^parm

要获取模块参数的当前值,请运行:

sudo cat /sys/module/MODULE/parameters/PARAM

对于模块fan_control的参数thinkpad_acpi,您必须运行:

sudo cat /sys/module/thinkpad_acpi/parameters/fan_control

如果此函数返回错误,请检查模块是否已加载以及选项是否存在。

答案2

使用 /etc/modprobe.d/ 中的文件设置模块选项

/etc/modprobe.d/ 目录中的文件可用于将模块设置传递给 udev,udev 将使用 modprobe 管理系统启动期间模块的加载。此目录中的配置文件可以采用任何名称,只要它们以 .conf 扩展名结尾即可。语法为:

/etc/modprobe.d/myfilename.conf
---------------------------------------------------------
options modname parametername=parametervalue

例如:

/etc/modprobe.d/thinkfan.conf
---------------------------------------------------------
# On ThinkPads, this lets the 'thinkfan' daemon control fan speed
options thinkpad_acpi fan_control=1

来源:内核模块 - ArchWiki


据我所知,您可以对在启动时自动加载的模块使用上述方法(以避免卸载和重新加载具有特殊参数的模块,因为驱动程序模块可能是这种情况),以及/etc/modules对在启动时不会自动加载的模块使用该文件。

答案3

从 Ubuntu 16.04 开始,不再能在 中包含内核模块参数/etc/modules。启动日志中会生成一条错误,提示找不到“my_kernel_mod myparam=x”。

相反,只需要输入内核模块名称/etc/modules并输入选项/etc/modprobe.d/myfilename.conf(如建议的那样多于)。

相关内容