当前位置: 首页>>技术教程>>正文


如何添加内核模块参数?

, ,

问题描述

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

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

最佳方法

/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

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

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

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

次佳方法

使用 /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

来源:Kernel modules – ArchWiki


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

第三种方法

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13071.html,未经允许,请勿转载。