Aktualisieren des Linux-Kernelmoduls ohne Neustart

642
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 10 Jahren 0
ein dynamisch ladbares Modul sunny vor 10 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 10 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 10 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 10 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.