Как я могу правильно перезагрузить модуль ядра?

12

Связанный вопрос

Я не могу перезагрузить модуль ядра, чтобы попробовать новые флаги.
Пример: по thinkpad_acpiумолчанию без fan_control=1. Поэтому, если мой компьютер работает очень горячо, а вентиляторы не работают на полной скорости, иногда может быть полезно просто временно загрузить модуль fan_controlи установить вентилятор на несколько минут на максимально возможную скорость и изменить все обратно на обычные послесловия.
Это невозможно, потому что кажется, что некоторые модули ядра зависят от других, и кажется, что современные ядра Linux проверяют это.
Итак, что я сделал до сих пор:

  • Проверка зависимостей
    • modinfo -F depends thinkpad_acpi
  • Попробуйте выгрузить эти модули
    • rmmod или modprobe -r $dependencies
    • Некоторые модули снова зависят от других, попробуйте выгрузить их тоже. Не работает, даже если нет «зависимостей» (или хотя бы modinfo говорит мне об этом)
  • Google много для modprobe: FATAL: Module x is in use.
  • Чтение ТЛДП
queryAllThings
источник
Вы всегда можете изменить опцию и перезагрузить компьютер. Лучший вопрос, почему ваш компьютер нагревается.
Тердон
Извините, перезагрузка - это именно то, чего я не хочу, и мой компьютер может сильно нагреться, потому что загрузка процессора велика, или крышка закрыта, или компьютер снаружи, и светит солнце;).
queryAllThings
ОК, другой вариант - контролировать скорость вращения вентилятора. Взгляните на соответствующую страницу tthinkwiki: thinkwiki.org/wiki/How_to_control_fan_speed
terdon
1
Я знаю! Цитата: Чтобы включить управление вентилятором, параметру модуля fan_control = 1 необходимо присвоить thinkpad-acpi. Я просто хочу знать, возможно ли перезагрузить модуль ядра. Если я отлаживаю беспроводную связь, также необходимо перезагрузить некоторые модули с другими флагами.
queryAllThings
Не знаю, как поступить с snd_hda_intel:: $ sudo rmmod -f snd_hda_intel rmmod: ERROR: ../libkmod/libkmod-module.c:769 kmod_module_remove_module() could not remove 'snd_hda_intel': Resource temporarily unavailable rmmod: ERROR: could not remove module snd_hda_intel: Resource temporarily unavailable \
Томислав Накич-Альфиревич

Ответы:

4

Если принудительная выгрузка включена в ядре ( zgrep FORCE_UNLOAD /proc/config.gzговорит =y), вы можете rmmod -fпроблемный модуль ядра, чтобы принудительно выгрузить его.

Согласно патчу, который включает это , это только для разработчиков ядра и отчаявшихся людей.

Лучше всего выяснить, почему модуль используется и каким процессом, но, по крайней мере, принудительная разгрузка должна позволить перезагрузить модуль снова.

Александр
источник
2
Который, кажется, по умолчанию в Debian. PS: на Debian /proc/config.gzнаходится под /boot/config-$(uname -r).gz.
queryAllThings
и grep FORCE_UNLOAD /boot/config-$(uname -r)на Ubuntu.
Сабалаба