[adding kaiw@ as per the wiki page] On 2010-Nov-25 09:38:15 +0100, Hans Petter Selasky <hsela...@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 ... >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