Linux는 USB 마이너 장치 번호를 재사용할 시기를 어떻게 결정합니까?

Linux는 USB 마이너 장치 번호를 재사용할 시기를 어떻게 결정합니까?

USB 장치가 Linux에 연결되면 커널은 해당 장치에 부 장치 번호(Linux에서는 0 /dev/ttyUSB0)를 할당합니다. 장치가 있는 경우 /dev/ttyUSB0해당 장치를 제거하고 새 USB 장치를 연결하면 새 장치에 다른 장치 번호가 부여되는 것 같습니다 . 그러나 충분히 오래 기다리거나 장치를 충분히 추가하면 장치 번호가 0이 됩니다. 커널은 장치 번호 0을 재사용할 시기를 어떻게 결정합니까?

자세한 내용: 서버에 많은 수의 USB 장치가 연결되어 있으며 보조 장치 번호를 사용하여 이를 추적합니다. 새 장치가 추가되는 시기와 이전 장치가 제거되는 시기를 감지하고 싶습니다. 새 장치에 제거된 기존 장치와 동일한 장치 번호가 할당되면 장치가 교체되었는지 알 수 없을까 걱정됩니다.

답변1

내 질문에 반쯤 대답하겠습니다. 장치 번호를 재사용하는 방법에 대한 명확한 문서를 찾을 수 없었지만 장치에 더 고유한 번호를 할당하는 방법을 찾았습니다.

비결은 다음 규칙과 같은 문을 사용하여 난수를 생성하는 것 udev입니다 .IMPORT

KERNEL=="ttyUSB*", IMPORT{program}="/bin/bash -c 'echo FOORAND=$RANDOM'", SYMLINK+="my-device-%n-%E{FOORAND}"

예를 들어 ttyUSB 장치에 대한 심볼릭 링크가 생성됩니다 /dev/my-device-0-3853. 새 장치가 추가되면 새 임의 번호가 부여됩니다.

%n언제든지 존재하는 심볼릭 링크가 활성화되도록 커널 번호( )와 난수를 포함합니다.언제나고유한.

관련 정보