Linux에서 캐시된 USB 장치 서명을 지우는 방법

Linux에서 캐시된 USB 장치 서명을 지우는 방법

Linux에서 USB 장치의 모든 메모리를 지우는 방법은 무엇입니까?

여러 USB 장치를 연결하면 Linux가 해당 장치를 "기억"하고 /dev.

/dev/ttyACM0예를 들어, 연결되면 , /dev/ttyACM1및 으로 표시되는 Arduino가 있습니다 /dev/ttyACM2. 모두 연결을 끊고 두 번째 장치를 다시 연결하면 현재 연결된 유일한 장치임에도 불구 /dev/ttyACM1하고 다시 나타납니다./dev/ttyACM0

두 번째 장치가 설치된 것을 기억하는 메커니즘을 어떻게 지울 수 있습니까 /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 모델에 적합한 것) 드라이버를 제거하면 어떤 장치인지에 대한 "메모리"가 삭제됩니다.

답변2

이는 시스템에 따라 다릅니다(이에 대해 아무것도 모릅니다).

일반적으로 영구 장치 할당은 udev 규칙에 의해 처리되고 일반적으로 /etc/udev/rules.d이름에 포함된 파일에 저장됩니다. persistent시스템에서 찾은 내용을 확인하세요.

관련 정보