[adding kaiw@ as per the wiki page] On 2010-Nov-25 09:38:15 +0100, Hans Petter Selasky <[email protected]> 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 ... >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:
XmbLookupString gives 0 bytes:
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:
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:
XmbLookupString gives 0 bytes:
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:
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:
XmbLookupString gives 0 bytes:
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:
XFilterEvent returns: False
--
Peter Jeremy
Script started on Fri Nov 26 14:30:49 2010
# uhidd -vvv /dev/ugen1.3
ugen1.3[0]-> HID interface
ugen1.3[0]-> Report descriptor size = 65
ugen1.3[0]-> Find IN interrupt ep: 0x81 packet_size=0x8
ugen1.3[1]-> HID interface
ugen1.3[1]-> Report descriptor size = 142
ugen1.3[1]-> Find IN interrupt ep: 0x82 packet_size=0x4
HID APPLICATION COLLECTION (Keyboard) size(65)
HID REPORT: ID 0
INPUT:
POS:0 SIZE:1 COUNT:8 [VARIABLE]
USAGE Keyboard LeftControl
USAGE Keyboard LeftShift
USAGE Keyboard LeftAlt
USAGE Keyboard Left GUI
USAGE Keyboard RightControl
USAGE Keyboard RightShift
USAGE Keyboard RightAlt
USAGE Keyboard Right GUI
POS:8 SIZE:8 COUNT:1 [CONST]
POS:16 SIZE:8 COUNT:6 [ARRAY]
USAGE [0 -> 255] (Keyboard)
OUTPUT:
POS:0 SIZE:1 COUNT:5 [VARIABLE]
USAGE Num Lock
USAGE Caps Lock
USAGE Scroll Lock
USAGE Compose
USAGE Kana
POS:5 SIZE:3 COUNT:1 [CONST]
HID APPLICATION COLLECTION (Consumer Control) size(31)
HID REPORT: ID 1
INPUT:
POS:0 SIZE:7 COUNT:1 [VARIABLE]
USAGE Volume
POS:7 SIZE:1 COUNT:1 [VARIABLE]
USAGE Mute
HID APPLICATION COLLECTION (System Control) size(29)
HID REPORT: ID 2
INPUT:
POS:0 SIZE:1 COUNT:3 [VARIABLE]
USAGE System Sleep
USAGE System Sleep
USAGE System Sleep
POS:3 SIZE:1 COUNT:5 [CONST]
HID APPLICATION COLLECTION (Consumer Control) size(82)
HID REPORT: ID 3
INPUT:
POS:0 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Refresh
POS:1 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Local Machine Browser
POS:2 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Home
POS:3 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Email Reader
POS:4 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Calculator
POS:5 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Stop
POS:6 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Forward
POS:7 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Back
POS:8 SIZE:1 COUNT:1 [VARIABLE]
USAGE Scan Next Track
POS:9 SIZE:1 COUNT:1 [VARIABLE]
USAGE Scan Previous Track
POS:10 SIZE:1 COUNT:1 [VARIABLE]
USAGE Play/Pause
POS:11 SIZE:1 COUNT:1 [VARIABLE]
USAGE Stop
POS:12 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Consumer Control Configuration
POS:13 SIZE:1 COUNT:11 [CONST]
ugen1.3[1]-> kbd device name: vkbdctl22
ugen1.3[1]-> kbd device name: vkbdctl23
ugen1.3[1]-> HID interface task started
ugen1.3[1]-> received data(4): 03 00 08 00
hid_appcol_recv_data: len(4) 0x03 0x00 0x08 0x00
ugen1.3[1]-> hid coeds: 0xB7
ugen1.3[1]-> received data(4): 03 00 00 00
hid_appcol_recv_data: len(4) 0x03 0x00 0x00 0x00
ugen1.3[1]-> hid coeds: none
ugen1.3[1]-> received data(2): 01 127
hid_appcol_recv_data: len(2) 0x01 0x7f
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 -128
hid_appcol_recv_data: len(2) 0x01 0x80
ugen1.3[1]-> hid coeds: 0xE2
ugen1.3[1]-> received data(2): 01 00
hid_appcol_recv_data: len(2) 0x01 0x00
ugen1.3[1]-> hid coeds: none
^Cuhidd[1546]: terminated
#
#
# ^[[A uhidd -vvv /dev/ugen1.3
ugen1.3[0]-> HID interface
ugen1.3[0]-> Report descriptor size = 65
ugen1.3[0]-> Find IN interrupt ep: 0x81 packet_size=0x8
ugen1.3[1]-> HID interface
ugen1.3[1]-> Report descriptor size = 142
ugen1.3[1]-> Find IN interrupt ep: 0x82 packet_size=0x4
HID APPLICATION COLLECTION (Keyboard) size(65)
HID REPORT: ID 0
INPUT:
POS:0 SIZE:1 COUNT:8 [VARIABLE]
USAGE Keyboard LeftControl
USAGE Keyboard LeftShift
USAGE Keyboard LeftAlt
USAGE Keyboard Left GUI
USAGE Keyboard RightControl
USAGE Keyboard RightShift
USAGE Keyboard RightAlt
USAGE Keyboard Right GUI
POS:8 SIZE:8 COUNT:1 [CONST]
POS:16 SIZE:8 COUNT:6 [ARRAY]
USAGE [0 -> 255] (Keyboard)
OUTPUT:
POS:0 SIZE:1 COUNT:5 [VARIABLE]
USAGE Num Lock
USAGE Caps Lock
USAGE Scroll Lock
USAGE Compose
USAGE Kana
POS:5 SIZE:3 COUNT:1 [CONST]
HID APPLICATION COLLECTION (Consumer Control) size(31)
HID REPORT: ID 1
INPUT:
POS:0 SIZE:7 COUNT:1 [VARIABLE]
USAGE Volume
POS:7 SIZE:1 COUNT:1 [VARIABLE]
USAGE Mute
HID APPLICATION COLLECTION (System Control) size(29)
HID REPORT: ID 2
INPUT:
POS:0 SIZE:1 COUNT:3 [VARIABLE]
USAGE System Sleep
USAGE System Sleep
USAGE System Sleep
POS:3 SIZE:1 COUNT:5 [CONST]
HID APPLICATION COLLECTION (Consumer Control) size(82)
HID REPORT: ID 3
INPUT:
POS:0 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Refresh
POS:1 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Local Machine Browser
POS:2 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Home
POS:3 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Email Reader
POS:4 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Calculator
POS:5 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Stop
POS:6 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Forward
POS:7 SIZE:1 COUNT:1 [VARIABLE]
USAGE AC Back
POS:8 SIZE:1 COUNT:1 [VARIABLE]
USAGE Scan Next Track
POS:9 SIZE:1 COUNT:1 [VARIABLE]
USAGE Scan Previous Track
POS:10 SIZE:1 COUNT:1 [VARIABLE]
USAGE Play/Pause
POS:11 SIZE:1 COUNT:1 [VARIABLE]
USAGE Stop
POS:12 SIZE:1 COUNT:1 [VARIABLE]
USAGE AL Consumer Control Configuration
POS:13 SIZE:1 COUNT:11 [CONST]
ugen1.3[1]-> kbd device name: vkbdctl24
ugen1.3[1]-> kbd device name: vkbdctl25
ugen1.3[1]-> HID interface task started
ugen1.3[1]-> received data(2): 01 127
hid_appcol_recv_data: len(2) 0x01 0x7f
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 127
hid_appcol_recv_data: len(2) 0x01 0x7f
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 127
hid_appcol_recv_data: len(2) 0x01 0x7f
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 126
hid_appcol_recv_data: len(2) 0x01 0x7e
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 127
hid_appcol_recv_data: len(2) 0x01 0x7f
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 01
hid_appcol_recv_data: len(2) 0x01 0x01
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 02
hid_appcol_recv_data: len(2) 0x01 0x02
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 02
hid_appcol_recv_data: len(2) 0x01 0x02
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 01
hid_appcol_recv_data: len(2) 0x01 0x01
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 02
hid_appcol_recv_data: len(2) 0x01 0x02
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 01
hid_appcol_recv_data: len(2) 0x01 0x01
ugen1.3[1]-> hid coeds: 0xE0
ugen1.3[1]-> received data(2): 01 01
hid_appcol_recv_data: len(2) 0x01 0x01
ugen1.3[1]-> hid coeds: 0xE0
^Cuhidd[1563]: terminated
# ^D
Script done on Fri Nov 26 14:35:13 2010
# 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"
}
}
pgpCgcXktGYX9.pgp
Description: PGP signature
