Hello Benjamin,

On 17/01/15(Sat) 22:40, Benjamin Baier wrote:
> >Synopsis:    usbhidctl(1) -l does not work/loop
> >Category:    user
> >Environment:
>       System      : OpenBSD 5.7
>       Details     : OpenBSD 5.7-beta (GENERIC.MP) #0: Fri Jan 16 17:26:49 CET 
> 2015
>                        
> b...@x220.home.netzbasis.de:/git/hellfish/src/sys/arch/amd64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
> >Description:
> $ usbhidctl -f /dev/uhid1 -l          
> usbhidctl: Unexpected response length: 2 != 3
> 
> disabling length check (like in usbhidaction(1)) gives

The lengths are different because hid_report_size() adds one for the
reportID but the kernel skips it.

Could you try the diff below it should fix that.  It also include a
commented out check for usbhidaction(1) that I guess is the same
problem.  Do you also use usbhidaction(1)?  Could you try?

> $ usbhidctl -f /dev/uhid1 -l 
> Mute=1
> usbhidctl: Excessive collection ends

This is more interesting.  Could you send me the output of "lsusb -v"
for your device?  You'll find lsusb(1) in the package "usbutils".

Thanks,
Martin

> $ usbhidctl -f /dev/uhid1 -l 
> Volume_Increment=1
> Unassigned=1
> Volume_Decrement=1
> Unassigned=1
> Volume_Increment=1
> Unassigned=1
> Mute=1
> Unassigned=1
> Mute=1
> Unassigned=1
> ^C
> 
> >How-To-Repeat:
> >Fix:
> Index: usbhid.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/usbhidctl/usbhid.c,v
> retrieving revision 1.11
> diff -u -p -r1.11 usbhid.c
> --- usbhid.c  27 Nov 2013 00:13:23 -0000      1.11
> +++ usbhid.c  17 Jan 2015 21:05:31 -0000
> @@ -599,9 +599,11 @@ devloop(int hidfd, report_desc_t rd, str
>               readlen = read(hidfd, dbuf, dlen);
>               if (readlen < 0)
>                       err(1, "Device read error");
> +#if 0
>               if (dlen != (size_t)readlen)
>                       errx(1, "Unexpected response length: %lu != %lu",
>                            (unsigned long)readlen, (unsigned long)dlen);
> +#endif
>  
>               collind = 0;
>               hdata = hid_start_parse(rd, 1 << hid_input, reportid);
> @@ -613,15 +615,7 @@ devloop(int hidfd, report_desc_t rd, str
>  
>                       switch (hitem.kind) {
>                       case hid_collection:
> -                             if (collind >= (sizeof(colls) / sizeof(*colls)))
> -                                     errx(1, "Excessive nested collections");
> -                             colls[collind++] = hitem.usage;
> -                             break;
>                       case hid_endcollection:
> -                             if (collind == 0)
> -                                     errx(1, "Excessive collection ends");
> -                             collind--;
> -                             break;
>                       case hid_input:
>                               break;
>                       case hid_output:
> @@ -641,7 +635,6 @@ devloop(int hidfd, report_desc_t rd, str
>                                                inreport.buffer->ucr_data);
>               }
>               hid_end_parse(hdata);
> -             printf("\n");
>       }
>       /* NOTREACHED */
>  }
> 
> 
> dmesg:
> OpenBSD 5.7-beta (GENERIC.MP) #0: Fri Jan 16 17:26:49 CET 2015
>     b...@xxx.xxx.xxx.xxx:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 8451125248 (8059MB)
> avail mem = 8222277632 (7841MB)
> mpath0 at root
> Scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xdae9c000 (64 entries)
> bios0: vendor LENOVO version "8DET69WW (1.39 )" date 07/18/2013
> bios0: LENOVO 4287CTO
> acpi0 at bios0: rev 2
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP SLIC SSDT SSDT SSDT HPET APIC MCFG ECDT ASF! TCPA 
> SSDT SSDT DMAR UEFI UEFI UEFI
> acpi0: wakeup devices LID_(S3) SLPB(S3) IGBE(S4) EXP4(S4) EXP7(S4) EHC1(S3) 
> EHC2(S3) HDEF(S4)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpihpet0 at acpi0: 14318179 Hz
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2492.24 MHz
> cpu0: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
> cpu0: 256KB 64b/line 8-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 99MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE
> cpu1 at mainbus0: apid 1 (application processor)
> cpu1: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.91 MHz
> cpu1: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
> cpu1: 256KB 64b/line 8-way L2 cache
> cpu1: smt 1, core 0, package 0
> cpu2 at mainbus0: apid 2 (application processor)
> cpu2: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.91 MHz
> cpu2: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
> cpu2: 256KB 64b/line 8-way L2 cache
> cpu2: smt 0, core 1, package 0
> cpu3 at mainbus0: apid 3 (application processor)
> cpu3: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz, 2491.91 MHz
> cpu3: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,LONG,LAHF,PERF,ITSC
> cpu3: 256KB 64b/line 8-way L2 cache
> cpu3: smt 1, core 1, package 0
> ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins
> acpimcfg0 at acpi0 addr 0xf8000000, bus 0-63
> acpiec0 at acpi0
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus -1 (PEG_)
> acpiprt2 at acpi0: bus 2 (EXP1)
> acpiprt3 at acpi0: bus 3 (EXP2)
> acpiprt4 at acpi0: bus 5 (EXP4)
> acpiprt5 at acpi0: bus 13 (EXP5)
> acpiprt6 at acpi0: bus -1 (EXP7)
> acpicpu0 at acpi0: C3, C1, PSS
> acpicpu1 at acpi0: C3, C1, PSS
> acpicpu2 at acpi0: C3, C1, PSS
> acpicpu3 at acpi0: C3, C1, PSS
> acpipwrres0 at acpi0: PUBS, resource for EHC1, EHC2
> acpitz0 at acpi0: critical temperature is 99 degC
> acpibtn0 at acpi0: LID_
> acpibtn1 at acpi0: SLPB
> acpibat0 at acpi0: BAT0 model "42T4861" serial 12675 type LION oem "SANYO"
> acpibat1 at acpi0: BAT1 not present
> acpiac0 at acpi0: AC unit online
> acpithinkpad0 at acpi0
> acpidock0 at acpi0: GDCK docked (15)
> cpu0: Enhanced SpeedStep 2492 MHz: speeds: 2501, 2500, 2200, 2000, 1800, 
> 1600, 1400, 1200, 1000, 800 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel Core 2G Host" rev 0x09
> vga1 at pci0 dev 2 function 0 "Intel HD Graphics 3000" rev 0x09
> intagp at vga1 not configured
> inteldrm0 at vga1
> drm0 at inteldrm0
> drm: Memory usable by graphics device = 2048M
> inteldrm0: 1366x768
> wsdisplay0 at vga1 mux 1: console (std, vt100 emulation)
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> "Intel 6 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured
> em0 at pci0 dev 25 function 0 "Intel 82579LM" rev 0x04: msi, address 
> f0:de:f1:cd:a7:0f
> ehci0 at pci0 dev 26 function 0 "Intel 6 Series USB" rev 0x04: apic 2 int 16
> usb0 at ehci0: USB revision 2.0
> uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> azalia0 at pci0 dev 27 function 0 "Intel 6 Series HD Audio" rev 0x04: msi
> azalia0: codecs: Conexant/0x506e, Intel/0x2805, using Conexant/0x506e
> audio0 at azalia0
> ppb0 at pci0 dev 28 function 0 "Intel 6 Series PCIE" rev 0xb4: msi
> pci1 at ppb0 bus 2
> ppb1 at pci0 dev 28 function 1 "Intel 6 Series PCIE" rev 0xb4: msi
> pci2 at ppb1 bus 3
> iwn0 at pci2 dev 0 function 0 "Intel Centrino Advanced-N 6205" rev 0x34: msi, 
> MIMO 2T2R, MoW, address 10:0b:a9:9e:65:34
> ppb2 at pci0 dev 28 function 3 "Intel 6 Series PCIE" rev 0xb4: msi
> pci3 at ppb2 bus 5
> ppb3 at pci0 dev 28 function 4 "Intel 6 Series PCIE" rev 0xb4: msi
> pci4 at ppb3 bus 13
> sdhc0 at pci4 dev 0 function 0 "Ricoh 5U822 SD/MMC" rev 0x07: apic 2 int 16
> sdmmc0 at sdhc0
> ehci1 at pci0 dev 29 function 0 "Intel 6 Series USB" rev 0x04: apic 2 int 23
> usb1 at ehci1: USB revision 2.0
> uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
> pcib0 at pci0 dev 31 function 0 "Intel QM67 LPC" rev 0x04
> ahci0 at pci0 dev 31 function 2 "Intel 6 Series AHCI" rev 0x04: msi, AHCI 1.3
> scsibus1 at ahci0: 32 targets
> sd0 at scsibus1 targ 0 lun 0: <ATA, SanDisk SD6SB1M1, X230> SCSI3 0/direct 
> fixed naa.5001b449c700768f
> sd0: 122104MB, 512 bytes/sector, 250069680 sectors, thin
> cd0 at scsibus1 targ 1 lun 0: <Optiarc, DVD RW AD-7930H, 1.D1> ATAPI 5/cdrom 
> removable
> sd1 at scsibus1 targ 2 lun 0: <ATA, TOSHIBA THNSNH25, HTGA> SCSI3 0/direct 
> fixed naa.500080db000064dc
> sd1: 244198MB, 512 bytes/sector, 500118192 sectors, thin
> ichiic0 at pci0 dev 31 function 3 "Intel 6 Series SMBus" rev 0x04: apic 2 int 
> 18
> iic0 at ichiic0
> spdmem0 at iic0 addr 0x50: 4GB DDR3 SDRAM PC3-10600 SO-DIMM
> spdmem1 at iic0 addr 0x51: 4GB DDR3 SDRAM PC3-10600 SO-DIMM
> 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, using wsdisplay0
> pms0 at pckbc0 (aux slot)
> pckbc0: using irq 12 for aux slot
> wsmouse0 at pms0 mux 0
> wsmouse1 at pms0 mux 0
> pms0: Synaptics clickpad, firmware 8.0
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> aps0 at isa0 port 0x1600/31
> uhub2 at uhub0 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
> uhub3 at uhub2 port 1 "Standard Microsystems product 0x2514" rev 2.00/0.00 
> addr 3
> uhidev0 at uhub3 port 1 configuration 1 interface 0 "TypeMatrix.com USB 
> Keyboard" rev 1.10/1.50 addr 4
> uhidev0: iclass 3/1
> ukbd0 at uhidev0: 8 variable keys, 6 key codes
> wskbd1 at ukbd0 mux 1
> wskbd1: connecting to wsdisplay0
> uhidev1 at uhub3 port 1 configuration 1 interface 1 "TypeMatrix.com USB 
> Keyboard" rev 1.10/1.50 addr 4
> uhidev1: iclass 3/1, 3 report ids
> uhid0 at uhidev1 reportid 1: input=1, output=0, feature=0
> uhid1 at uhidev1 reportid 2: input=2, output=0, feature=0
> uhid2 at uhidev1 reportid 3: input=2, output=1, feature=0
> uhidev2 at uhub3 port 2 configuration 1 interface 0 "SteelSeries Kinzu V2 
> Gaming Mouse" rev 1.10/0.96 addr 5
> uhidev2: iclass 3/0
> uhid3 at uhidev2: input=32, output=32, feature=255
> uhidev3 at uhub3 port 2 configuration 1 interface 1 "SteelSeries Kinzu V2 
> Gaming Mouse" rev 1.10/0.96 addr 5
> uhidev3: iclass 3/1
> ums0 at uhidev3: 8 buttons, Z dir
> wsmouse2 at ums0 mux 0
> ugen0 at uhub3 port 4 "HP Deskjet 5900 series" rev 2.00/1.00 addr 6
> ugen1 at uhub2 port 4 "Broadcom Corp Broadcom Bluetooth Device" rev 2.00/7.48 
> addr 7
> uvideo0 at uhub2 port 6 configuration 1 interface 0 "Chicony Electronics Co., 
> Ltd. Integrated Camera" rev 2.00/8.54 addr 8
> video0 at uvideo0
> uhub4 at uhub1 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> sd2 at scsibus3 targ 1 lun 0: <OPENBSD, SR RAID 0, 005> SCSI2 0/direct fixed
> sd2: 223732MB, 512 bytes/sector, 458204672 sectors
> root on sd1a (cb2b25d2bc04572e.a) swap on sd1b dump on sd1b
> 
> usbdevs:
> Controller /dev/usb0:
> addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), 
> Intel(0x8086), rev 1.00
>  port 1 addr 2: high speed, self powered, config 1, Rate Matching 
> Hub(0x0024), Intel(0x8087), rev 0.00
>   port 1 addr 3: high speed, self powered, config 1, product 0x2514(0x2514), 
> Standard Microsystems(0x0424), rev 0.00
>    port 1 addr 4: low speed, power 100 mA, config 1, USB Keyboard(0x2030), 
> TypeMatrix.com(0x1e54), rev 1.50
>    port 2 addr 5: full speed, power 100 mA, config 1, Kinzu V2 Gaming 
> Mouse(0x1366), SteelSeries(0x1038), rev 0.96
>    port 3 powered
>    port 4 addr 6: full speed, self powered, config 1, Deskjet 5900 
> series(0x8704), HP(0x03f0), rev 1.00, iSerialNumber CN68M1T0S204KF
>   port 2 powered
>   port 3 powered
>   port 4 addr 7: full speed, self powered, config 1, Broadcom Bluetooth 
> Device(0x217f), Broadcom Corp(0x0a5c), rev 7.48, iSerialNumber 60D819ACF31F
>   port 5 powered
>   port 6 addr 8: high speed, power 200 mA, config 1, Integrated 
> Camera(0xb217), Chicony Electronics Co., Ltd.(0x04f2), rev 8.54
>  port 2 powered
>  port 3 powered
> Controller /dev/usb1:
> addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), 
> Intel(0x8086), rev 1.00
>  port 1 addr 2: high speed, self powered, config 1, Rate Matching 
> Hub(0x0024), Intel(0x8087), rev 0.00
>   port 1 powered
>   port 2 powered
>   port 3 powered
>   port 4 powered
>   port 5 powered
>   port 6 powered
>   port 7 powered
>   port 8 powered
>  port 2 powered
>  port 3 powered
> 

Reply via email to