Wie kann ich ein Kernelmodul richtig neu laden?

12

Verwandte Frage

Ich kann ein Kernelmodul nicht neu laden, um neue Flags auszuprobieren.
Beispiel: thinkpad_acpiStandard ist ohne fan_control=1. Wenn mein Computer sehr heiß läuft und die Lüfter nicht auf volle Geschwindigkeit laufen, kann es manchmal sinnvoll sein, das Modul nur vorübergehend zu laden fan_controlund den Lüfter für einige Minuten auf die höchstmögliche Geschwindigkeit einzustellen und alles wieder auf normale Nachworte umzustellen.
Dies ist nicht möglich, da anscheinend einige Kernelmodule von anderen abhängen und moderne Linux-Kernel dies zu überprüfen scheinen.
Was habe ich bisher gemacht:

  • Überprüfen der Abhängigkeiten
    • modinfo -F depends thinkpad_acpi
  • Versuchen Sie, diese Module zu entladen
    • rmmod oder modprobe -r $dependencies
    • Einige Module hängen wieder von anderen ab. Versuchen Sie auch, sie zu entladen. Funktioniert nicht, auch wenn es keine 'Abhängigkeiten' gibt (oder zumindest sagt mir modinfo das)
  • Google viel für modprobe: FATAL: Module x is in use.
  • lesen TLDP
queryAllThings
quelle
Sie können die Option jederzeit ändern und neu starten. Eine bessere Frage ist, warum sich Ihr Computer aufheizt.
Terdon
Entschuldigung, ein Neustart ist genau das, was ich nicht tun möchte, und mein Computer wird möglicherweise heiß, weil die CPU-Auslastung schnell ist oder der Deckel geschlossen ist oder der Computer draußen ist und die Sonne scheint;).
queryAllThings
OK, eine andere Möglichkeit wäre, die Lüftergeschwindigkeit zu steuern. Werfen Sie einen Blick auf die entsprechende tthinkwiki-Seite: thinkwiki.org/wiki/How_to_control_fan_speed
terdon
1
Ich kenne! Quote: Um die Lüftersteuerung zu aktivieren, muss der Modulparameter fan_control = 1 an thinkpad-acpi übergeben werden. Ich möchte nur wissen, ob es möglich ist, ein Kernelmodul neu zu laden. Wenn ich drahtlos debugge, müssen auch einige Module mit anderen Flags neu geladen werden.
queryAllThings
Ich weiß nicht, wie ich mit 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
umgehen soll ::

Antworten:

4

Wenn das Entladen erzwingen im Kernel aktiviert ist ( zgrep FORCE_UNLOAD /proc/config.gzsagt =y), können Sie rmmod -fdas problematische Kernelmodul verwenden, um das Entladen zu erzwingen.

Laut dem Patch, der dies ermöglicht , ist dies nur für Kernel-Entwickler und verzweifelte Menschen.

Am besten ist es wahrscheinlich herauszufinden, warum und durch welchen Prozess das Modul verwendet wird, aber zumindest das erzwungene Entladen sollte es ermöglichen, das Modul erneut zu laden.

Alexander
quelle
2
Welches scheint die Standardeinstellung bei Debian zu sein. PS: Auf Debian /proc/config.gzbefindet sich unter /boot/config-$(uname -r).gz.
queryAllThings
und grep FORCE_UNLOAD /boot/config-$(uname -r)auf Ubuntu.
Sabalaba