如何在 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
据我所知,您可以对在启动时自动加载的模块使用上述方法(以避免卸载和重新加载具有特殊参数的模块,因为驱动程序模块可能是这种情况),以及/etc/modules
对在启动时不会自动加载的模块使用该文件。
答案3
从 Ubuntu 16.04 开始,不再能在 中包含内核模块参数/etc/modules
。启动日志中会生成一条错误,提示找不到“my_kernel_mod myparam=x”。
相反,只需要输入内核模块名称/etc/modules
并输入选项/etc/modprobe.d/myfilename.conf
(如建议的那样多于)。