Aktualisieren des Linux-Kernelmoduls ohne Neustart

593
sunny

Gibt es eine Möglichkeit, ein Linux-Treibermodul zu aktualisieren, ohne das System neu zu starten?

0
Über welche Art von Modul sprechen wir hier? Eine zentrale Komponente? Daniel B vor 9 Jahren 0
ein dynamisch ladbares Modul sunny vor 9 Jahren 0
Das hilft nicht. Wenn Sie können, nennen Sie es bitte oder beschreiben Sie zumindest, was es macht. Vorzugsweise mit 'lsmod'-Ausgabe. Daniel B vor 9 Jahren 0
Welches spezifische Modul meinst du? Oracle behauptet, [Ksplice] (https://www.ksplice.com/) kann Neustarts vermeiden, aber ich habe es noch nie versucht. l0b0 vor 9 Jahren 0
Dies ist ein Zeichentreibermodul, das mit den neuesten Versionen aktualisiert werden muss, ohne das System neu zu starten und minimale Ausfallzeiten zu erreichen. sunny vor 9 Jahren 0

1 Antwort auf die Frage

1
Daniel B

Nun, da Sie mit den Informationen nicht so aufgeschlossen sind, sollten wir es theoretisch behalten.

Ja, ein Kernel-Modul kann entladen werden. Es ist auch ganz einfach:

localhost ~ # modprobe kcopy localhost ~ # lsmod Module Size Used by kcopy 5124 0 iTCO_wdt 4967 0 lpc_ich 13224 0 mfd_core 3041 1 lpc_ich localhost ~ # modprobe -r kcopy 

Wie Sie in der Liste sehen können, wurde das Kernel-Modul nicht verwendet (Zähler bei 0). Wenn ein Modul verwendet wird (z. B. ein Dateisystemtreiber, auf dem ein Dateisystem angehängt ist), kann es nicht entladen werden.

Aber das hängt alles von der Kernel mit Unterstützung gebaut Module zu entfernen:

[*] Enable loadable module support ---> --- Enable loadable module support [*] Module unloading 

(Symbol: MODULE_UNLOAD)

Es gibt auch Unterstützung für die erzwungene Entfernung, diese darf jedoch nicht auf Produktionssystemen verwendet werden.