Jak mogę poprawnie przeładować moduł jądra?

13

Powiązane pytanie

Nie mogę ponownie załadować modułu jądra w celu wypróbowania nowych flag.
Przykład: thinkpad_acpidomyślnie jest bez fan_control=1. Więc jeśli mój komputer działa naprawdę gorąco, a wentylatory nie osiągają pełnej prędkości, czasem może być użyteczne tylko chwilowe załadowanie modułu fan_controli ustawienie wentylatora na kilka minut na najwyższą możliwą prędkość i przywrócenie normalnego posłannictwa.
Nie jest to możliwe, ponieważ wydaje się, że niektóre moduły jądra zależą od innych i wydaje się, że sprawdzają to współczesne jądra Linuksa.
Co więc zrobiłem do tej pory:

  • Sprawdzanie zależności
    • modinfo -F depends thinkpad_acpi
  • Spróbuj rozładować te moduły
    • rmmod lub modprobe -r $dependencies
    • Niektóre moduły zależą od innych, spróbuj też je rozładować. Nie działa, nawet jeśli nie ma „zależności” (a przynajmniej modinfo mi to mówi)
  • Google dużo za modprobe: FATAL: Module x is in use.
  • Czytanie tldp
queryAllThings
źródło
Zawsze możesz zmienić opcję i uruchomić ponownie. Lepszym pytaniem jest, dlaczego komputer się nagrzewa.
terdon
Przepraszamy, zrestartowanie jest dokładnie tym, czego nie chcę robić, a mój komputer może się rozgrzać, ponieważ obciążenie procesora jest szybkie, pokrywa jest zamknięta lub komputer jest na zewnątrz i świeci słońce;).
queryAllThings
OK, inną opcją byłoby kontrolowanie prędkości wentylatora. Zajrzyj na odpowiednią stronę tthinkwiki
terdon
1
Wiem! Cytat: Aby włączyć sterowanie wentylatorem, parametr Think_Control = 1 musi zostać podany dla thinkpad-acpi. Chcę tylko wiedzieć, czy można ponownie załadować moduł jądra. Jeśli debuguję sieć bezprzewodową, konieczne jest także ponowne załadowanie niektórych modułów z innymi flagami.
queryAllThings,
Nie wiem jak zrobić z 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 \
Tomislav Nakic-Alfirevic

Odpowiedzi:

5

Jeśli wymuszone rozładowanie jest włączone w jądrze ( zgrep FORCE_UNLOAD /proc/config.gzmówi =y), możesz rmmod -fproblematycznym modułem jądra, aby wymusić jego rozładowanie.

Według łatki, która to umożliwia , dotyczy to tylko programistów jądra i zdesperowanych osób.

Najlepiej chyba dowiedzieć się, dlaczego moduł jest używany i przez jaki proces, ale przynajmniej wymuszone rozładowanie powinno umożliwić ponowne załadowanie modułu.

Alexander
źródło
2
Który wydaje się być domyślny w Debianie. PS: Na Debianie /proc/config.gzznajduje się pod /boot/config-$(uname -r).gz.
queryAllThings
1
i grep FORCE_UNLOAD /boot/config-$(uname -r)na Ubuntu.
sabalaba