Multimedia keys on Dell SK-8135

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Multimedia keys on Dell SK-8135

Peter Jeremy-6
I have a Dell SK-8135 keyboard which has multimedia keys in addition
to the normal PC105 keyboard.  As far as I can tell (by setting
hw.usb.debug, hw.usb.ugen.debug, hw.usb.uhid.debug and
hw.usb.ukbd.debug), the keys aren't generating any output.  I've done
some searching and it looks like some people have had sucess getting
the keys to work, at least on Linux, though it's not clear how.
Can anyone help?

The keyboard includes an integrated hub and I have my mouse plugged
into it.

I'm running FreeBSD-8.1/amd64

Relevant output:

dmesg:
ugen0.2: <Dell> at usbus0
uhub6: <Dell USB Keyboard Hub> on usbus0
uhub6: 3 ports with 2 removable, bus powered
ugen0.3: <Dell> at usbus0
ukbd0: <Dell USB Keyboard> on usbus0
kbd0 at ukbd0
uhid0: <Dell USB Keyboard> on usbus0
ugen0.4: <vendor 0x413c> at usbus0
ums0: <vendor 0x413c product 0x3010, class 0/0, rev 2.00/2.30, addr 4> on usbus0
ums0: 3 buttons and [XYZ] coordinates ID=0

$ usbconfig
ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen3.1: <UHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen4.1: <EHCI root HUB Intel> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
ugen4.2: <USB2.0 Hub Controller NEC Corporation> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE
ugen0.2: <Dell USB Keyboard Hub Dell> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen0.4: <product 0x3010 vendor 0x413c> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
$ usbconfig -u 0 -a 3 dump_device_desc
ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0110
  bDeviceClass = 0x0000
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0008
  idVendor = 0x413c
  idProduct = 0x2010
  bcdDevice = 0x0200
  iManufacturer = 0x0001  <Dell>
  iProduct = 0x0003  <Dell USB Keyboard>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001

$ usbconfig -u 0 -a 3 dump_curr_config_desc
ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x003b
    bNumInterfaces = 0x0002
    bConfigurationValue = 0x0001
    iConfiguration = 0x0003  <Dell USB Keyboard>
    bmAttributes = 0x00a0
    bMaxPower = 0x0019

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0001
      iInterface = 0x0003  <Dell USB Keyboard>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x41,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008
        bInterval = 0x000a
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0001
      bInterfaceClass = 0x0003
      bInterfaceSubClass = 0x0000
      bInterfaceProtocol = 0x0000
      iInterface = 0x0003  <Dell USB Keyboard>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x21
      bDescriptorSubType = 0x10
       RAW dump:
       0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x8e,
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0004
        bInterval = 0x00ff
        bRefresh = 0x0000
        bSynchAddress = 0x0000

--
Peter Jeremy

attachment0 (203 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multimedia keys on Dell SK-8135

Hans Petter Selasky
On Thursday 25 November 2010 04:42:30 Peter Jeremy wrote:

> I have a Dell SK-8135 keyboard which has multimedia keys in addition
> to the normal PC105 keyboard.  As far as I can tell (by setting
> hw.usb.debug, hw.usb.ugen.debug, hw.usb.uhid.debug and
> hw.usb.ukbd.debug), the keys aren't generating any output.  I've done
> some searching and it looks like some people have had sucess getting
> the keys to work, at least on Linux, though it's not clear how.
> Can anyone help?
>
> The keyboard includes an integrated hub and I have my mouse plugged
> into it.
>
> I'm running FreeBSD-8.1/amd64

Have you looked at:

http://wiki.freebsd.org/uhidd

--HPS

>
> Relevant output:
>
> dmesg:
> ugen0.2: <Dell> at usbus0
> uhub6: <Dell USB Keyboard Hub> on usbus0
> uhub6: 3 ports with 2 removable, bus powered
> ugen0.3: <Dell> at usbus0
> ukbd0: <Dell USB Keyboard> on usbus0
> kbd0 at ukbd0
> uhid0: <Dell USB Keyboard> on usbus0
> ugen0.4: <vendor 0x413c> at usbus0
> ums0: <vendor 0x413c product 0x3010, class 0/0, rev 2.00/2.30, addr 4> on
> usbus0 ums0: 3 buttons and [XYZ] coordinates ID=0
>
> $ usbconfig
> ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps)
> pwr=ON ugen1.1: <UHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON ugen2.1: <UHCI root HUB Intel> at usbus2, cfg=0 md=HOST
> spd=FULL (12Mbps) pwr=ON ugen3.1: <UHCI root HUB Intel> at usbus3, cfg=0
> md=HOST spd=FULL (12Mbps) pwr=ON ugen4.1: <EHCI root HUB Intel> at usbus4,
> cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen4.2: <USB2.0 Hub Controller
> NEC Corporation> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE
> ugen0.2: <Dell USB Keyboard Hub Dell> at usbus0, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=SAVE ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0
> md=HOST spd=FULL (12Mbps) pwr=ON ugen0.4: <product 0x3010 vendor 0x413c>
> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON $ usbconfig -u 0 -a 3
> dump_device_desc
> ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON
>
>   bLength = 0x0012
>   bDescriptorType = 0x0001
>   bcdUSB = 0x0110
>   bDeviceClass = 0x0000
>   bDeviceSubClass = 0x0000
>   bDeviceProtocol = 0x0000
>   bMaxPacketSize0 = 0x0008
>   idVendor = 0x413c
>   idProduct = 0x2010
>   bcdDevice = 0x0200
>   iManufacturer = 0x0001  <Dell>
>   iProduct = 0x0003  <Dell USB Keyboard>
>   iSerialNumber = 0x0000  <no string>
>   bNumConfigurations = 0x0001
>
> $ usbconfig -u 0 -a 3 dump_curr_config_desc
> ugen0.3: <Dell USB Keyboard Dell> at usbus0, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON
>
>
>  Configuration index 0
>
>     bLength = 0x0009
>     bDescriptorType = 0x0002
>     wTotalLength = 0x003b
>     bNumInterfaces = 0x0002
>     bConfigurationValue = 0x0001
>     iConfiguration = 0x0003  <Dell USB Keyboard>
>     bmAttributes = 0x00a0
>     bMaxPower = 0x0019
>
>     Interface 0
>       bLength = 0x0009
>       bDescriptorType = 0x0004
>       bInterfaceNumber = 0x0000
>       bAlternateSetting = 0x0000
>       bNumEndpoints = 0x0001
>       bInterfaceClass = 0x0003
>       bInterfaceSubClass = 0x0001
>       bInterfaceProtocol = 0x0001
>       iInterface = 0x0003  <Dell USB Keyboard>
>
>       Additional Descriptor
>
>       bLength = 0x09
>       bDescriptorType = 0x21
>       bDescriptorSubType = 0x10
>        RAW dump:
>        0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x41,
>        0x08 | 0x00
>
>      Endpoint 0
>         bLength = 0x0007
>         bDescriptorType = 0x0005
>         bEndpointAddress = 0x0081  <IN>
>         bmAttributes = 0x0003  <INTERRUPT>
>         wMaxPacketSize = 0x0008
>         bInterval = 0x000a
>         bRefresh = 0x0000
>         bSynchAddress = 0x0000
>
>
>     Interface 1
>       bLength = 0x0009
>       bDescriptorType = 0x0004
>       bInterfaceNumber = 0x0001
>       bAlternateSetting = 0x0000
>       bNumEndpoints = 0x0001
>       bInterfaceClass = 0x0003
>       bInterfaceSubClass = 0x0000
>       bInterfaceProtocol = 0x0000
>       iInterface = 0x0003  <Dell USB Keyboard>
>
>       Additional Descriptor
>
>       bLength = 0x09
>       bDescriptorType = 0x21
>       bDescriptorSubType = 0x10
>        RAW dump:
>        0x00 | 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x8e,
>        0x08 | 0x00
>
>      Endpoint 0
>         bLength = 0x0007
>         bDescriptorType = 0x0005
>         bEndpointAddress = 0x0082  <IN>
>         bmAttributes = 0x0003  <INTERRUPT>
>         wMaxPacketSize = 0x0004
>         bInterval = 0x00ff
>         bRefresh = 0x0000
>         bSynchAddress = 0x0000
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: Multimedia keys on Dell SK-8135

Peter Jeremy-6
[adding kaiw@ as per the wiki page]

On 2010-Nov-25 09:38:15 +0100, Hans Petter Selasky <[hidden email]> 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

uhidd (7K) Download Attachment
uhidd.conf (514 bytes) Download Attachment
attachment2 (203 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multimedia keys on Dell SK-8135

Kai Wang
Hi Peter,

On Fri, Nov 26, 2010 at 02:54:39PM +1100, Peter Jeremy wrote:

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

Some time ago, We added support for this SK-8135 keyboard's linear
volume control by simulating VOLUME_UP and VOLUME_DOWN events. However
the code is not released yet; if you want to test it, you can check
out the source from our svn:

% svn checkout http://uhidd.googlecode.com/svn/trunk/ uhidd
% cd uhidd/uhidd
% make
# ./uhidd -vvv /.../ugenXXX

Also you need to change the configuration file:

> # Dell SK-8135
> 0x413c:0x2010={
> cc_keymap={
> Scan_Next_Track="0x7A"
> Scan_Previous_Track="0x75"
> Stop="0x74"
> Play/Pause="0x7C"
> Volume="0x64"

Remove "Volume" and use "Volume_Increment" and "Volume_Decrement" here
instead.

Kai
_______________________________________________
[hidden email] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[hidden email]"