usb midi support for Alesis keyboard

Shane Ambler FreeBSD at ShaneWare.Biz
Sat May 18 08:13:59 UTC 2013


On 18/05/2013 16:49, Hans Petter Selasky wrote:
> Hi,
>
> Try this patch:
>
> http://svnweb.freebsd.org/changeset/base/250765
>

With the device disconnecting - hw.usb.no_cs_fail=1 stopped that.

/dev/midistat still says no midi devices.
plug/un-plug creates/deletes /dev/umidi0.0 -> 15 (they are stable 
without the disconnecting)

I'll try the patch and see how that goes. I rebuilt world to update to
9.1-RELEASE-p3 last night. Using a dtrace enabled kernel built with clang.

The Q49 is plugged directly into a usb2.0/1.1 socket at the back of the 
motherboard.

I get the following from usbdump from a middle c
followed by usbconfig dump_curr_config_desc

# usbdump -i usbus2 -f 6 -s 65536 -vvv
16:28:47.266708 usbus2.6 
DONE-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=64,IVAL=0,ERR=0
  frame[0] READ 64 bytes
  0000  09 90 3C 5A 00 00 00 00  00 00 00 00 00 00 00 00  |..<Z............|
  0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  0020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  0030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
  status 0xeb021 
<OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
16:28:47.266713 usbus2.6 SUBM-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=0
  frame[0] READ 64 bytes
  flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
  status 0xeb023 
<OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
16:28:47.403588 usbus2.6 
DONE-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=64,IVAL=0,ERR=0
  frame[0] READ 64 bytes
  0000  08 80 3C 40 00 00 00 00  00 00 00 00 00 00 00 00  |..<@............|
  0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  0020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  0030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
  status 0xcb021 
<OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
16:28:47.403593 usbus2.6 SUBM-BULK-EP=00000081,SPD=FULL,NFR=1,SLEN=0,IVAL=0
  frame[0] READ 64 bytes
  flags 0x12 <SHORT_XFER_OK|PROXY_BUFFER|0>
  status 0xcb023 
<OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>




# usbconfig -u 2 -a 6 dump_curr_config_desc
ugen2.6: <Q49 Alesis> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


  Configuration index 0

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

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

       Additional Descriptor

       bLength = 0x09
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x09, 0x00, 0x01,
        0x08 | 0x01


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

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x41, 0x00


       Additional Descriptor

       bLength = 0x06
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x06, 0x24, 0x02, 0x01, 0x01, 0x00


       Additional Descriptor

       bLength = 0x06
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x06, 0x24, 0x02, 0x02, 0x02, 0x00


       Additional Descriptor

       bLength = 0x09
       bDescriptorType = 0x24
       bDescriptorSubType = 0x03
        RAW dump:
        0x00 | 0x09, 0x24, 0x03, 0x01, 0x03, 0x01, 0x02, 0x01,
        0x08 | 0x00

       Additional Descriptor

       bLength = 0x09
       bDescriptorType = 0x24
       bDescriptorSubType = 0x03
        RAW dump:
        0x00 | 0x09, 0x24, 0x03, 0x02, 0x04, 0x01, 0x01, 0x01,
        0x08 | 0x00

      Endpoint 0
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0001  <OUT>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0040
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

       Additional Descriptor

       bLength = 0x05
       bDescriptorType = 0x25
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x05, 0x25, 0x01, 0x01, 0x01


      Endpoint 1
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081  <IN>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0040
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

       Additional Descriptor

       bLength = 0x05
       bDescriptorType = 0x25
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x05, 0x25, 0x01, 0x01, 0x03





More information about the freebsd-multimedia mailing list