Ubuntu 16.04에서 Wacom STU-530 장치를 사용하는 동안 매우 이상한 문제가 발생했습니다.
태블릿을 포트에 연결하면 드라이버를 로드할 때 USB 1.1(매우 느림)로 부팅됩니다.Oce-PCI
[ 230.708046] usb 4-1: new full-speed USB device number 3 using ohci-pci
[ 230.883203] usb 4-1: New USB device found, idVendor=056a, idProduct=00a5
[ 230.883217] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 230.883226] usb 4-1: Product: STU-530
[ 230.883234] usb 4-1: Manufacturer: Wacom Co.,Ltd.
[ 230.883242] usb 4-1: SerialNumber: 8LZQ000683
[ 230.896179] input: Wacom Co.,Ltd. STU-530 Pen as /devices/pci0000:00/0000:00:12.0/usb4/4-1/4-1:1.0/0003:056A:00A5.0009/input/input20
[ 230.896691] wacom 0003:056A:00A5.0009: hidraw2: USB HID v1.10 Device [Wacom Co.,Ltd. STU-530] on usb-0000:00:12.0-1/input0
하지만 대신 (매우 저렴한 USB 허브)를 연결한 다음 태블릿을 USB 허브에 연결하면 올바른 드라이버가ehci-pciUSB 2.0에서 구성 및 실행되는 태블릿:
[ 335.120117] usb 1-1.1: new full-speed USB device number 5 using ehci-pci
[ 335.214488] usb 1-1.1: New USB device found, idVendor=056a, idProduct=00a5
[ 335.214501] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 335.214511] usb 1-1.1: Product: STU-530
[ 335.214519] usb 1-1.1: Manufacturer: Wacom Co.,Ltd.
[ 335.214527] usb 1-1.1: SerialNumber: 8LZQ000683
[ 335.221870] input: Wacom Co.,Ltd. STU-530 Pen as /devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1.1/1-1.1:1.0/0003:056A:00A5.000A/input/input23
[ 335.222255] wacom 0003:056A:00A5.000A: hidraw2: USB HID v1.10 Device [Wacom Co.,Ltd. STU-530] on usb-0000:00:12.2-1.1/input0
태블릿 연결시 ehci-pci를 강제로 사용하게 하는 방법이 있나요? udev를 사용할까요?
PD: 이 장치는 다른 컴퓨터에서도 문제 없이 2.0을 실행합니다.
추가 정보:
DemoButtons(Java)를 구현 중입니다.와콤 SDK. 창을 열고 태블릿과 상호 작용할 수 있습니다.
사례:
1) 태블릿을 "PC"에 직접 연결하면 소프트웨어가 실행되지 않고 LIBUSB -99 오류로 종료됩니다.
2) 저렴한 USB 2.0 허브를 통해 태블릿을 연결하면 소프트웨어가 문제 없이 실행됩니다.
3) 컴퓨터에는 USB 3.0 포트(2개/2개)가 있습니다. 해당 포트에 대한 처음 두 테스트를 반복했는데 태블릿은 중앙에 있는 허브에서만 작동합니다.
태블릿을 3.0 포트에 연결하면 BUS Class = root_hub with driver xhci_hcd
장치는 처리되지만 드라이버에서는 처리되지 않습니다 usbhid / 12M
(따라서 장치는 여전히 USB 1.1입니다).
내부 시간 제한을 변경하여 Wacom 소프트웨어를 수정했습니다.LIBUSB_BULK_TRANSFER따라서 태블릿이 직접 연결되어 있든 허브를 통해 연결되어 있든 소프트웨어는 올바르게 실행됩니다.
문제는 이 하드웨어에서 장치가 느리게 실행되는 이유를 이해할 방법을 찾아야 한다는 것입니다. 왜냐하면 3000대의 컴퓨터 중 약 350대의 컴퓨터에서만 이 오류가 발생하고 모든 컴퓨터가 동일한 모델, 동일한 버전, 동일한 공급업체이기 때문입니다. , 동일한 운영 체제(예: 클론).
특정 칩셋이나 낮은 품질의 USB 칩셋과 관련이 있을까요?
hwinfo, lsusb, lsusb -t의 모든 정보는 컴퓨터 전체에서 동일합니다(vimdiff를 통해 비교).
알아요:
- libusb_bulk_transfer가 느리게 실행됩니다(알 수 없는 이유로).
- 장치가 분명히 2.0 모드에서 작동하는 동안 운영 체제는 장치를 USB 1.1로 처리합니다.
- 동일한 하드웨어/소프트웨어를 사용하는 약 3,000대의 PC 중 약 350대에서만 이 오류가 발생합니다. (동일한 BIOS 버전/동일한 운영 체제 및 소프트웨어가 설치됨).
인사.
중.
답변1
첫째, 이 동작의 원인은 USB에 특정한 것으로 보입니다. kernel.org(여기)은 다음과 같이 규정됩니다.
USB 1.1 장치가 USB 2.0 허브에 연결되면 허브의 "트랜잭션 변환기"(TT)를 통해 EHCI 컨트롤러와 상호 작용합니다. TT는 저속 또는 최고 속도 트랜잭션을 고속 "분할 트랜잭션"으로 변환합니다. 전송은 대역폭을 낭비하지 않습니다.
블랙리스트에 추가할 수 있는 특정 USB 1.0 모듈이 없으므로(USB 2.0은 USB 1.1 장치를 처리함) 이는 옵션이 아닙니다.
제품 페이지에는 장치가 USB 2라고 명시되어 있습니다. (여기) 장치가 USB 3이 아니기 때문에 먼저 모든 모듈을 언로드하고 XHCI를 로드하여 장치를 가져오도록 할 수는 없습니다.
시도해보세요: udevadm 트리거를 실행하고 올바르게 인식되는지 확인하세요.
그리고 저의 노력에 대해 엄지손가락을 치켜세우는 것도 잊지 마세요! :피
답변2
흠... 나는 많은 것을 시도했습니다:
- 추가 매개변수를 사용하여 Java를 실행하여 애플리케이션이 올바르게 실행되는지 확인하세요.
- 장치의 BIOS를 업데이트해 보십시오(그러나 너무 오래되어업데이트 없음)
- udev를 사용하여 ohci 드라이버를 비활성화하는 방법을 찾고 있지만 장치가 인식되지 않거나 다른 드라이버가 사용됩니다. (*HCD 내장 모듈을 만들어도 의미가 없고 결과는 똑같습니다)
마침내 나는 포기하고 해결 방법을 찾기 위해 libusb를 사용한 USB 대량 작업을 위해 libwgssSTU.so 드라이버에 시간 제한을 설정했습니다. Wacom 데모 버튼은 다음 설정으로 인해 실패합니다.
EncodingMode.EncodingMode_24bit_Bulk
나는 우리 베이스(동료와 함께 일하고 있음)를 JIRA의 Wacom 개발자 지원팀에 전달했으며 그들은 소스 코드에 변경 사항을 추가할 것입니다.libwgssSTU.so드라이버, 새 드라이버는 잘 작동하지만 이 특정 하드웨어에서는 2~3초의 지연이 필요합니다.
소프트웨어가 컴퓨터에서 무작위로 1/60, 1/30 또는 1/45로 실행되는 이유를 알 수 없지만 적어도 해결 방법을 찾았습니다.