Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jun 2011 00:27:03 +0200
From:      Olivier Smedts <olivier@gid0.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-multimedia@freebsd.org
Subject:   Re: [uaudio] M-Audio Fast Track Ultra is not recognized, where to start ?
Message-ID:  <BANLkTi=NzB8Dne74FHE=j4jdzROEwGztQQ@mail.gmail.com>
In-Reply-To: <BANLkTinF1Qic5cCUgbgcW7uNEei1J7Kx1A@mail.gmail.com>
References:  <BANLkTimXnhsxem2rUtieMO0c8b%2B-gAgunQ@mail.gmail.com> <201106142156.59630.hselasky@c2i.net> <BANLkTinF1Qic5cCUgbgcW7uNEei1J7Kx1A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
2011/6/15 Olivier Smedts <olivier@gid0.org>:
> Hello,
>
> 2011/6/14 Hans Petter Selasky <hselasky@c2i.net>:
>> Hi,
>>
>> Try to enable uaudio debugging before plugging in the device:
>>
>> sysctl hw.usb.uaudio.debug=3D15
>
> Thanks for the suggestion (and all your work on the usb stack BTW).
> After turning on debugging on uaudio and ehci :
> Jun 15 00:09:10 q kernel: ehci_root_intr: port 1 changed
> Jun 15 00:09:10 q kernel: ehci_set_hw_power:
> Jun 15 00:09:11 q kernel: ehci_roothub_exec: ehci after reset, status=3D0=
x00001005
> Jun 15 00:09:11 q kernel: ehci_roothub_exec: ehci port 1 reset, status
> =3D 0x00001005
> Jun 15 00:09:11 q root: Unknown USB device: vendor 0x0763 product
> 0x2080 bus uhub7
> Jun 15 00:09:11 q kernel: ehci_set_hw_power:
> Jun 15 00:09:11 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:11 q kernel: ugen7.3: <M-Audio> at usbus7
> Jun 15 00:09:11 q kernel: uaudio0: <Fast Track Ultra> on usbus7
> Jun 15 00:09:11 q kernel: uaudio_mixer_fill_info: invalid Audio Control h=
eader
> Jun 15 00:09:11 q kernel: uaudio_attach: audio rev 0.00
> Jun 15 00:09:11 q kernel: uaudio_attach: 0 mixer controls
> Jun 15 00:09:11 q kernel: uaudio0: No playback!
> Jun 15 00:09:11 q kernel: uaudio0: No recording!
> Jun 15 00:09:11 q kernel: umidi_bulk_read_callback: start
> Jun 15 00:09:11 q kernel: uaudio0: MIDI sequencer
> Jun 15 00:09:11 q kernel: ehci_set_hw_power:
> Jun 15 00:09:11 q kernel: uaudio_attach: doing child attach
> Jun 15 00:09:11 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:11 q kernel: pcm4: <USB audio> on uaudio0
> Jun 15 00:09:11 q kernel: uaudio_attach_sub: emulating master volume
> Jun 15 00:09:11 q kernel: uaudio_mixer_init_sub:
> Jun 15 00:09:11 q root: Unknown USB device: vendor 0x0763 product
> 0x2080 bus uhub7
> Jun 15 00:09:11 q kernel: ehci_set_hw_power:
> Jun 15 00:09:11 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:14 q kernel: ehci_set_hw_power:
> Jun 15 00:09:14 q kernel: ehci_set_hw_power:
> Jun 15 00:09:14 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:18 q kernel: ehci_set_hw_power:
> Jun 15 00:09:18 q kernel: ehci_set_hw_power:
> Jun 15 00:09:18 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:22 q kernel: ehci_set_hw_power:
> Jun 15 00:09:22 q kernel: ehci_set_hw_power:
> Jun 15 00:09:22 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:26 q kernel: ehci_set_hw_power:
> Jun 15 00:09:26 q kernel: ehci_set_hw_power:
> Jun 15 00:09:26 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:27 q kernel: ehci_root_intr: port 1 changed
> Jun 15 00:09:27 q kernel: ehci_set_hw_power:
> Jun 15 00:09:27 q kernel: umidi_bulk_read_callback: error=3DUSB_ERR_STALL=
ED
> Jun 15 00:09:27 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:27 q kernel: ehci_set_hw_power:
> Jun 15 00:09:27 q kernel: ugen7.3: <M-Audio> at usbus7 (disconnected)
> Jun 15 00:09:27 q kernel: ehci_set_hw_power: Async is active
> Jun 15 00:09:27 q kernel: uaudio0: at uhub7, port 1, addr 3 (disconnected=
)
> Jun 15 00:09:27 q kernel: uaudio_mixer_uninit_sub:
> Jun 15 00:09:27 q kernel: pcm4: detached
> Jun 15 00:09:27 q kernel: umidi_bulk_read_callback: error=3DUSB_ERR_CANCE=
LLED
> Jun 15 00:09:28 q kernel: ehci_set_hw_power:
>
> The last errors are here because I turned off the device. I think
> "uaudio_mixer_fill_info: invalid Audio Control header" is interesting.
> Any way to dump this ?

To reply at my own question, I saw this in src/sys/dev/sound/usb/uaudio.c :
        if ((acdp->bLength < sizeof(*acdp)) ||
            (acdp->bDescriptorType !=3D UDESC_CS_INTERFACE) ||
            (acdp->bDescriptorSubtype !=3D UDESCSUB_AC_HEADER)) {
                DPRINTF("invalid Audio Control header\n");
                goto done;
        }

And I tried :
# usbconfig -u 7 -a 3 dump_device_desc
ugen7.3: <Fast Track Ultra M-Audio> at usbus7, cfg=3D0 md=3DHOST spd=3DHIGH
(480Mbps) pwr=3DON

  bLength =3D 0x0012
  bDescriptorType =3D 0x0001
  bcdUSB =3D 0x0200
  bDeviceClass =3D 0x0000
  bDeviceSubClass =3D 0x0000
  bDeviceProtocol =3D 0x0000
  bMaxPacketSize0 =3D 0x0040
  idVendor =3D 0x0763
  idProduct =3D 0x2080
  bcdDevice =3D 0x0151
  iManufacturer =3D 0x0001  <M-Audio>
  iProduct =3D 0x0002  <Fast Track Ultra>
  iSerialNumber =3D 0x0000  <no string>
  bNumConfigurations =3D 0x0001

# usbconfig -u 7 -a 3 dump_all_config_desc
ugen7.3: <Fast Track Ultra M-Audio> at usbus7, cfg=3D0 md=3DHOST spd=3DHIGH
(480Mbps) pwr=3DON


 Configuration index 0

    bLength =3D 0x0009
    bDescriptorType =3D 0x0002
    wTotalLength =3D 0x0154
    bNumInterfaces =3D 0x0005
    bConfigurationValue =3D 0x0001
    iConfiguration =3D 0x0000  <no string>
    bmAttributes =3D 0x0080
    bMaxPower =3D 0x00f9

    Additional Descriptor

    bLength =3D 0x08
    bDescriptorType =3D 0x0b
    bDescriptorSubType =3D 0x00
     RAW dump:
     0x00 | 0x08, 0x0b, 0x00, 0x05, 0xff, 0x01, 0x00, 0x02


    Interface 0
      bLength =3D 0x0009
      bDescriptorType =3D 0x0004
      bInterfaceNumber =3D 0x0000
      bAlternateSetting =3D 0x0000
      bNumEndpoints =3D 0x0000
      bInterfaceClass =3D 0x00ff
      bInterfaceSubClass =3D 0x0001
      bInterfaceProtocol =3D 0x0000
      iInterface =3D 0x0002  <Fast Track Ultra>

      Additional Descriptor

      bLength =3D 0x0b
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x0b, 0x24, 0x01, 0x00, 0x01, 0x34, 0x00, 0x03,
       0x08 | 0x01, 0x02, 0x03


      Additional Descriptor

      bLength =3D 0x0c
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x02
       RAW dump:
       0x00 | 0x0c, 0x24, 0x02, 0x01, 0x03, 0x06, 0x00, 0x08,
       0x08 | 0x03, 0x00, 0x00, 0x00


      Additional Descriptor

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

      Additional Descriptor

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


      Additional Descriptor

      bLength =3D 0x09
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x03
       RAW dump:
       0x00 | 0x09, 0x24, 0x03, 0x04, 0x03, 0x06, 0x00, 0x03,
       0x08 | 0x00


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


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

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength =3D 0x14
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x02
       RAW dump:
       0x00 | 0x14, 0x24, 0x02, 0x01, 0x08, 0x03, 0x18, 0x04,
       0x08 | 0x44, 0xac, 0x00, 0x80, 0xbb, 0x00, 0x88, 0x58,
       0x10 | 0x01, 0x00, 0x77, 0x01


     Endpoint 0
        bLength =3D 0x0007
        bDescriptorType =3D 0x0005
        bEndpointAddress =3D 0x0001  <OUT>
        bmAttributes =3D 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize =3D 0x0138
        bInterval =3D 0x0001
        bRefresh =3D 0x0000
        bSynchAddress =3D 0x0000

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x25
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00


     Endpoint 1
        bLength =3D 0x0007
        bDescriptorType =3D 0x0005
        bEndpointAddress =3D 0x0082  <IN>
        bmAttributes =3D 0x0001  <ISOCHRONOUS>
        wMaxPacketSize =3D 0x0003
        bInterval =3D 0x0001
        bRefresh =3D 0x0000
        bSynchAddress =3D 0x0000


    Interface 2
      bLength =3D 0x0009
      bDescriptorType =3D 0x0004
      bInterfaceNumber =3D 0x0002
      bAlternateSetting =3D 0x0000
      bNumEndpoints =3D 0x0000
      bInterfaceClass =3D 0x00ff
      bInterfaceSubClass =3D 0x0002
      bInterfaceProtocol =3D 0x0000
      iInterface =3D 0x0000  <no string>


    Interface 2 Alt 1
      bLength =3D 0x0009
      bDescriptorType =3D 0x0004
      bInterfaceNumber =3D 0x0002
      bAlternateSetting =3D 0x0001
      bNumEndpoints =3D 0x0001
      bInterfaceClass =3D 0x00ff
      bInterfaceSubClass =3D 0x0002
      bInterfaceProtocol =3D 0x0000
      iInterface =3D 0x0000  <no string>

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x24, 0x01, 0x02, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength =3D 0x14
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x02
       RAW dump:
       0x00 | 0x14, 0x24, 0x02, 0x01, 0x08, 0x03, 0x18, 0x04,
       0x08 | 0x44, 0xac, 0x00, 0x80, 0xbb, 0x00, 0x88, 0x58,
       0x10 | 0x01, 0x00, 0x77, 0x01


     Endpoint 0
        bLength =3D 0x0007
        bDescriptorType =3D 0x0005
        bEndpointAddress =3D 0x0081  <IN>
        bmAttributes =3D 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize =3D 0x0138
        bInterval =3D 0x0001
        bRefresh =3D 0x0000
        bSynchAddress =3D 0x0000

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x25
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 2 Alt 2
      bLength =3D 0x0009
      bDescriptorType =3D 0x0004
      bInterfaceNumber =3D 0x0002
      bAlternateSetting =3D 0x0002
      bNumEndpoints =3D 0x0001
      bInterfaceClass =3D 0x00ff
      bInterfaceSubClass =3D 0x0002
      bInterfaceProtocol =3D 0x0000
      iInterface =3D 0x0000  <no string>

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x24, 0x01, 0x02, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength =3D 0x14
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x02
       RAW dump:
       0x00 | 0x14, 0x24, 0x02, 0x01, 0x08, 0x03, 0x18, 0x04,
       0x08 | 0x44, 0xac, 0x00, 0x80, 0xbb, 0x00, 0x88, 0x58,
       0x10 | 0x01, 0x00, 0x77, 0x01


     Endpoint 0
        bLength =3D 0x0007
        bDescriptorType =3D 0x0005
        bEndpointAddress =3D 0x0081  <IN>
        bmAttributes =3D 0x0005  <ASYNC-ISOCHRONOUS>
        wMaxPacketSize =3D 0x0138
        bInterval =3D 0x0001
        bRefresh =3D 0x0000
        bSynchAddress =3D 0x0000

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x25
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00



    Interface 3
      bLength =3D 0x0009
      bDescriptorType =3D 0x0004
      bInterfaceNumber =3D 0x0003
      bAlternateSetting =3D 0x0000
      bNumEndpoints =3D 0x0002
      bInterfaceClass =3D 0x0001
      bInterfaceSubClass =3D 0x0003
      bInterfaceProtocol =3D 0x0000
      iInterface =3D 0x0005  <Fast Track Ultra>

      Additional Descriptor

      bLength =3D 0x07
      bDescriptorType =3D 0x24
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x3f, 0x00


      Additional Descriptor

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


      Additional Descriptor

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


      Additional Descriptor

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


      Additional Descriptor

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


     Endpoint 0
        bLength =3D 0x0007
        bDescriptorType =3D 0x0005
        bEndpointAddress =3D 0x0007  <OUT>
        bmAttributes =3D 0x0002  <BULK>
        wMaxPacketSize =3D 0x0008
        bInterval =3D 0x0008
        bRefresh =3D 0x0000
        bSynchAddress =3D 0x0000

      Additional Descriptor

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


     Endpoint 1
        bLength =3D 0x0007
        bDescriptorType =3D 0x0005
        bEndpointAddress =3D 0x0087  <IN>
        bmAttributes =3D 0x0002  <BULK>
        wMaxPacketSize =3D 0x0008
        bInterval =3D 0x0000
        bRefresh =3D 0x0000
        bSynchAddress =3D 0x0000

      Additional Descriptor

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



    Interface 4
      bLength =3D 0x0009
      bDescriptorType =3D 0x0004
      bInterfaceNumber =3D 0x0004
      bAlternateSetting =3D 0x0000
      bNumEndpoints =3D 0x0000
      bInterfaceClass =3D 0x00fe
      bInterfaceSubClass =3D 0x0001
      bInterfaceProtocol =3D 0x0000
      iInterface =3D 0x0007  <M-Audio DFU>

      Additional Descriptor

      bLength =3D 0x09
      bDescriptorType =3D 0x21
      bDescriptorSubType =3D 0x01
       RAW dump:
       0x00 | 0x09, 0x21, 0x01, 0xd0, 0x07, 0x00, 0x04, 0x10,
       0x08 | 0x01



--=20
Olivier Smedts=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=A0 _
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 ASCII ribbon campaign ( )
e-mail: olivier@gid0.org=A0 =A0 =A0 =A0 - against HTML email & vCards=A0 X
www: http://www.gid0.org=A0 =A0 - against proprietary attachments / \

=A0 "Il y a seulement 10 sortes de gens dans le monde :
=A0 ceux qui comprennent le binaire,
=A0 et ceux qui ne le comprennent pas."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTi=NzB8Dne74FHE=j4jdzROEwGztQQ>