[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"
        }
}

Attachment: pgpCgcXktGYX9.pgp
Description: PGP signature

Reply via email to