LinuxでUSBデバイスのすべてのメモリを消去する方法は?
複数のUSBデバイスを接続すると、Linuxはそのデバイスを「記憶」します/dev
。
/dev/ttyACM0
たとえば、接続されていると、とマークさ/dev/ttyACM1
れたArduinoがあります/dev/ttyACM2
。すべてを切断して2番目のデバイスを再接続すると、現在接続されている唯一のデバイスであるにもかかわらず再表示/dev/ttyACM1
されます。/dev/ttyACM0
2番目のデバイスが取り付けられていることを覚えるメカニズムをどのように消去できますか/dev/ttyACM1
?この問題を解決するために私が見つけた唯一の方法は、再起動することです。ただし、これを行うとシステムが損傷しすぎます。再起動しようとしましたが、udev
動作しませんでした。
Arduinoのシリアル接続がUSBホストに再接続された後、時々中断または切断される問題をデバッグしようとしています。再起動後にArduinoのシリアル接続が正常に動作するため、私のコンピュータのUSBドライバに古い接続のいくつかの側面を覚えていて、新しい接続に再利用しようとするとエラーが発生するバグがあるという理論があります.
ベストアンサー1
USBシリアルドライバモジュールをアンロードして再ロードできます。これはcdc-acm
またはですftdi-sio
。
すべてのArduinoのプラグを抜き、以下を実行してください。
sudo modprobe -r cdc-acm
sudo modprobe -r ftdi-sio
Arduinoを再接続すると、カーネルはそれを自動的に再ロードします(Arduinoモデルに適しています)、ドライバをアンインストールすると、どのデバイスであるかについての「メモリ」が削除されます。