module-assistant
ist seit einiger Zeit die De-facto-Methode zum Kompilieren und Erstellen von binären Debian-Paketen, die Kernelmodule enthalten. In jüngerer Zeit ist ein vergleichbares Dienstprogramm erschienen - dkms
.
Wenn jemand Erfahrung mit beiden hat, vergleichen Sie bitte die Vor- und Nachteile der Verwendung von beiden gegenüber den anderen.
Ein Punkt, der in einer Antwort angesprochen werden muss, ist, ob dkms
binäre Debian-Pakete auch für Kernelmodule erstellt werden und wenn ja, wie und wenn ja, welche Unterschiede zwischen den von m-a
und erstellten Paketen dkms
bestehen, falls vorhanden.
Ich persönlich habe es nie benutzt dkms
, aber ich habe es module-assistant
über viele Jahre sporadisch benutzt , und es war eine gute Erfahrung. Ich habe keine unmittelbaren Pläne zum Experimentieren dkms
, daher denke ich nicht, dass ich die richtige Person bin, um eine Antwort zu schreiben.
Zufällige googeln eine Diskussion gefunden hier , auch dieses .
Es ist unnötig zu erwähnen, dass jede Antwort auf Erfahrungen aus erster Hand basieren sollte und nicht auf dem Kopieren aus Webforen. Ein Beispiel mit beiden wäre schön. Möglicherweise nvidia-kernel
, da das ziemlich häufig verwendet wird. Ja, ich weiß, dass es sich um ein proprietäres Kernelmodul handelt. :-(
UPDATE: Danke an Jordanm für seine Antwort. Ich hätte gerne etwas, das etwas detaillierter darauf eingeht, was unter der Haube vor sich geht, für beide m-a
und dkms
obwohl ich dies anfangs nicht erwähnt habe. Es hört sich auch so an, als würde die meiste Zeit dkms
transparent und automatisch arbeiten. Aber was sind die Fehlermodi von dkms
. Wie gehen beide mit manuell kompilierten / installierten Kerneln um? Entweder von einem Binärpaket oder einer lokalen Installation installiert.
m-a
unddkms
gelten als vergleichbar.Antworten:
Der Hauptunterschied aus der Sicht eines Benutzers besteht darin, dass
module-assistant
(m-a
) ein Tool zum manuellen Kompilieren eines Kernelmoduls ist, währenddkms
dies automatisch ohne Benutzereingriff geschieht. Wenn Sie verwendenm-a
und das Kernel-Paket aktualisiert wird, müssen Sie das Modul mit manuell neu kompilierenm-a
. Dam-a
nur für den Kernel kompiliert wird, den Sie gerade ausführen, bedeutet dies, dass Sie beim nächsten Neustart eine fehlerhafte Benutzeroberfläche haben, wenn das Modul, das Sie benötigen,m-a
ein Grafiktreiber ist.Die Trigger für
dkms
werden bei jeder Kernelpaketinstallation ausgeführt und stellen sicher, dass das Modul für jeden Kernel auf dem System installiert ist. Ich persönlich kann mir keinen Grund für einen Endbenutzer vorstellen, diese weiterhin zu verwendenm-a
.Hier sind einige Beispiele für
m-a
vsdkms
für dasnvidia
Kernelmodul:Erstellen eines Moduls mit Modulassistent:
Erstellen eines Moduls mit dkms:
Kernel-Upgrade mit
module-assistant
:Kernel-Upgrade mit
dkms
:quelle
m-a install nvidia-kernel-source
die Binärmodulpakete erstellt und installiert werden sollen? Ich nehme an,dkms
das Modul ist transparent aufgebaut. Was passiert mit manuell kompilierten Kerneln?m-a
erstellt und installiert ein Debian-Paket.m-a
würde nicht mit einem manuell kompilierten Kernel funktionieren, es sei denn, er wurde über das Debian-Paket installiert. Ich bin mir nicht sicher, wie ichdkms
damit umgehen würde.dkms
und zu verwendenm-a
. Wenn das erstere (binäres Kernel-Paket) ich nehme an, würden sie, aber Details wären interessant. Ich weiß, dass esm-a
mit manuell installierten binären Kernel-Paketen funktioniert, weil ich es mit ihnen verwendet habe. Sie müssen sicherstellen, dass auch die Header erstellt werden - ein weiteres Debian-Paket.