Как добавить параметры модуля ядра?

20

Как добавить параметр модуля ядра в Ubuntu 11.04?

Могу ли я использовать /etc/moduleфайл? Если да, то как?

waterloo2005
источник
1
Вы имеете в виду параметры, как i915.modeset=1?
Лекенштейн
Я имею в виду «options thinkpad_acpi fan_control = 1» в файле в /etc/modprobe.d/ или «thinkpad_acpi fan_control = 1» в / etc / modules?
waterloo2005

Ответы:

19

/etc/modulesкажется, загружен /etc/init/module-init-tools.conf. Первый аргумент - это имя модуля, остальные аргументы - это параметры. Добавление следующего, /etc/modulesкажется, хорошо:

thinkpad_acpi fan_control=1

Чтобы загрузить этот модуль и установить эти параметры на самой ранней стадии загрузки, добавьте предыдущую строку в /etc/initramfs-tools/modulesфайл. После внесения изменений в этот файл вам необходимо восстановить виртуальный диск:

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

Если эта функция возвращает ошибку, проверьте, был ли загружен модуль и существует ли опция.

Lekensteyn
источник
2
Как узнать, какой параметр модуля вступил в силу? спасибо
waterloo2005
@ waterloo2005: Вы можете использовать /sysдля этого. Смотрите пересмотренный ответ.
Лекенштейн
Я считаю, что я не добавляю параметр в / etc / modules. Мне нужно только добавить их в /etc/modprobe.d/. Спасибо
waterloo2005
Различие между /etc/modulesи /etc/modprobe.d: первое относится к модулям, загруженным на ранней стадии загрузки (сразу после запуска Plymouth), последнее загружается позже (посредством initscripts)
Lekensteyn
Где я могу найти официальные инструкции по этому поводу? спасибо
waterloo2005
10

Настройка параметров модуля с использованием файлов в /etc/modprobe.d/

Файлы в каталоге /etc/modprobe.d/ можно использовать для передачи настроек модуля в 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файла для модулей, которые не загружается автоматически во время загрузки.

user2366867
источник
7

С Ubuntu 16.04 больше нельзя включать параметры модуля ядра в /etc/modules . В журнале загрузки генерируется сообщение о том, что не удается найти «my_kernel_mod myparam = x».

Вместо этого нужно указать только имя модуля ядра /etc/modulesи указать параметры в /etc/modprobe.d/myfilename.conf (как предложено выше ).

Пирз
источник