USB 장치가 Linux에 연결되면 커널은 보조 장치 번호 (예 :에서 0 /dev/ttyUSB0
)를 할당합니다 . 에 장치가있는 경우 장치를 /dev/ttyUSB0
제거하고 새 USB 장치를 연결하면 새 장치에 고유 한 장치 번호가 부여되는 것 같습니다. 하지만 충분히 오래 기다리거나 장치를 충분히 추가하면 결국 장치 번호 0이 주어집니다. 커널은 장치 번호 0을 재사용 할시기를 어떻게 결정합니까?
더 많은 컨텍스트를 위해 : 서버에 연결된 많은 USB 장치가 있고 보조 장치 번호를 사용하여이를 추적하고 있습니다. 새 장치가 추가되고 이전 장치가 제거되는시기를 감지하고 싶습니다. 새 장치에 제거 된 이전 장치와 동일한 장치 번호가 할당 될 수 있다면 장치가 교체되었는지 알 수 없을까 걱정됩니다.
내 질문에 반쯤 대답하겠습니다. 장치 번호가 재사용되는 방법에 대한 명확한 문서를 찾을 수는 없지만 장치에 더 고유 한 번호를 할당하는 방법을 찾았습니다.
트릭은 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
한 번에 존재하는 심볼릭 링크가 항상 고유 하도록 커널 번호 ( )와 난수도 포함됩니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다