web-dev-qa-db-ja.com

使用中で再帰的なモジュール依存関係があるカーネルモジュールをアンロードする方法

私は自分のElm 327のドライバーを持っています。usbserialに依存するpl2303モジュールを使用しますが、これもpl2303モジュールに依存します。

私が試したこと:

Sudo modprobe -r usbserial pl2303
Sudo modprobe -r pl2303 usbserial
Sudo modprobe -rf usbserial
Sudo modprobe -rf pl2303
Sudo rmmod --force pl2303
Sudo rmmod --force usbserial

rmmodの結果:

rmmod: ERROR: ../libkmod/libkmod-module.c:799 kmod_module_remove_module() could not remove 'usbserial': Resource temporarily unavailable
rmmod: ERROR: could not remove module usbserial: Resource temporarily unavailable

modprobeの結果:

modprobe: FATAL: Module usbserial is in use.

また、ドライバをロードおよびアンロードして試してみました。

kernel modules reference each other[1]

OS:Ubuntu 20.04

2
Noel Schenk

カーネルモジュールをブラックリストに登録することが可能です。

この投稿をチェックしてください カーネルモジュールをブラックリストに登録する方法は?

1
Noel Schenk

OPが言及したように、モジュールをアンロードするよりも、最初からロードしない方が簡単です。これは、モジュールをブラックリストに登録することで実現されます。

回答をリンクで要約するには:

/etc/modprobe.d/blacklist.confファイルを作成し、次の構文を使用してドライバ名を追加します。

blacklist pl2303

ファイルを保存して再起動します。問題のモジュールは起動時に読み込まれなくなります。

0