Linux Mint でアンインストールしたドライバーは、USB を接続すると引き続き読み込まれます

Linux Mint でアンインストールしたドライバーは、USB を接続すると引き続き読み込まれます

PPA から USB デバイス用の DKMS ドライバーをインストールしました。コードを変更し、apt-get --purge remove を使用してドライバーをアンインストールしようとしていますが、デバイスを接続するとカーネル モジュールがまだロードされます... なぜでしょうか? どこに隠れているのでしょうか?

前もって感謝します

答え1

あなた (または DKMS) がカーネル モジュールをビルドしてインストールすると、 に移動するはずです/lib/modules/$(uname -r)/...ので、そこを確認してください。私のシステムからの例を 1 つ示します。

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

答え2

DKMS を使用してインストールされたカーネル モジュールのインストールと使用には、いくつかの (ほとんどが自動化された) 手順が含まれます。

  1. (あなたの場合) PPA ソースを追加し、パッケージ リストを更新します。
  2. パッケージマネージャ(apt-get)を使用してDKMSパッケージをインストールします。パッケージマネージャは、ソースと自動インストール手順を標準ディレクトリ(/usr/src/<module name>-<version>)にコピーすることから始まります。
  3. DKMS はファイルをプライベート ディレクトリにコピーします。
  4. DKMS は、カーネル モジュールのソース コードをプライベート ディレクトリにコンパイルします。
  5. DKMSはコンパイルされたカーネルモジュールファイルをモジュールディレクトリ(通常は/lib/modules/<kernel version>/updates)にコピーします。
  6. modprobe <modname>DKMS はモジュールの依存関係を更新し、の代わりにを使用できるようにしますinsmod /lib/modules/<kernel version>/updates/<modname>.ko
  7. カーネル モジュールを手動でロードするか ( modprobe <modname>)、USB デバイスを接続したときにシステム コンポーネント (udev) が自動的にロードします。

パッケージをパージすると、手順 1 ~ 6 は元に戻されます。手順 7 は自動的には元に戻りません。通常、モジュールは、 を使用して手動で削除しない限り、ロードされた後もロードされたままになりますsudo rmmod <modname>lsmodモジュールの名前を確認するには、 を使用します。通常、これは と同じです<modname>が、少なくとも Ubuntu の nvidia ドライバーの場合は、これが異なります ( を使用するmodprobe nvidia-currentところを を使用しますrmmod nvidia)。

関連情報