
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 を使用してインストールされたカーネル モジュールのインストールと使用には、いくつかの (ほとんどが自動化された) 手順が含まれます。
- (あなたの場合) PPA ソースを追加し、パッケージ リストを更新します。
- パッケージマネージャ(
apt-get
)を使用してDKMSパッケージをインストールします。パッケージマネージャは、ソースと自動インストール手順を標準ディレクトリ(/usr/src/<module name>-<version>
)にコピーすることから始まります。 - DKMS はファイルをプライベート ディレクトリにコピーします。
- DKMS は、カーネル モジュールのソース コードをプライベート ディレクトリにコンパイルします。
- DKMSはコンパイルされたカーネルモジュールファイルをモジュールディレクトリ(通常は
/lib/modules/<kernel version>/updates
)にコピーします。 modprobe <modname>
DKMS はモジュールの依存関係を更新し、の代わりにを使用できるようにしますinsmod /lib/modules/<kernel version>/updates/<modname>.ko
。- カーネル モジュールを手動でロードするか (
modprobe <modname>
)、USB デバイスを接続したときにシステム コンポーネント (udev) が自動的にロードします。
パッケージをパージすると、手順 1 ~ 6 は元に戻されます。手順 7 は自動的には元に戻りません。通常、モジュールは、 を使用して手動で削除しない限り、ロードされた後もロードされたままになりますsudo rmmod <modname>
。lsmod
モジュールの名前を確認するには、 を使用します。通常、これは と同じです<modname>
が、少なくとも Ubuntu の nvidia ドライバーの場合は、これが異なります ( を使用するmodprobe nvidia-current
ところを を使用しますrmmod nvidia
)。