2016-05-31 3 views

답변

1

주로 USB 장치의 상태에 대한 혼동을 피하기 위해. 각 인터페이스는 주어진 시간에 오직 하나의 "사용자"만 가질 수 있습니다.

많은 USB 장치가 서로 다른 실행 도메인, 캐시 상태, DMA 전송 등을 입력 할 수 있습니다. 이러한 종류의 장치는 드라이버에 상태 머신 추적기가 있으며 동기화 또는 다른 유형의 갈등. 모든 장치가 단순한 HID 인터페이스 (다른 API의 btw를 통해 조작 될 수 있음)가 아닙니다.

+0

나는 진짜 글로벌 리눅스 제한에 관한 첫 번째. 커널 드라이버를 우회하여 문제를 일으키는 것을 방지하기위한 예방책이라는 사실을 감안할 때, 나는 userland usb linux ioctls https://www.kernel.org/doc/htmldocs/usb/usbfs-ioctl.html을 커널 드라이버를 방해하지 않도록합니다 (ftdi_sio 커널 드라이버를 사용하는 FTDI usb/직렬 변환기 장치). 커널 드라이버를 떼어내는 단점은 udev 이벤트를 생성하여 내 경우에 문제가 발생한다는 것입니다. (사용하고있는 동안 장치가 사라질 것이라고 기대하지 않습니다 ...). –

0

통신을 위해 각 USB 장치에는 끝점이 있습니다. 이 끝점은 파이프와 같으며이 파이프에서 모든 데이터가 트래 피킹됩니다.

하나의 끝점은 방향이 하나뿐이므로 드라이버 한 명만 사용할 수 있습니다.

따라서 이러한 끝점을 사용할 수있게하려면 커널 드라이버를 분리해야합니다.

커널 드라이버 분리를 피하기 위해 장치를 사용하는 드라이버를 항상 감지하고 비활성화 할 수 있습니다.

관련 문제