프린터 용 Linux 드라이버를 작성하려고합니다. Windows XP에서 USBSnoop을 실행하고 로그를 얻었습니다. 이 로그에서 wMaxPacketSize를 1026으로 설정합니다. 인터페이스를 설정 한 후 75 바이트의 응답을받습니다. 64로 설정하면 (lsusb 출력에서) 분명히 64 바이트 만 다시 얻습니다.LibUSB 드라이버 문제 : 시간 초과
내 문제는 장치로/장치에서 대량 전송할 때 시간 초과가 발생합니다. 나는 여기에 같은 문제가 있다고 생각한다 : http://libusb.6.n5.nabble.com/libusb-bulk-transfer-return-timeout-error-and-transferred-set-to-0-td5712761.html
나는 libusb_clear_halt()를 수행했고 위의 링크 된 게시물과 비슷한 결과를 얻었다. 아래쪽에 "64 바이트 수동 버퍼"라는 메시지가 표시됩니다. 내 질문은 어떻게 패킷을 분할하는 것입니다? 이것은 LibUSB를 처음 사용하는 것입니다. 여기
는 lsusb의 출력이Bus 002 Device 009: ID 07ce:c000
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 7 Printer
bDeviceSubClass 1 Printer
bDeviceProtocol 2 Bidirectional
bMaxPacketSize0 64
idVendor 0x07ce
idProduct 0xc000
bcdDevice 1.00
iManufacturer 1 COPAL
iProduct 2 COPAL USB Printer
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 200mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 0.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 0
bNumConfigurations 0
Device Status: 0x0001
Self Powered
편집
을 -v입니다 : 이것은 dmesg를usb 2-1.1: new high-speed USB device number 9 using ehci_hcd
usb 2-1.1: config 1 interface 0 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
usb 2-1.1: config 1 interface 0 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64
에서 편집했다 : 나는 그 리눅스는 방법으로지고있을 수 있습니다 생각합니다. wireshark 및 패킷을 올바르게 돌아올 내 콜백 함수를 호출하지 볼 수 있습니다. 이미 usblp 드라이버를 제거했습니다. 어떤 아이디어?
이 문제의 맨 아래에 도착했습니다. 비슷한 문제가 있습니다. – bph
아니요 : /주의를 산만하게하고 다른 것을 시작했습니다. –