Deinstallierter Treiber unter Linux Mint wird immer noch geladen, wenn USB angeschlossen ist

Deinstallierter Treiber unter Linux Mint wird immer noch geladen, wenn USB angeschlossen ist

Ich habe einen DKMS-Treiber für ein USB-Gerät von einem PPA installiert. Ich nehme Änderungen am Code vor und versuche, den Treiber mit apt-get --purge remove zu deinstallieren, aber wenn ich das Gerät anschließe, werden die Kernelmodule immer noch geladen ... warum ist das so? Wo verstecken sie sich?

Dank im Voraus

Antwort1

Wenn Sie (oder DKMS) ein Kernelmodul erstellen und installieren, gehen sie zu /lib/modules/$(uname -r)/..., also schauen Sie dort nach. Ein Beispiel aus meinem System:

/lib/modules/3.2.0-36-generic-pae/updates/dkms/nvidia_current_updates.ko

Antwort2

Die Installation und Verwendung von mit DKMS installierten Kernelmodulen umfasst mehrere (größtenteils automatisierte) Schritte:

  1. (in Ihrem Fall) Fügen Sie die PPA-Quellen hinzu und aktualisieren Sie die Paketliste.
  2. Installieren Sie das DKMS-Paket mit dem Paketmanager ( apt-get), der zunächst die Quellen und automatischen Installationsanweisungen in ein Standardverzeichnis kopiert ( /usr/src/<module name>-<version>)
  3. DKMS kopiert die Datei in ihr privates Verzeichnis.
  4. DKMS kompiliert den Quellcode des Kernelmoduls in seinem privaten Verzeichnis.
  5. DKMS kopiert die kompilierte Kernelmoduldatei in das Modulverzeichnis (normalerweise /lib/modules/<kernel version>/updates)
  6. DKMS aktualisiert Modulabhängigkeiten, sodass Sie modprobe <modname>anstelle von verwenden können insmod /lib/modules/<kernel version>/updates/<modname>.ko.
  7. Sie laden das Kernelmodul entweder manuell ( modprobe <modname>) oder eine Systemkomponente (udev) erledigt dies für Sie, wenn Sie Ihr USB-Gerät anschließen.

Die Schritte 1 bis 6 werden beim Löschen des Pakets rückgängig gemacht. Schritt 7 wird nicht automatisch rückgängig gemacht. Normalerweise bleibt ein Modul nach dem Laden geladen, sofern Sie es nicht manuell mit entfernen sudo rmmod <modname>. Verwenden Sie , lsmodum herauszufinden, welchen Namen Ihr Modul hat. Normalerweise ist dies derselbe wie <modname>, aber zumindest für NVIDIA-Treiber unter Ubuntu wird dies anders gehandhabt (Sie würden verwenden modprobe nvidia-current, verwenden aber rmmod nvidia).

verwandte Informationen