web-dev-qa-db-ja.com

LinuxでキャッシュされたUSBデバイスの署名をクリアする方法

Linuxが持っているUSBデバイスのメモリをどのようにクリアしますか?

複数のUSBデバイスを接続すると、Linuxがそれらを「記憶」し、/devの同じ場所に再マウントしているように見えることに気付きました。

たとえば、接続すると/dev/ttyACM0/dev/ttyACM1/dev/ttyACM2として表示されるArduinoがいくつかあります。それらをすべて切断してから2番目を再接続すると、接続されている唯一のデバイスであるにもかかわらず、/dev/ttyACM1ではなく/dev/ttyACM0として再表示されます。

2番目のデバイスが/dev/ttyACM1としてマウントされることを記憶しているメカニズムをクリアするにはどうすればよいですか?これをクリアするために私が見つけた唯一の方法は再起動することですが、それは私のシステムにあまりにも破壊的です。 udevを再起動しようとしましたが、効果がありませんでした。

ArduinoがUSBホストに再接続された後、そのシリアル接続が散発的にハングして切断されるという問題をデバッグしようとしています。新たに再起動した後、Arduinoのシリアル接続は完全に機能するため、私の理論では、古い接続の一部の側面を記憶しているコンピューターのUSBドライバーにバグがあり、これを新しい接続に再利用しようとして失敗します。 。

1
Cerin

あなたはusb-serialドライバーモジュールをアンロードしてリロードするかもしれません:それはcdc-acmまたはftdi-sioのどちらかです。

すべてのArduinoのプラグを抜いたら、次のコマンドを実行します。

Sudo modprobe -r cdc-acm
Sudo modprobe -r ftdi-sio

Arduinoを接続し直すと、カーネルは自動的にそれらをリロードします(Arduinoモデルに適した方)が、ドライバーをアンロードすると、どのデバイスの「メモリ」が削除されます。

1
telcoM

それはあなたのシステムに依存します(あなたは私たちに何も言わなかった)。

多くの場合、永続的なデバイス割り当てはudevルールによって処理され、/etc/udev/rules.dに保存されます。通常、名前にpersistentが含まれるファイルに保存されます。システム上で見つけたものを見てください。

0
dirkt