Was ist dkms?

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Grundsätzliches

  • DKMS steht für Dynamic Kernel Module Support.
  • Das von Dell entwickelte Hilfsprogramm überwacht, ob zusätzliche Kernelmodule manuell installiert wurden und aktualisiert die Module immer dann, wenn ein neuer Kernel installiert wird.
  • Dies ist insofern praktisch, dass das Kompilieren des Kernelmoduls nicht immer von Hand durchgeführt werden muss, wenn der Kernel aktualisiert wurde.
  • Hat man also z.B. zusätzliche Treiber in Form von selbstkompilierten Kernelmodulen von Hand installiert, so stehen diese in der Regel direkt nach dem ersten Neustart wieder zur Verfügung.
  • DKMS prüft entweder bei der Installation eines neuen Kernels oder spätestens beim Rechnerstart, ob die passenden Module für den aktuellen Kernel vorhanden sind und erstellt diese bei Bedarf automatisch.
  • Praktisch wird DKMS meist bei proprietären (unfreien) Treibern für Grafikkarten und RAID-Controller sowie Softwarelösungen zur Virtualisierung eingesetzt.
  • Also Bereiche, bei denen ein Kernelupdate unter Umständen zu einem nicht mehr funktionierendem System bzw. Programm führen kann.

Konfiguration

  • DKMS wird über eine einzelne Datei konfiguriert.
  • Die Standardkonfiguration findet man unter Ubuntu im Verzeichnis /etc/dkms/framework.conf.
  • Die Datei ist relativ kurz und gut kommentiert, weitere Informationen findet man auch in der Manpage zu DKMS.
  • Ein Anpassung der Datei ist in der Regel nicht notwendig.

Benutzung

  • Ist DKMS installiert, nimmt es die Arbeit ohne weiteres Zutun direkt auf.
  • Weiterhin wird DKMS bei jedem Systemstart über ein init-Skript automatisch gestartet.
  • Installiert man von Hand ein Kernelmodul (z.B. mittels des module-assistant), so fließt es direkt in die Liste der überwachten Module ein.
  • Möchte man wissen, welche Module aktuell von DKMS überwacht werden, so kann man dies abfragen oder schaut alternativ in das Verzeichnis /var/lib/dkms.
  • Für jedes Kernelmodul existiert hier ein Unterverzeichnis mit dem Namen des Moduls.
  • Innerhalb der jeweiligen Unterverzeichnisse findet man den Quellen des Moduls sowie die kompilierten Module für die jeweiligen Kernel.

Quellen