如何添加内核模块参数?

wat*_*005 23 11.04 modules kernel-modules

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

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

Lek*_*eyn 20

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

thinkpad_acpi fan_control=1
Run Code Online (Sandbox Code Playgroud)

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

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

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

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash thinkpad_acpi.fan_control=1"
Run Code Online (Sandbox Code Playgroud)

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

modinfo -p thinkpad_acpi
Run Code Online (Sandbox Code Playgroud)

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

modinfo i915 | grep ^parm
Run Code Online (Sandbox Code Playgroud)

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

sudo cat /sys/module/MODULE/parameters/PARAM
Run Code Online (Sandbox Code Playgroud)

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

sudo cat /sys/module/thinkpad_acpi/parameters/fan_control
Run Code Online (Sandbox Code Playgroud)

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

  • 如何知道模块的某个参数生效了?谢谢 (2认同)

use*_*867 14

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

/etc/modprobe.d/ 目录中的文件可用于将模块设置传递给 udev,udev 将使用 modprobe 管理系统引导期间模块的加载。该目录中的配置文件可以有任何名称,前提是它们以 .conf 扩展名结尾。语法是:

/etc/modprobe.d/myfilename.conf
---------------------------------------------------------
options modname parametername=parametervalue
Run Code Online (Sandbox Code Playgroud)

例如:

/etc/modprobe.d/thinkfan.conf
---------------------------------------------------------
# On ThinkPads, this lets the 'thinkfan' daemon control fan speed
options thinkpad_acpi fan_control=1
Run Code Online (Sandbox Code Playgroud)

来源:内核模块 - ArchWiki


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


Pie*_*erz 8

在 Ubuntu 16.04 中,不能再将内核模块参数包含在/etc/modules. 引导日志中生成一个错误,指出它找不到“my_kernel_mod myparam=x”。

相反,只需将内核模块名称/etc/modules放入并将选项放入 /etc/modprobe.d/myfilename.conf (如上所示)。