Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Nov 2010 14:54:39 +1100
From:      Peter Jeremy <peterjeremy@acm.org>
To:        freebsd-usb@freebsd.org, kaiw@freebsd.org
Subject:   Re: Multimedia keys on Dell SK-8135
Message-ID:  <20101126035439.GA50277@server.vk2pj.dyndns.org>
In-Reply-To: <201011250938.15470.hselasky@c2i.net>
References:  <20101125034230.GA89666@server.vk2pj.dyndns.org> <201011250938.15470.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--wq9mPyueHGvFACwf
Content-Type: multipart/mixed; boundary="bp/iNruPH9dso1Pn"
Content-Disposition: inline


--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

[adding kaiw@ as per the wiki page]

On 2010-Nov-25 09:38:15 +0100, Hans Petter Selasky <hselasky@c2i.net> wrote:
>On Thursday 25 November 2010 04:42:30 Peter Jeremy wrote:
>> I have a Dell SK-8135 keyboard which has multimedia keys in addition
=2E..
>http://wiki.freebsd.org/uhidd

Thanks.  I didn't think to search for multimedia keyboards in general.
I've tried uhidd and, using it to manage the multimedia keys, it
mostly works.  I want to use ukbd because I want a functioning
keyboard in single-user mode and my mouse didn't get cleanly handled
so I switched back to ums (which handles all my mouse functions).

The bit that doesn't work is the volume control:  The knob returns
a HID code and a 7-bit 2-complement number defining the direction
and rate (ie '1' is one click up, '127' is one click down).
Unfortunately, xev shows that as soon as I move the volume control,
I start receiving a continuous stream of alternating KeyPress and
KeyRelease events until I kill uhidd.

I have attached my uhidd.conf file and the debug output from uhidd
(the second execution shows the effect of turning the volume control
faster).

Sample output from xev showing the volume control events:
KeyPress event, serial 27, synthetic NO, window 0x1000001,
    root 0x120, subw 0x0, time 7007489, (172,122), root:(913,147),
    state 0x0, keycode 191 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:=20
    XmbLookupString gives 0 bytes:=20
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1000001,
    root 0x120, subw 0x0, time 7007530, (172,122), root:(913,147),
    state 0x0, keycode 191 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:=20
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1000001,
    root 0x120, subw 0x0, time 7007530, (172,122), root:(913,147),
    state 0x0, keycode 191 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:=20
    XmbLookupString gives 0 bytes:=20
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1000001,
    root 0x120, subw 0x0, time 7007571, (172,122), root:(913,147),
    state 0x0, keycode 191 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:=20
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1000001,
    root 0x120, subw 0x0, time 7007571, (172,122), root:(913,147),
    state 0x0, keycode 191 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:=20
    XmbLookupString gives 0 bytes:=20
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1000001,
    root 0x120, subw 0x0, time 7007612, (172,122), root:(913,147),
    state 0x0, keycode 191 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:=20
    XFilterEvent returns: False

--=20
Peter Jeremy

--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=uhidd
Content-Transfer-Encoding: quoted-printable

Script started on Fri Nov 26 14:30:49 2010
# uhidd -vvv /dev/ugen1.3=0D
ugen1.3[0]-> HID interface=0D
ugen1.3[0]-> Report descriptor size =3D 65=0D
ugen1.3[0]-> Find IN interrupt ep: 0x81 packet_size=3D0x8=0D
ugen1.3[1]-> HID interface=0D
ugen1.3[1]-> Report descriptor size =3D 142=0D
ugen1.3[1]-> Find IN interrupt ep: 0x82 packet_size=3D0x4=0D
HID APPLICATION COLLECTION (Keyboard) size(65)=0D
  HID REPORT: ID 0=0D
    INPUT: =0D
      POS:0 SIZE:1 COUNT:8 [VARIABLE]=0D
        USAGE Keyboard LeftControl=0D
        USAGE Keyboard LeftShift=0D
        USAGE Keyboard LeftAlt=0D
        USAGE Keyboard Left GUI=0D
        USAGE Keyboard RightControl=0D
        USAGE Keyboard RightShift=0D
        USAGE Keyboard RightAlt=0D
        USAGE Keyboard Right GUI=0D
      POS:8 SIZE:8 COUNT:1 [CONST]=0D
      POS:16 SIZE:8 COUNT:6 [ARRAY]=0D
        USAGE [0 -> 255] (Keyboard)=0D
    OUTPUT: =0D
      POS:0 SIZE:1 COUNT:5 [VARIABLE]=0D
        USAGE Num Lock=0D
        USAGE Caps Lock=0D
        USAGE Scroll Lock=0D
        USAGE Compose=0D
        USAGE Kana=0D
      POS:5 SIZE:3 COUNT:1 [CONST]=0D
HID APPLICATION COLLECTION (Consumer Control) size(31)=0D
  HID REPORT: ID 1=0D
    INPUT: =0D
      POS:0 SIZE:7 COUNT:1 [VARIABLE]=0D
        USAGE Volume=0D
      POS:7 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Mute=0D
HID APPLICATION COLLECTION (System Control) size(29)=0D
  HID REPORT: ID 2=0D
    INPUT: =0D
      POS:0 SIZE:1 COUNT:3 [VARIABLE]=0D
        USAGE System Sleep=0D
        USAGE System Sleep=0D
        USAGE System Sleep=0D
      POS:3 SIZE:1 COUNT:5 [CONST]=0D
HID APPLICATION COLLECTION (Consumer Control) size(82)=0D
  HID REPORT: ID 3=0D
    INPUT: =0D
      POS:0 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Refresh=0D
      POS:1 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Local Machine Browser=0D
      POS:2 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Home=0D
      POS:3 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Email Reader=0D
      POS:4 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Calculator=0D
      POS:5 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Stop=0D
      POS:6 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Forward=0D
      POS:7 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Back=0D
      POS:8 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Scan Next Track=0D
      POS:9 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Scan Previous Track=0D
      POS:10 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Play/Pause=0D
      POS:11 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Stop=0D
      POS:12 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Consumer Control Configuration=0D
      POS:13 SIZE:1 COUNT:11 [CONST]=0D
ugen1.3[1]-> kbd device name: vkbdctl22=0D
ugen1.3[1]-> kbd device name: vkbdctl23=0D
ugen1.3[1]-> HID interface task started=0D
ugen1.3[1]-> received data(4): 03 00 08 00 =0D
hid_appcol_recv_data: len(4) 0x03 0x00 0x08 0x00=0D
ugen1.3[1]-> hid coeds: 0xB7 =0D
ugen1.3[1]-> received data(4): 03 00 00 00 =0D
hid_appcol_recv_data: len(4) 0x03 0x00 0x00 0x00=0D
ugen1.3[1]-> hid coeds: none=0D
ugen1.3[1]-> received data(2): 01 127 =0D
hid_appcol_recv_data: len(2) 0x01 0x7f=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 -128 =0D
hid_appcol_recv_data: len(2) 0x01 0x80=0D
ugen1.3[1]-> hid coeds: 0xE2 =0D
ugen1.3[1]-> received data(2): 01 00 =0D
hid_appcol_recv_data: len(2) 0x01 0x00=0D
ugen1.3[1]-> hid coeds: none=0D
^Cuhidd[1546]: terminated=0D
# =0D
# =0D
# ^[[A=08 =08=08 =08=08=08  =08=08uhidd -vvv /dev/ugen1.3=0D
ugen1.3[0]-> HID interface=0D
ugen1.3[0]-> Report descriptor size =3D 65=0D
ugen1.3[0]-> Find IN interrupt ep: 0x81 packet_size=3D0x8=0D
ugen1.3[1]-> HID interface=0D
ugen1.3[1]-> Report descriptor size =3D 142=0D
ugen1.3[1]-> Find IN interrupt ep: 0x82 packet_size=3D0x4=0D
HID APPLICATION COLLECTION (Keyboard) size(65)=0D
  HID REPORT: ID 0=0D
    INPUT: =0D
      POS:0 SIZE:1 COUNT:8 [VARIABLE]=0D
        USAGE Keyboard LeftControl=0D
        USAGE Keyboard LeftShift=0D
        USAGE Keyboard LeftAlt=0D
        USAGE Keyboard Left GUI=0D
        USAGE Keyboard RightControl=0D
        USAGE Keyboard RightShift=0D
        USAGE Keyboard RightAlt=0D
        USAGE Keyboard Right GUI=0D
      POS:8 SIZE:8 COUNT:1 [CONST]=0D
      POS:16 SIZE:8 COUNT:6 [ARRAY]=0D
        USAGE [0 -> 255] (Keyboard)=0D
    OUTPUT: =0D
      POS:0 SIZE:1 COUNT:5 [VARIABLE]=0D
        USAGE Num Lock=0D
        USAGE Caps Lock=0D
        USAGE Scroll Lock=0D
        USAGE Compose=0D
        USAGE Kana=0D
      POS:5 SIZE:3 COUNT:1 [CONST]=0D
HID APPLICATION COLLECTION (Consumer Control) size(31)=0D
  HID REPORT: ID 1=0D
    INPUT: =0D
      POS:0 SIZE:7 COUNT:1 [VARIABLE]=0D
        USAGE Volume=0D
      POS:7 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Mute=0D
HID APPLICATION COLLECTION (System Control) size(29)=0D
  HID REPORT: ID 2=0D
    INPUT: =0D
      POS:0 SIZE:1 COUNT:3 [VARIABLE]=0D
        USAGE System Sleep=0D
        USAGE System Sleep=0D
        USAGE System Sleep=0D
      POS:3 SIZE:1 COUNT:5 [CONST]=0D
HID APPLICATION COLLECTION (Consumer Control) size(82)=0D
  HID REPORT: ID 3=0D
    INPUT: =0D
      POS:0 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Refresh=0D
      POS:1 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Local Machine Browser=0D
      POS:2 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Home=0D
      POS:3 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Email Reader=0D
      POS:4 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Calculator=0D
      POS:5 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Stop=0D
      POS:6 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Forward=0D
      POS:7 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AC Back=0D
      POS:8 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Scan Next Track=0D
      POS:9 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Scan Previous Track=0D
      POS:10 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Play/Pause=0D
      POS:11 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE Stop=0D
      POS:12 SIZE:1 COUNT:1 [VARIABLE]=0D
        USAGE AL Consumer Control Configuration=0D
      POS:13 SIZE:1 COUNT:11 [CONST]=0D
ugen1.3[1]-> kbd device name: vkbdctl24=0D
ugen1.3[1]-> kbd device name: vkbdctl25=0D
ugen1.3[1]-> HID interface task started=0D
ugen1.3[1]-> received data(2): 01 127 =0D
hid_appcol_recv_data: len(2) 0x01 0x7f=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 127 =0D
hid_appcol_recv_data: len(2) 0x01 0x7f=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 127 =0D
hid_appcol_recv_data: len(2) 0x01 0x7f=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 126 =0D
hid_appcol_recv_data: len(2) 0x01 0x7e=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 127 =0D
hid_appcol_recv_data: len(2) 0x01 0x7f=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 01 =0D
hid_appcol_recv_data: len(2) 0x01 0x01=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 02 =0D
hid_appcol_recv_data: len(2) 0x01 0x02=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 02 =0D
hid_appcol_recv_data: len(2) 0x01 0x02=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 01 =0D
hid_appcol_recv_data: len(2) 0x01 0x01=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 02 =0D
hid_appcol_recv_data: len(2) 0x01 0x02=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 01 =0D
hid_appcol_recv_data: len(2) 0x01 0x01=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
ugen1.3[1]-> received data(2): 01 01 =0D
hid_appcol_recv_data: len(2) 0x01 0x01=0D
ugen1.3[1]-> hid coeds: 0xE0 =0D
^Cuhidd[1563]: terminated=0D
# ^D=08=08
Script done on Fri Nov 26 14:35:13 2010

--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="uhidd.conf"

# Default bindings
default={
	mouse_attach="NO"
	kbd_attach="NO"
	vhid_attach="NO"
	cc_attach="YES"
}

# Dell SK-8135
0x413c:0x2010={
	cc_keymap={
		Scan_Next_Track="0x7A"
		Scan_Previous_Track="0x75"
		Stop="0x74"
		Play/Pause="0x7C"
		Volume="0x64"
		Mute="0x72"
		AL_Consumer_Control_Configuration="0x7F"
		AL_Email_Reader="0x63"
		AL_Calculator="0x71"
		AL_Local_Machine_Browser="0x6F"
		AC_Home="0x62"
		AC_Back="0x54"
		AC_Forward="0x5A"
		AC_Stop="0x5F"
		AC_Refresh="0x60"
	}
}

--bp/iNruPH9dso1Pn--

--wq9mPyueHGvFACwf
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (FreeBSD)

iEYEARECAAYFAkzvL38ACgkQ/opHv/APuIcMkwCfejBDHGRBwQNJic93oU27L8mt
KTgAnjNq5QF7I+ED+cF1YZiMLL0qW8IN
=noS9
-----END PGP SIGNATURE-----

--wq9mPyueHGvFACwf--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101126035439.GA50277>