Montag, 16. Mai 2016

101.1 Identifizieren von Kernel Versionen und Modul-Abhängigkeiten

  • uname -r          Version des aktuellen Kernels bestimmen
  • /lib/modules/      Auflistung aller jemals installierter Kernel auf dem System
  • /usr/src/<Kernel-Version>   hier befindet sich der Quellcode des Kernel (auch auf http://kernel.org)
    • Was verbirgt sich hinter dem Bezeichner des Kernels:
      • 1. Zahl: Major Release: wird nur bei revolutionären Veränderungen geändert (oder wenn Linus Torvald es beschließt). Aktuelles Major Release (2016) ist bei 4
      • 2.ZahlMinor Release: Änderung wenn dem Kernel neuen wesentliche Funktionen hinzugefügt werden. Zusätzliche Unterscheidung zwischen geraden und ungeraden Minor Releases:
        • gerade Versionen: stable
        • ungerade Versionen: Entwicklerversionen
      • 3. Zahl: Patch Level: hier werden kleinere Änderungen und Fehlerbeseitigungen am Kernel dokumentiert
      • der REST: Bezeichnung, die man dem Kompilieren im Makefile des Kernels angegeben hat. Es gibt keine Namenskonventionen
  • lsmod              Status der Module des laufenden Kernelslsmod greift auf /proc/modules zu
  • modinfo          detaillierte Infos zu einem Modul des Kernels: z.B. Autor, Verwendungszweck, Versionsnr., Lizenz, Abhängigkeiten
    • -a zeigt nur den Autor an
    • -d nur die Beschreibung
    • -l Lizenz
    • -p übergebene Parameter (falls vorhanden)
    • -n Dateiname des Moduls
  • insmod           Module in den laufenden Kernel integrieren unter Angabe des kompletten Pfads und eventuell notwendigen OptionenAbhängigkeiten werden geprüft, aber nicht aufgelöst -> Fehlermeldung. Keine Erfolgsbestätigung
    Aufrufparameter
    -k
     (autoclean)       entfernt das Modul aus dem Speicher, wenn es nicht mehr benötigt wird
    -p
     (probe)             Test, ob ein Laden des Moduls erfolgreich wäre
  • rmmod           entfernen eines nicht mehr benötigten Kernelmoduls. Sollte das Modul noch in Gebrauch sein, erfolgt eine Fehlermeldung. Keine Pfadangabe möglich, da mit /proc/modules-Dateien gearbeitet wird. Keine Erfolgsmeldung
    • -v Verbose Mode
    • -f erzwingt das Entladen des Moduls, auch wenn eventuelle Abhängigkeiten nicht erfüllt sind
  • modprobe         Kombination von insmod und rmmodmodprobe kann nicht nur Abhängigkeiten zwischen den Modulen erkennen, sondern auch Probleme beheben. Zur Installation ist nur der Modulname, nicht der ganze Pfad notwendig. Auflösen von Abhängigkeiten durch selbständiges Suchen da es die Informationen aus uname -r verwendet, um notwendige Module zu suchen. Nicht alle Optionen mehr für aktuelle Kernel vohanden
    • Auflistung aller Module eines Typs möglich mit Option -at (sofern noch verfügbar) (-t unter Ubuntu 14.04 nicht mehr verfügbar)
    • basename -s ".ko" $(find /lib/modules/$(uname -r) -type f -name "*.ko") mit diesem Befehl kann unter Ubuntu die vollständige Liste aufgerufen, oder man schaut sich die verfügbaren Module im Verzeichniss selbst an
    • Auflisten und Entfernen von ModulenGleichzeitiges Entfernen mehrerer Module (durch Leerzeichen getrennt) möglich
  • Unterschied zu lsmodmodprobe zeigt alle Module an, die in den laufenden Kernel installiert werden können (-l unter Ubuntu 14.04 nicht mehr verfügbar)
  • depmod           Erzeugung einer neuen modules.dep -Datei. Dabei werden die Abhängigkeiten aller vorhandenen Modulen abgefragt und in die neue Datei eingetragen. modules.dep listet die Abhängigkeiten zwischen allen Modulen auf und liegt unter /lib/modules/<Kernel-Version>/
    • -n Trockenlauf mit Ausgabe nach stdout
    • -A Schnelldurchgang bei dem vor der Erstellung der neuen Datei ge

Keine Kommentare:

Kommentar veröffentlichen