
저는 2016 DP950 미니 USB 숫자 키패드 컴팩트 키보드를 가지고 있습니다. 이것은 2줄 x 16자 LCD 화면과 USB 커넥터가 있는 숫자 키패드입니다.
Linux(또는 Windows나 Mac)에서 화면에 메시지를 쓸 수 있기를 원합니다.
키보드가 제대로 작동합니다. 장치를 연결하고 예상한 대로 문자를 보내면 장치가 키보드로 나타납니다.
그러나 장치는 USB 키보드로만 표시되므로(USB 직렬 장치일 수 있기를 바랐지만 그렇지 않습니다) 화면에 쓰는 것이 더 까다로워 보입니다.
그것이 나타나면 화면에 "비밀번호:"라고 표시되고 키를 입력하면 "*"가 표시됩니다(비록 키가 올바르게 전송됨). 비밀번호가 무엇인지, 어떻게 설정하는지 모르겠습니다. USB 시스템은 일종의 바코드 리더라고 주장하지만 그렇지 않습니다.
빠른 생각: /sys 계층 구조를 둘러보았지만 화면 메시지를 작성할 수 있는 항목을 찾을 수 없었습니다.
멍청한 생각: Linux USB 시스템이 이를 USB 직렬 장치로 취급하도록 설득할 수 있습니까? 그럴 가능성은 거의 없으며 USB 장치에 대한 나의 지식은 제한되어 있습니다. 장치 자체는 어떤 종류의 드라이버가 필요한지 알려주고 USB 키보드 드라이버는 USB 직렬 드라이버에서 백만 마일 떨어져 있습니다.
오프트랙 아이디어: CTAPI를 사용할 수 있나요? 실제로 카드 리더는 아니지만 비슷하게 생겼습니다. Chipcard CTAPI Perl 스크립트를 사용했는데 연결할 장치를 찾을 수 없었습니다(USB 포트 번호를 묻는 것 같았습니다. 그게 뭐였죠!?).
복잡한 아이디어: 내부 프로세서가 무엇인지, JTAG 프로그래밍이 가능한지 알아보십시오. 문서를 찾을 수 없기 때문에 이것은 실현 가능하지 않은 것 같습니다.
하드웨어 해킹: 화면 내부에 16방향 IDC 커넥터가 있습니다(어떤 유형인지는 알 수 없지만). 무언가를 연결할 수 있는 16x2 LCD 화면과 통신하는 공통 표준이 있습니까?
단서가 있는 경우 관련 결과는 다음과 같습니다.
고양이 /proc/버스/입력/장치
I: Bus=0003 Vendor=13ba Product=0018 Version=0110
N: Name="Barcode Reader "
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input10
U: Uniq=
H: Handlers=kbd event9
B: EV=120013
B: KEY=10000 7 ff800000 7ff febeffdf f3cfffff ffffffff fffffffe
B: MSC=10
B: LED=7
lsusb -v
Bus 003 Device 004: ID 13ba:0018 PCPlay Barcode PCP-BCG4209
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x13ba PCPlay
idProduct 0x0018 Barcode PCP-BCG4209
bcdDevice 0.01
iManufacturer 0
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 400mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 62
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 2
답변1
/dev/input/by-path/xxxxx-event-kbd
이를 위해 HID 장치 경로를 사용하고 있습니다 . 이 경로는 장치 재설정 또는 장치 시스템 이벤트 변경 후에 작동합니다. 그러나 USB 인터페이스를 124번 재설정한 후 시스템에 버스 문제가 발생했습니다. 그래서 매일 버스나 시스템을 다시 시작해야 합니다.