2012-10-30 2 views
1

USB 장치의 장치 노드 (예 :/dev/sdb)를 가져 오려고합니다.libusb API를 사용하여 USB 장치의 장치 노드를 가져 오는 방법이 있습니까?

USB 장치가 연결된 특정 장치 노드를 제공하는 libusb API가 있는지 궁금합니다.

API가없는 경우이를 달성하기위한 다른 대체 수단이 있습니까? 이것에 대한 통찰력은 정말 도움이 될 것입니다.

미리 감사드립니다.

+1

무슨 배포판을 사용하십니까? –

답변

0

Linux에서는 연결된 USB 장치와 해당 속성을 탐색하는 가장 쉬운 방법은 단순히 /sys/bus/usb/devices 디렉터리를 검색하는 것입니다. 이 가상 디렉터리에는 연결된 모든 장치가 나열됩니다. 각 항목은 매우 간단한 구조로되어 있으며 슬레이브가 연결된 모든 장치 (허브를 통해 연결된 장치와 같은)에는 가상 하위 디렉토리가 있습니다. 일반적으로 제조업체 또는 일련 번호와 같은 많은 장치 속성을 읽으려면 루트 일 필요가 없습니다.

이 인터페이스의 또 다른 특성은 반 안정적이라는 것입니다. 즉, 모든 장치는 a-b.c.d.e:x.y (a - 버스 번호, b, c - 루트 허브, 다음 허브, 포트 등), x, y - 함수, 하위 함수와 같은 고유 한 ID를 가지며이 장치 열거 형이 갑자기 나타나지 않습니다 하나의 장치가 연결되거나 연결이 끊어지면 모든 장치에 대해 이동하십시오.

또한 이러한 장치 ID를 libusb 스타일 버스/장치 번호로 쉽게 매핑 할 수 있지만 안정적이지는 않습니다.

불행히도, 이것은 Linux에만 해당되며 다른 운영 체제에서는 사용할 수없는 것 같습니다. libusb가 이런 식으로 구현했으면 좋겠지 만 그렇지 않습니다. 어쨌든 행운을 빈다.

관련 문제