Use extra buttons of Kensington Slimblade Trackball

Lee, Chung-Yeol chungyeol.lee at gmail.com
Sat Aug 21 17:25:11 UTC 2010


On Sat, Aug 21, 2010 at 06:18:45PM +0200, Hans Petter Selasky wrote:
> On Saturday 21 August 2010 18:02:56 Lee, Chung-Yeol wrote:
> > On Sat, Aug 21, 2010 at 05:16:31PM +0200, Hans Petter Selasky wrote:
> > > On Saturday 21 August 2010 10:23:06 Lee, Chung-Yeol wrote:
> > > >  Hi,
> > > >  
> > > >  While I'm searching how to use the extra buttons in Kensington
> > > >  Slimblade
> > > > 
> > > > Trackball, I made a patch for myself based on the linux driver.
> > > > 
> > > > I confirmed it works as intended. However, I have no experience with
> > > > the FreeBSD kernel and I'm not sure that I modified it in a correct
> > > > way. -- especially, I don't know should I use usb_quirks?
> > > > 
> > > >  Can somebody check the attached diff file so that I can send problem
> > > > 
> > > > report?
> > > > 
> > > >  Thanks.
> > > 
> > > Hi,
> > > 
> > > Can you re-send your patch to me. The listware stripped it off. I think
> > > there is also a similar patch in 9-current. Please check the version
> > > history of:
> > > 
> > > /sys/dev/usb/input/ums.c
> > > 
> > > --HPS
> > 
> >  diff file is against 8-STABLE.
> >  I just looked ums.c in HEAD from Web CVS repository and can't find similar
> > code.
> > 
> >  C.-Y. Lee
> 
> Hi,
> 
> Please check and verify this patch:
> 
> http://p4web.freebsd.org/@@182688?ac=10
> 
> Also, could you dump the device, config and HID descriptors of your mouse. See 
> man usbconfig on how to do that.
> 
> --HPS

 It seems alright.

 Here's dump..

# usbconfig -u 0 -a 3 dump_device_desc
ugen0.3: <Kensington Slimblade Trackball Kensington> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0008 
  idVendor = 0x047d 
  idProduct = 0x2041 
  bcdDevice = 0x0105 
  iManufacturer = 0x0001  <Kensington>
  iProduct = 0x0002  <Kensington Slimblade Trackball>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 

# usbconfig -u 0 -a 3 dump_curr_config_desc
ugen0.3: <Kensington Slimblade Trackball Kensington> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON

 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0022 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00a0 
    bMaxPower = 0x0032 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0003 
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0002 
      iInterface = 0x0000  <no string>

      Additional Descriptor

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

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

  # usbconfig -u 0 -a 3 do_request 0x81 0x06 0x2200 0 0x100
  REQUEST = <0x05 0x01 0x09 0x02 0xa1 0x01 0x09 0x01 0xa1 0x00 0x05 0x09 0x19 0x01 0x29 0x02 0x15 0x00 0x25 0x01 0x95 0x02 0x75 0x01 0x81 0x02 0x95 0x01 0x75 0x06 0x81 0x03 0x05 0x01 0x09 0x30 0x09 0x31 0x09 0x38 0x15 0x81 0x25 0x7f 0x75 0x08 0x95 0x03 0x81 0x06 0x06 0x00 0xff 0x19 0x01 0x29 0x02 0x15 0x00 0x25 0x01 0x95 0x02 0x75 0x01 0x81 0x02 0x95 0x01 0x75 0x06 0x81 0x03 0xc0 0xc0><)%uu018%u)%uu>

 Thanks.

 C.-Y. Lee.


More information about the freebsd-usb mailing list