왜 libusb를 사용하려면 커널 드라이버를 분리해야합니까? 커널 드라이버와 함께 일부 USB IO를 수행 할 수없는 이유는 무엇입니까?왜 libusb를 사용하려면 커널 드라이버를 분리해야합니까?
2
A
답변
1
주로 USB 장치의 상태에 대한 혼동을 피하기 위해. 각 인터페이스는 주어진 시간에 오직 하나의 "사용자"만 가질 수 있습니다.
많은 USB 장치가 서로 다른 실행 도메인, 캐시 상태, DMA 전송 등을 입력 할 수 있습니다. 이러한 종류의 장치는 드라이버에 상태 머신 추적기가 있으며 동기화 또는 다른 유형의 갈등. 모든 장치가 단순한 HID 인터페이스 (다른 API의 btw를 통해 조작 될 수 있음)가 아닙니다.
0
통신을 위해 각 USB 장치에는 끝점이 있습니다. 이 끝점은 파이프와 같으며이 파이프에서 모든 데이터가 트래 피킹됩니다.
하나의 끝점은 방향이 하나뿐이므로 드라이버 한 명만 사용할 수 있습니다.
따라서 이러한 끝점을 사용할 수있게하려면 커널 드라이버를 분리해야합니다.
커널 드라이버 분리를 피하기 위해 장치를 사용하는 드라이버를 항상 감지하고 비활성화 할 수 있습니다.
관련 문제
- 1. 왜 문자열을 분리해야합니까?
- 2. 사용자 정의 WIN 커널 드라이버를 실행 중
- 3. 리눅스 커널 빌드 중 uneccesary 드라이버를 제거합니다.
- 4. ftdi 커널 드라이버를 Android에서 분리하는 방법은 무엇입니까?
- 5. 테이블을 분리해야합니까?
- 6. 서비스간에 흐름과 데이터를 분리해야합니까?
- 7. libusb를 내 프로젝트에 연결
- 8. libusb를 -1.0 libusb_get_device_list() 실패
- 9. libusb를 설치하는 방법?
- 10. Linux 커널 모듈 : 단일 드라이버를 사용하여 여러 장치 파일 처리
- 11. ftrace에서 리눅스 커널 기능을 사용하려면 어떻게해야합니까?
- 12. 파이썬에서 리눅스 커널 모듈을 가져오고 사용하려면 어떻게해야합니까?
- 13. 왜 syscall을 커널 모드로 전환해야합니까?
- 14. 왜 커널 모드에서의 디버깅이 어렵습니까?
- 15. 인증 오류없이 응용 프로그램을 실행하려면 왜 데이터베이스를 VS에서 분리해야합니까?
- 16. PC에서 장치를 분리해야합니까?
- 17. 평균 스택 - 서버를 분리해야합니까?
- 18. 데이터베이스의 중복 데이터를 분리해야합니까?
- 19. Facade Class에서 데이터를 분리해야합니까?
- 20. 비즈니스 로직을 모델과 분리해야합니까?
- 21. 왜 디버깅을 사용하려면 web.config를 수정해야합니까?
- 22. 편리한 방법을 사용하려면 왜 사용해야합니까?
- 23. libusb를 android-ndk로 우분투에 설치하십시오.
- 24. 왜 리눅스 커널 업그레이드 후 VM웨어 커널 모듈을 다시 컴파일해야합니까?
- 25. 안드로이드 커널은 우리 팀에서 안드로이드 커널 드라이버를 개발하는 방법
- 26. Android, 커널 또는 플랫폼에서 드라이버를 제공하는 사람은 누구입니까?
- 27. MCP7941X rtc linux 커널 드라이버를 추가하는 방법은 무엇입니까?
- 28. 내부에서 Windows 커널 모드 드라이버를 언로드하는 방법은 무엇입니까?
- 29. Windows 커널 드라이버를 통해 사용자 공간 스레드 예약
- 30. 모듈로 컴파일되지 않은 Linux 커널 드라이버를 수정하는 방법은 무엇입니까?
나는 진짜 글로벌 리눅스 제한에 관한 첫 번째. 커널 드라이버를 우회하여 문제를 일으키는 것을 방지하기위한 예방책이라는 사실을 감안할 때, 나는 userland usb linux ioctls https://www.kernel.org/doc/htmldocs/usb/usbfs-ioctl.html을 커널 드라이버를 방해하지 않도록합니다 (ftdi_sio 커널 드라이버를 사용하는 FTDI usb/직렬 변환기 장치). 커널 드라이버를 떼어내는 단점은 udev 이벤트를 생성하여 내 경우에 문제가 발생한다는 것입니다. (사용하고있는 동안 장치가 사라질 것이라고 기대하지 않습니다 ...). –