Re: Configure ALSA to handle a USB sound card

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El 19/12/11 23:19, Clemens Ladisch wrote:

> Casi wrote:
>> I intend to use the snd-usb-audio module with a Yamaha MOX6/8 built-in
>> USB audio card.
>>
>> I would be glad if only get it works as 2 audio channels (full-duplex)
>> and 1 midi port.
>> Is it possible?
>
> No, streaming works only with the correct number of channels.  :)

:) 4 better than 2 ... :? but it's odd cause the MOX USB audio card has two modes:

- 2 audio channels

- 4 audio channels

The change of mode needs reboot the hardware. In fact, 2 channels is the only mode that works for me with the "native" Windows driver cause it sucks less. Look at this:

$ diff lsusb-v_2channels.txt lsusb-v_4channels.txt

50c50

<        ** UNRECOGNIZED:  0c 24 02 03 03 06 00 02 03 00 00 00

---

>        ** UNRECOGNIZED:  0c 24 02 03 03 06 00 04 33 00 00 00

105c105

<        ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00

---

>        ** UNRECOGNIZED:  0b 24 02 01 04 03 18 01 44 ac 00

114c114

<          wMaxPacketSize     0x0120  1x 288 bytes

---

>          wMaxPacketSize     0x0240  1x 576 bytes


>
>> $ lsusb -v
>> [...]
>>         bInterfaceClass       255 Vendor Specific Class
>
> This device claims not to be compatible with a standard driver.
> To force the driver to attach to it anyway, we need to add a quirk entry.
> Please try to apply the patch below and to recompile the driver.
Thanks for the patch. This is my checking (2 audio channels mode):




Kernel:
$ uname -a
Linux casi 3.0.9-mox-v1 #1 SMP Wed Dec 21 09:37:15 CET 2011 x86_64 x86_64 x86_64 GNU/Linux


$ dmesg
[  488.027151] usb 2-1.2: new full speed USB device number 3 using ehci_hcd
[  488.670131] input: Yamaha Corporation Yamaha MOX6/MOX8 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.4/input/input12
[  488.670243] generic-usb 0003:0499:1503.0001: input,hidraw0: USB HID v1.00 Keyboard [Yamaha Corporation Yamaha MOX6/MOX8] on usb-0000:00:1d.0-1.2/input4
[  488.670280] usbcore: registered new interface driver usbhid
[  488.670282] usbhid: USB HID core driver
[  488.690184] usbcore: registered new interface driver snd-usb-audio
[  488.896074] cannot submit datapipe for urb 0, error -28: not enough bandwidth


Usb:
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 064e:a219 Suyin Corp. 1.3M WebCam (notebook emachines E730, Acer sub-brand)
Bus 002 Device 003: ID 0499:1503 Yamaha Corp.

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
     |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
         |__ Port 2: Dev 3, If 0, Class=vend., Driver=snd-usb-audio, 12M
         |__ Port 2: Dev 3, If 1, Class=vend., Driver=snd-usb-audio, 12M
         |__ Port 2: Dev 3, If 2, Class=vend., Driver=snd-usb-audio, 12M
         |__ Port 2: Dev 3, If 3, Class=vend., Driver=snd-usb-audio, 12M
         |__ Port 2: Dev 3, If 4, Class=HID, Driver=usbhid, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
     |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
         |__ Port 1: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
         |__ Port 1: Dev 3, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M

$ sudo lsusb -v -s 2:3
Bus 002 Device 003: ID 0499:1503 Yamaha Corp.
Device Descriptor:
   bLength                18
   bDescriptorType         1
   bcdUSB               2.00
   bDeviceClass          239 Miscellaneous Device
   bDeviceSubClass         2 ?
   bDeviceProtocol         1 Interface Association
   bMaxPacketSize0         8
   idVendor           0x0499 Yamaha Corp.
   idProduct          0x1503
   bcdDevice            1.00
   iManufacturer           1 Yamaha Corporation
   iProduct                2 Yamaha MOX6/MOX8
   iSerial                 0
   bNumConfigurations      1
   Configuration Descriptor:
     bLength                 9
     bDescriptorType         2
     wTotalLength          308
     bNumInterfaces          5
     bConfigurationValue     1
     iConfiguration          0
     bmAttributes         0xc0
       Self Powered
     MaxPower                2mA
     Interface Association:
       bLength                 8
       bDescriptorType        11
       bFirstInterface         0
       bInterfaceCount         4
       bFunctionClass        255 Vendor Specific Class
       bFunctionSubClass       0
       bFunctionProtocol       0
       iFunction               0
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        0
       bAlternateSetting       0
       bNumEndpoints           0
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      1
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  0a 24 01 00 01 34 00 02 01 02
       ** UNRECOGNIZED:  0c 24 02 01 01 01 00 02 03 00 00 00
       ** UNRECOGNIZED:  09 24 03 02 01 03 00 01 00
       ** UNRECOGNIZED:  0c 24 02 03 03 06 00 02 03 00 00 00
       ** UNRECOGNIZED:  09 24 03 04 01 01 00 03 00
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        1
       bAlternateSetting       0
       bNumEndpoints           0
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      2
       bInterfaceProtocol      0
       iInterface              0
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        1
       bAlternateSetting       1
       bNumEndpoints           1
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      2
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  07 24 01 01 01 01 00
       ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x01  EP 1 OUT
         bmAttributes            5
           Transfer Type            Isochronous
           Synch Type               Asynchronous
           Usage Type               Data
         wMaxPacketSize     0x0120  1x 288 bytes
         bInterval               1
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        2
       bAlternateSetting       0
       bNumEndpoints           0
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      2
       bInterfaceProtocol      0
       iInterface              0
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        2
       bAlternateSetting       1
       bNumEndpoints           1
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      2
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  07 24 01 04 01 01 00
       ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 44 ac 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x82  EP 2 IN
         bmAttributes            5
           Transfer Type            Isochronous
           Synch Type               Asynchronous
           Usage Type               Data
         wMaxPacketSize     0x0120  1x 288 bytes
         bInterval               1
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        3
       bAlternateSetting       0
       bNumEndpoints           2
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      3
       bInterfaceProtocol      0
       iInterface              0
       ** UNRECOGNIZED:  07 24 01 00 01 60 00
       ** UNRECOGNIZED:  06 24 02 01 01 00
       ** UNRECOGNIZED:  06 24 02 01 02 00
       ** UNRECOGNIZED:  06 24 02 01 03 00
       ** UNRECOGNIZED:  06 24 02 01 04 00
       ** UNRECOGNIZED:  06 24 02 01 05 00
       ** UNRECOGNIZED:  09 24 03 01 06 01 01 01 00
       ** UNRECOGNIZED:  09 24 03 01 07 01 01 01 00
       ** UNRECOGNIZED:  09 24 03 01 08 01 01 01 00
       ** UNRECOGNIZED:  09 24 03 01 09 01 01 01 00
       ** UNRECOGNIZED:  09 24 03 01 0a 01 01 01 00
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5

         bEndpointAddress     0x03  EP 3 OUT

         bmAttributes            2

           Transfer Type            Bulk

           Synch Type               None

           Usage Type               Data

         wMaxPacketSize     0x0020  1x 32 bytes

         bInterval               1

       Endpoint Descriptor:

         bLength                 7

         bDescriptorType         5

         bEndpointAddress     0x84  EP 4 IN

         bmAttributes            2

           Transfer Type            Bulk

           Synch Type               None

           Usage Type               Data

         wMaxPacketSize     0x0020  1x 32 bytes

         bInterval               1

     Interface Descriptor:

       bLength                 9

       bDescriptorType         4

       bInterfaceNumber        4

       bAlternateSetting       0

       bNumEndpoints           1

       bInterfaceClass         3 Human Interface Device

       bInterfaceSubClass      0 No Subclass

       bInterfaceProtocol      1 Keyboard

       iInterface              0

         HID Device Descriptor:

           bLength                 9

           bDescriptorType        33

           bcdHID               1.00

           bCountryCode            0 Not supported

           bNumDescriptors         1

           bDescriptorType        34 Report

           wDescriptorLength      45

          Report Descriptors:

            ** UNAVAILABLE **

       Endpoint Descriptor:

         bLength                 7

         bDescriptorType         5

         bEndpointAddress     0x85  EP 5 IN

         bmAttributes            3

           Transfer Type            Interrupt

           Synch Type               None

           Usage Type               Data

         wMaxPacketSize     0x0008  1x 8 bytes

         bInterval              16

Device Status:     0x0000

   (Bus Powered)


Audio cards:

$ cat /proc/asound/cards

  0 [Intel          ]: HDA-Intel - HDA Intel

                       HDA Intel at 0xb4400000 irq 43

  1 [MOX6MOX8       ]: USB-Audio - Yamaha MOX6/MOX8

                       Yamaha Corporation Yamaha MOX6/MOX8 at usb-0000:00:1d.0-1.2, full speed


Play:

$ aplay -l

**** Lista de PLAYBACK dispositivos hardware ****

tarjeta 0: Intel [HDA Intel], dispositivo 0: ALC272X Analog [ALC272X Analog]

   Subdispositivos: 1/1

   Subdispositivo #0: subdevice #0

tarjeta 0: Intel [HDA Intel], dispositivo 3: HDMI 0 [HDMI 0]

   Subdispositivos: 1/1

   Subdispositivo #0: subdevice #0

tarjeta 1: MOX6MOX8 [Yamaha MOX6/MOX8], dispositivo 0: USB Audio [USB Audio]

   Subdispositivos: 1/1

   Subdispositivo #0: subdevice #0


$ aplay -Ddefault:1 /usr/share/sounds/alsa/Front_Center.wav

ALSA lib conf.c:4630:(snd_config_expand) Unknown parameters 1

ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM default:1

aplay: main:660: error al abrir audio: Argumento inválido


$ alsamixer -c1

Card: Yamaha MOX6/MOX8 "This sound device doesn't have controls."


Midi:

$ aconnect -iol

cliente 0: 'System' [tipo=kernel]

     0 'Timer           '

     1 'Announce        '

cliente 14: 'Midi Through' [tipo=kernel]

     0 'Midi Through Port-0'

cliente 20: 'Yamaha MOX6/MOX8' [tipo=kernel]

     0 'Yamaha MOX6/MOX8 MIDI 1'

     1 'Yamaha MOX6/MOX8 MIDI 2'

     2 'Yamaha MOX6/MOX8 MIDI 3'

     3 'Yamaha MOX6/MOX8 MIDI 4'

     4 'Yamaha MOX6/MOX8 MIDI 5'


$ aplaymidi -p 20:0 LVB_Sonate_02no1_1.mid

... No sound in the MOX internal tone generator


Relative to 4 channels mode:

$ dmesg

...

[   94.013048] usb 2-1.2: new full speed USB device number 3 using ehci_hcd

[   94.641051] input: Yamaha Corporation Yamaha MOX6/MOX8 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.4/input/input12

[   94.641166] generic-usb 0003:0499:1503.0001: input,hidraw0: USB HID v1.00 Keyboard [Yamaha Corporation Yamaha MOX6/MOX8] on usb-0000:00:1d.0-1.2/input4

[   94.641182] usbcore: registered new interface driver usbhid

[   94.641184] usbhid: USB HID core driver

[   94.715965] usbcore: registered new interface driver snd-usb-audio


So it looks theonly difference are the wMaxPacketSize value and this dmesg error:

[ .....] cannot submit datapipe for urb 0, error -28: not enough bandwidth


Summary: at the moment the patch doesn't work for me :( ... but I'm all ears ;)

Thanks again.


------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user



[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux