Programmgesteuert prüfen, ob ein Linux-Kernel-Modul zur Laufzeit existiert oder nicht

8

Ich schreibe einen C-Daemon, der von der Existenz zweier Kernel-Module abhängt, um seine Aufgabe zu erledigen. Das Programm verwendet diese (oder andere) Module nicht direkt. Es braucht sie nur, um zu existieren. Daher möchte ich programmatisch prüfen, ob diese Module bereits geladen sind oder nicht, um den Benutzer zur Laufzeit zu warnen.

Bevor ich mit der Analyse von /proc/modules oder lsmod output beginne, existiert bereits irgendwo eine Dienstprogrammfunktion? Etwas wie is_module_loaded(const char* name) ;

Ich bin mir ziemlich sicher, dass das schon einmal gefragt wurde. Ich denke jedoch, dass mir die richtigen Begriffe fehlen, um danach zu suchen.

    
dgraziotin 19.10.2012, 16:47
quelle

2 Antworten

3

Sie können popen und lsmod | grep trick:

verwenden %Vor%     
tozka 19.10.2012, 17:02
quelle
12

Es gibt keine solche Funktion. Tatsächlich enthält der Quellcode von lsmod ( lsmod.c ) die folgende Zeile, die Sie zu Ihrer Lösung führen sollte:

%Vor%

Es gibt auch ein veraltetes query_module , aber es scheint, dass es heutzutage nur in Kernel-Headern existiert.

    
Sean Bright 19.10.2012 16:58
quelle

Tags und Links