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