On Sun, May 04, 2014 at 06:11:41PM +0200, Martin Pieuchot wrote: > In December 2012 a user reported on misc@ that the Noppoo Mini Choc > 84 USB keyboard does not work on OpenBSD [0]. More recently, mcbride@ > and yasuoka@ contacted me because they have a mouse that is not properly > recognized. Both issues are related to our HID descriptor parser.
The chinese Rapoo V7 keyboard now works with this patch. At the time, I asked for something in: http://marc.info/?l=openbsd-tech&m=135941037714276&w=2 The dmesg follows: OpenBSD 5.5-current (GENERIC) #4: Mon May 5 04:08:16 BRT 2014 [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC real mem = 1687670784 (1609MB) avail mem = 1634091008 (1558MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xec710 (45 entries) bios0: vendor American Megatrends Inc. version "X401U.313" date 05/14/2013 bios0: ASUSTeK COMPUTER INC. X401U acpi0 at bios0: rev 2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP APIC FPDT MCFG ECDT HPET SSDT SSDT MSDM acpi0: wakeup devices SBAZ(S4) OHC1(S4) EHC1(S4) OHC2(S4) EHC2(S4) OHC3(S4) EHC3(S4) OHC4(S4) XHC0(S4) XHC1(S4) PE20(S4) PE21(S4) GLAN(S4) PE22(S4) PE23(S4) SLPB(S4) acpitimer0 at acpi0: 3579545 Hz, 32 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD C-70 APU with Radeon(tm) HD Graphics, 998.31 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB 64b/line 16-way L2 cache cpu0: 8 4MB entries fully associative cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 199MHz cpu at mainbus0: not configured ioapic0 at mainbus0: apid 3 pa 0xfec00000, version 21, 24 pins acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255 acpiec0 at acpi0 acpihpet0 at acpi0: 14318180 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus 3 (PE20) acpiprt2 at acpi0: bus 6 (PE21) acpiprt3 at acpi0: bus -1 (PE22) acpiprt4 at acpi0: bus 7 (PE23) acpiprt5 at acpi0: bus -1 (BR15) acpiprt6 at acpi0: bus -1 (PCE7) acpiprt7 at acpi0: bus -1 (PCE8) acpiprt8 at acpi0: bus 1 (BR14) acpicpu0 at acpi0: C2, PSS acpitz0 at acpi0: critical temperature is 95 degC acpiac0 at acpi0: AC unit online acpibat0 at acpi0: BAT0 model "X401-44" serial type LIon oem "ASUSTek" acpibtn0 at acpi0: PWRB acpibtn1 at acpi0: LID_ acpibtn2 at acpi0: SLPB acpivideo0 at acpi0: VGA_ cpu0: 998 MHz: speeds: 1000 800 MHz pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "AMD AMD64 14h Host" rev 0x00 radeondrm0 at pci0 dev 1 function 0 "ATI Radeon HD 7290" rev 0x00 drm0 at radeondrm0 radeondrm0: msi azalia0 at pci0 dev 1 function 1 "ATI Radeon HD 6310 HD Audio" rev 0x00: msi azalia0: no supported codecs ppb0 at pci0 dev 4 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi pci1 at ppb0 bus 1 "AMD Hudson-2 xHCI" rev 0x03 at pci0 dev 16 function 0 not configured ahci0 at pci0 dev 17 function 0 "AMD Hudson-2 SATA" rev 0x40: msi, AHCI 1.3 scsibus1 at ahci0: 32 targets sd0 at scsibus1 targ 0 lun 0: <ATA, Hitachi HTS54505, GG2O> SCSI3 0/direct fixed naa.5000cca700c3196d sd0: 476940MB, 512 bytes/sector, 976773168 sectors ohci0 at pci0 dev 18 function 0 "AMD Hudson-2 USB" rev 0x11: apic 3 int 18, version 1.0, legacy support ehci0 at pci0 dev 18 function 2 "AMD Hudson-2 USB2" rev 0x11: apic 3 int 17 usb0 at ehci0: USB revision 2.0 uhub0 at usb0 "AMD EHCI root hub" rev 2.00/1.00 addr 1 ohci1 at pci0 dev 19 function 0 "AMD Hudson-2 USB" rev 0x11: apic 3 int 18, version 1.0, legacy support ehci1 at pci0 dev 19 function 2 "AMD Hudson-2 USB2" rev 0x11: apic 3 int 17 usb1 at ehci1: USB revision 2.0 uhub1 at usb1 "AMD EHCI root hub" rev 2.00/1.00 addr 1 piixpm0 at pci0 dev 20 function 0 "AMD Hudson-2 SMBus" rev 0x14: polling iic0 at piixpm0 piixpm0: exec: op 1, addr 0x18, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x19, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x1a, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x1b, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x1c, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x1d, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x1e, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x1f, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x20, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x21, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x22, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x23, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x24, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x25, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x26, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x27, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x28, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x29, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x2a, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x2b, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x2c, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x2d, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x2e, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x2f, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x48, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x49, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x4a, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x4b, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x4c, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x4d, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x4e, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x50, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x51, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x52, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x53, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x54, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x55, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x56, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> piixpm0: exec: op 1, addr 0x57, cmdlen 1, len 0, flags 0x08: timeout, status 0xf<BUSY,INTR,DEVERR,BUSERR> pciide0 at pci0 dev 20 function 1 "AMD Hudson-2 IDE" rev 0x00: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility azalia1 at pci0 dev 20 function 2 "AMD Hudson-2 HD Audio" rev 0x01: apic 3 int 16 azalia1: codecs: Realtek/0x0270 audio0 at azalia1 pcib0 at pci0 dev 20 function 3 "AMD Hudson-2 LPC" rev 0x11 ppb1 at pci0 dev 20 function 4 "AMD Hudson-2 PCI" rev 0x40 pci2 at ppb1 bus 2 sdhc0 at pci0 dev 20 function 7 "AMD Hudson-2 SD Host Controller" rev 0x00: apic 3 int 16 sdhc0 at 0x10: can't map registers ppb2 at pci0 dev 21 function 0 "AMD Hudson-2 PCIE" rev 0x00: msi pci3 at ppb2 bus 3 ppb3 at pci0 dev 21 function 1 "AMD Hudson-2 PCIE" rev 0x00 pci4 at ppb3 bus 6 re0 at pci4 dev 0 function 0 "Realtek 8168" rev 0x07: RTL8168E/8111E-VL (0x2c80), msi, address ac:22:0b:d9:2c:26 rgephy0 at re0 phy 7: RTL8169S/8110S PHY, rev. 5 ppb4 at pci0 dev 21 function 3 "AMD Hudson-2 PCIE" rev 0x00 pci5 at ppb4 bus 7 "Atheros AR9485" rev 0x01 at pci5 dev 0 function 0 not configured pchb1 at pci0 dev 24 function 0 "AMD AMD64 14h Link Cfg" rev 0x43 pchb2 at pci0 dev 24 function 1 "AMD AMD64 14h Address Map" rev 0x00 pchb3 at pci0 dev 24 function 2 "AMD AMD64 14h DRAM Cfg" rev 0x00 km0 at pci0 dev 24 function 3 "AMD AMD64 14h Misc Cfg" rev 0x00 pchb4 at pci0 dev 24 function 4 "AMD AMD64 14h CPU Power" rev 0x00 pchb5 at pci0 dev 24 function 5 "AMD AMD64 14h Reserved" rev 0x00 pchb6 at pci0 dev 24 function 6 "AMD AMD64 14h NB Power" rev 0x00 pchb7 at pci0 dev 24 function 7 "AMD AMD64 14h Reserved" rev 0x00 usb2 at ohci0: USB revision 1.0 uhub2 at usb2 "AMD OHCI root hub" rev 1.00/1.00 addr 1 usb3 at ohci1: USB revision 1.0 uhub3 at usb3 "AMD OHCI root hub" rev 1.00/1.00 addr 1 isa0 at pcib0 isadma0 at isa0 pckbc0 at isa0 port 0x60/5 pckbd0 at pckbc0 (kbd slot) pckbc0: using irq 1 for kbd slot wskbd0 at pckbd0: console keyboard pms0 at pckbc0 (aux slot) pckbc0: using irq 12 for aux slot wsmouse0 at pms0 mux 0 pms0: Elantech Clickpad, version 4, firmware 0x361f01 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 uvideo0 at uhub1 port 2 configuration 1 interface 0 "04081-00023100GJ313A00GLW USB Camera" rev 2.00/0.04 addr 2 video0 at uvideo0 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (09b10667b2210bcd.a) swap on sd0b dump on sd0b drm: initializing kernel modesetting (PALM 0x1002:0x980A 0x1043:0x14B7). radeondrm0: VRAM: 384M 0x0000000000000000 - 0x0000000017FFFFFF (384M used) radeondrm0: GTT: 512M 0x0000000018000000 - 0x0000000037FFFFFF drm: PCIE GART of 512M enabled (table at 0x0000000000040000). drm: Internal thermal controller without fan control radeondrm0: 1366x768 wsdisplay0 at radeondrm0 mux 1: console (std, vt100 emulation), using wskbd0 wsdisplay0: screen 1-5 added (std, vt100 emulation) uhidev0 at uhub2 port 1 configuration 1 interface 0 "Holtek USB Gaming Keyboard" rev 1.10/2.10 addr 2 uhidev0: iclass 3/1 ukbd0 at uhidev0: 8 variable keys, 6 key codes wskbd1 at ukbd0 mux 1 wskbd1: connecting to wsdisplay0 uhidev1 at uhub2 port 1 configuration 1 interface 1 "Holtek USB Gaming Keyboard" rev 1.10/2.10 addr 2 uhidev1: iclass 3/0, 6 report ids ums0 at uhidev1 reportid 1: 5 buttons, Z dir wsmouse1 at ums0 mux 0 uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0 uhid1 at uhidev1 reportid 3: input=2, output=0, feature=0 ukbd1 at uhidev1 reportid 4: 56 variable keys, 0 key codes wskbd2 at ukbd1 mux 1 wskbd2: connecting to wsdisplay0 ukbd2 at uhidev1 reportid 5: 56 variable keys, 0 key codes wskbd3 at ukbd2 mux 1 wskbd3: connecting to wsdisplay0 uhid2 at uhidev1 reportid 6: input=2, output=0, feature=0 uhidev2 at uhub2 port 1 configuration 1 interface 2 "Holtek USB Gaming Keyboard" rev 1.10/2.10 addr 2 uhidev2: no input interrupt endpoint -- db
