미니 USB 키보드/화면으로 출력

미니 USB 키보드/화면으로 출력

저는 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번 재설정한 후 시스템에 버스 문제가 발생했습니다. 그래서 매일 버스나 시스템을 다시 시작해야 합니다.

관련 정보