이 질문은 두 가지입니다.
먼저 USB 장치에서 드라이버를 수동으로 분리하고 다른 장치를 어떻게 연결합니까? 예를 들어, 연결되면 자동으로 usb-storage 드라이버를 사용하는 장치가 있습니다.
usbview 출력
Vendor Id: xxxx
Product Id: xxxx
...
Number of Interfaces: 2
Interface Number: 0
Name: usb-storage
Number of Endpoints: 2
...
Interface Number: 1
Name: (none)
Number of Endpoints: 2
...
usb-storage 드라이버를 사용하고 싶지 않으므로 내 응용 프로그램에서 libusb
라이브러리를 사용 하여 usb-storage 드라이버를 분리 한 다음 인터페이스를 요구합니다. 그런 다음 USB 장치와 호스트 Linux 시스템에서 실행되는 응용 프로그램과 데이터를주고받을 수 있습니다.
응용 프로그램 외부에서 드라이버를 수동으로 어떻게 분리합니까?
둘째, 장치 플러그인에 연결할 드라이버를 자동으로 할당하는 방법은 무엇입니까? 현재 장치 권한을 자동으로 설정하는 udev 규칙 설정이 있습니다.
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
udev 규칙을 사용하여 USB 장치의 특정 인터페이스에 드라이버를 할당 할 수 있습니까? 예를 들어, usb-storage 대신 인터페이스 0에서 usbnet 모듈을 자동으로 사용하려면 udev에서 가능합니까?
usbnet
은 사용할 수있는 하드웨어에 대한 정보가 없기 때문에 자동으로로드되지 않습니다. 적절한 드라이버를 찾아서 사용하십시오 (예 :) modinfo kalmia
. 에 alias
선 당신은 공급 업체 ID XXXX 및 제품 ID YYYY를로 볼 수 있습니다 usb:vxxxxpyyyy
. 또는 /lib/modules/kernel_version/modules.usbmap 파일을 편집 할 수 있으며 HW의 경우 줄을 삭제할 수 있습니다. HW 모듈의 USB 저장소 또는 올바른 net 드라이버로 usbstorage를 변경할 수 있습니다. 그러나이 depmod -a
변화 후에 사라질 것입니다.