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>