All of lore.kernel.org
 help / color / mirror / Atom feed
* [alsa-devel] Tascam US-122L - Corrupt USB descriptor
@ 2016-04-13  6:38 Simon Wood
  2016-04-13  9:01 ` Clemens Ladisch
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Simon Wood @ 2016-04-13  6:38 UTC (permalink / raw)
  To: alsa-devel; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 925 bytes --]

Hi all,
I have been struggling for the past few days to get a Tascam US-122L (USB
sound-card/midi interface) working, despite reading numerous forum
postings I have only been able to get the midi portion working.

I note that the USB descriptor seems to be corrupt. It declares 2
interfaces, but then describes 3 separate with the same interface number
for the last 2... could it be that this is confusing the Linux USB stack?

I have attached a copy of the descriptor and an annotated 'lsusb -vv'.


>From my experience with the HID subsystem, they have a mechanism for
patching HID descriptors, is the same possible for the base USB
descriptor? Trolling through 'drivers/usb' I didn't see anything... any
suggestions?

If this is possible I can try to increase the interface count and renumber
the last one.

Cheers,
Simon.

PS. For reference the device is:
Model No: US-122L
Serial: (21)0120xxx
Other barcode: 043774021628

[-- Attachment #2: us-122l-descriptors.txt --]
[-- Type: text/plain, Size: 5494 bytes --]

00000000  12 01 00 02 00 00 00 40  44 06 0e 80 00 01 01 02  |.......@D.......|
00000010  03 01 09 02 48 00 02 01  00 80 f0 09 04 00 00 00  |....H...........|
00000020  ff 00 00 00 09 04 01 00  00 ff 00 00 00 09 04 01  |................|
00000030  01 04 ff 00 00 00 09 05  81 05 4e 00 01 00 00 09  |..........N.....|
00000040  05 02 05 4e 00 01 00 00  09 05 83 02 09 00 04 00  |...N............|
00000050  00 09 05 04 02 00 02 04  00 00                    |..........|
0000005a



Bus 001 Device 042: ID 0644:800e TEAC Corp. TASCAM US-122L
--
00000000  12 01 00 02 00 00 00 40  44 06 0e 80 00 01 01 02  |.......@D.......|
00000010  03 01 __________________________________________  |....H...........|
--
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0644 TEAC Corp.
  idProduct          0x800e TASCAM US-122L
  bcdDevice            1.00
  iManufacturer           1 (error)				<------ Here be Errors!
  iProduct                2 (error)
  iSerial                 3 (error)
  bNumConfigurations      1

  Configuration Descriptor:
--
00000010  _____ 09 02 48 00 02 01  00 80 f0 ______________  |....H...........|
--
    bLength                 9
    bDescriptorType         2
    wTotalLength           72
    bNumInterfaces          2					<------- 2 interfaces
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              480mA


    Interface Descriptor:					<------ that's 1
--
00000010  _________________________________ 09 04 00 00 00  |....H...........|
00000020  ff 00 00 00 ____________________________________  |................|
--
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 

    Interface Descriptor:					<------ that's 2
--
00000020  ___________ 09 04 01 00  00 ff 00 00 00 ________  |................|
--
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 

    Interface Descriptor:					<------ that's 3, err wait...
--
00000020  _______________________________________ 09 04 01  |................|
00000030  01 04 ff 00 00 00 ______________________________  |..........N.....|
--
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1					<------ interface duplicate!!
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 

      Endpoint Descriptor:
--
00000030  _________________ 09 05  81 05 4e 00 01 00 00 __  |..........N.....|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x004e  1x 78 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0

      Endpoint Descriptor:
--
00000030  _____________________________________________ 09  |..........N.....|
00000040  05 02 05 4e 00 01 00 00  _______________________  |...N............|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x004e  1x 78 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0

      Endpoint Descriptor:
--
00000040  _______________________  09 05 83 02 09 00 04 00  |...N............|
00000050  00 ___________________________                    |..........|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
      Endpoint Descriptor:
--
00000050  __ 09 05 04 02 00 02 04  00 00                    |..........|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
Device Status:     0x0001
  Self Powered

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Tascam US-122L - Corrupt USB descriptor
  2016-04-13  6:38 [alsa-devel] Tascam US-122L - Corrupt USB descriptor Simon Wood
@ 2016-04-13  9:01 ` Clemens Ladisch
  2016-04-13  9:01 ` [alsa-devel] " Clemens Ladisch
  2016-04-13  9:02 ` Ricard Wanderlof
  2 siblings, 0 replies; 13+ messages in thread
From: Clemens Ladisch @ 2016-04-13  9:01 UTC (permalink / raw)
  To: alsa-devel; +Cc: alsa-devel

Simon Wood wrote:
> I have been struggling for the past few days to get a Tascam US-122L (USB
> sound-card/midi interface) working, despite reading numerous forum
> postings I have only been able to get the midi portion working.

Does it show up with "aplay -l"?

> I note that the USB descriptor seems to be corrupt. It declares 2
> interfaces, but then describes 3 separate with the same interface number
> for the last 2.

The descriptors describe two alternate settings for the same interface.
This is a feature, which is required for audio devices.

>   iManufacturer           1 (error)				<------ Here be Errors!
>   iProduct                2 (error)
>   iSerial                 3 (error)

It's possible that lsusb does not have the permissions needed to send
the messages to ask for the strings.  Try running it as root.


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [alsa-devel] Tascam US-122L - Corrupt USB descriptor
  2016-04-13  6:38 [alsa-devel] Tascam US-122L - Corrupt USB descriptor Simon Wood
  2016-04-13  9:01 ` Clemens Ladisch
@ 2016-04-13  9:01 ` Clemens Ladisch
  2016-04-13 14:08   ` Simon Wood
  2016-04-13 14:08   ` [alsa-devel] " Simon Wood
  2016-04-13  9:02 ` Ricard Wanderlof
  2 siblings, 2 replies; 13+ messages in thread
From: Clemens Ladisch @ 2016-04-13  9:01 UTC (permalink / raw)
  To: alsa-devel; +Cc: alsa-devel

Simon Wood wrote:
> I have been struggling for the past few days to get a Tascam US-122L (USB
> sound-card/midi interface) working, despite reading numerous forum
> postings I have only been able to get the midi portion working.

Does it show up with "aplay -l"?

> I note that the USB descriptor seems to be corrupt. It declares 2
> interfaces, but then describes 3 separate with the same interface number
> for the last 2.

The descriptors describe two alternate settings for the same interface.
This is a feature, which is required for audio devices.

>   iManufacturer           1 (error)				<------ Here be Errors!
>   iProduct                2 (error)
>   iSerial                 3 (error)

It's possible that lsusb does not have the permissions needed to send
the messages to ask for the strings.  Try running it as root.


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Tascam US-122L - Corrupt USB descriptor
  2016-04-13  6:38 [alsa-devel] Tascam US-122L - Corrupt USB descriptor Simon Wood
  2016-04-13  9:01 ` Clemens Ladisch
  2016-04-13  9:01 ` [alsa-devel] " Clemens Ladisch
@ 2016-04-13  9:02 ` Ricard Wanderlof
  2 siblings, 0 replies; 13+ messages in thread
From: Ricard Wanderlof @ 2016-04-13  9:02 UTC (permalink / raw)
  To: Simon Wood; +Cc: alsa-devel, alsa-devel


On Wed, 13 Apr 2016, Simon Wood wrote:

> Hi all,
> I have been struggling for the past few days to get a Tascam US-122L (USB
> sound-card/midi interface) working, despite reading numerous forum
> postings I have only been able to get the midi portion working.
> 
> I note that the USB descriptor seems to be corrupt. It declares 2
> interfaces, but then describes 3 separate with the same interface number
> for the last 2... could it be that this is confusing the Linux USB stack?
> 
> I have attached a copy of the descriptor and an annotated 'lsusb -vv'.
> ...

My experience of lsusb is that it can get confused and report errors when 
there in fact aren't any, especially with vendor specific classes which it 
really can only guess at.

> 
>   Configuration Descriptor:
> --
> 00000010  _____ 09 02 48 00 02 01  00 80 f0 ______________  |....H...........|
> --
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           72
>     bNumInterfaces          2					<------- 2 interfaces
>     bConfigurationValue     1
>     iConfiguration          0 
>     bmAttributes         0x80
>       (Bus Powered)
>     MaxPower              480mA
> 
> 
>     Interface Descriptor:					<------ that's 1
> --
> 00000010  _________________________________ 09 04 00 00 00  |....H...........|
> 00000020  ff 00 00 00 ____________________________________  |................|
> --
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0 
>       bInterfaceProtocol      0 
>       iInterface              0 
> 
>     Interface Descriptor:					<------ that's 2
> --
> 00000020  ___________ 09 04 01 00  00 ff 00 00 00 ________  |................|
> --
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0 
>       bInterfaceProtocol      0 
>       iInterface              0 
> 
>     Interface Descriptor:					<------ that's 3, err wait...
> --
> 00000020  _______________________________________ 09 04 01  |................|
> 00000030  01 04 ff 00 00 00 ______________________________  |..........N.....|
> --
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1					<------ interface duplicate!!
>       bAlternateSetting       1
>       bNumEndpoints           4

My knowledge of USB is sketchy since I rarely work with it on this level 
(I was working on some quirks for the Zoom R16 a while ago), but I note 
that bAlternateSetting is 1, which I think means that the device offers 
two specific ways of implementing interface no. 1. Actually, IIRC, 
alternate setting 0 normally means an interface which essentially is 
disabled, and it would certainly seem so here as the two first interface 
descriptors have 0 endpoints, whereas the one here has 4.

My wild guess is that this interface 1 / altsetting 1 represents the 
actual device in normal operation, as has 4 endpoints ...

>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0 
>       bInterfaceProtocol      0 
>       iInterface              0 
> 
>       Endpoint Descriptor:
> ...
>         bLength                 9
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            5
>           Transfer Type            Isochronous
>           Synch Type               Asynchronous
>           Usage Type               Data
>         wMaxPacketSize     0x004e  1x 78 bytes
> ...
>       Endpoint Descriptor:
> ...
>         bDescriptorType         5
>         bEndpointAddress     0x02  EP 2 OUT
>         bmAttributes            5
>           Transfer Type            Isochronous
>           Synch Type               Asynchronous
>           Usage Type               Data
>         wMaxPacketSize     0x004e  1x 78 bytes
>  ...
>       Endpoint Descriptor:
> ...
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0009  1x 9 bytes
> ...
>       Endpoint Descriptor:
> ...
>         bDescriptorType         5
>         bEndpointAddress     0x04  EP 4 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               4
>         bRefresh                0
>         bSynchAddress           0

... the two first of which are the audio interface (which uses isochronous 
data transfers), and the other two are MIDI (bulk).

I think (but could be wrong so don't take my word for it) it's a bit 
unusual that both MIDI and audio are represented by a single interface, 
but it certainly seems to be the case here.

/Ricard
-- 
Ricard Wolf Wanderlöf                           ricardw(at)axis.com
Axis Communications AB, Lund, Sweden            www.axis.com
Phone +46 46 272 2016                           Fax +46 46 13 61 30

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Tascam US-122L - Corrupt USB descriptor
  2016-04-13  9:01 ` [alsa-devel] " Clemens Ladisch
@ 2016-04-13 14:08   ` Simon Wood
  2016-04-13 14:08   ` [alsa-devel] " Simon Wood
  1 sibling, 0 replies; 13+ messages in thread
From: Simon Wood @ 2016-04-13 14:08 UTC (permalink / raw)
  To: alsa-devel; +Cc: Simon Wood, linux-usb, alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1445 bytes --]

On Wed, April 13, 2016 3:01 am, Clemens Ladisch wrote:
> Simon Wood wrote:
>
>> I have been struggling for the past few days to get a Tascam US-122L
>> (USB
>> sound-card/midi interface) working, despite reading numerous forum
>> postings I have only been able to get the midi portion working.
>
> Does it show up with "aplay -l"?

The card shows up under '/proc/asound/cards', but only as Midi. See
attached for full listing.


>> I note that the USB descriptor seems to be corrupt. It declares 2
>> interfaces, but then describes 3 separate with the same interface number
>>  for the last 2.
>
> The descriptors describe two alternate settings for the same interface.
> This is a feature, which is required for audio devices.
>
>
>> iManufacturer           1 (error)				<------ Here be Errors! iProduct
>> 2 (error)
>> iSerial                 3 (error)
>
> It's possible that lsusb does not have the permissions needed to send
> the messages to ask for the strings.  Try running it as root.

Was running as root (on Xubuntu, 2 different machines, different installs).

I note that sometimes this is OK, ie when I do '# echo 0 >
/sys/bus/usb/devices/1-2/bConfigurationValue', but then I have no
interfaces at all (no midi, no listing).

Can anyone confirm they have a US-122L working on a new kernel. Is the USB
descriptor the same as what I'm seeing, perhaps hardware changed at some
point.
Cheers,
Simon

[-- Attachment #2: aplay_l.txt --]
[-- Type: text/plain, Size: 2684 bytes --]

# cat /proc/asound/cards  > aplay_l.txt
 0 [Audigy2        ]: Audigy2 - SB Audigy 2 ZS [SB0350]
                      SB Audigy 2 ZS [SB0350] (rev.4, serial:0x20021102) at 0xccc0, irq 27
 1 [US122L         ]: USB US-122L - TASCAM US-122L
                      TASCAM US-122L (644:800e if 0 at 001/005)

# aplaymidi -l >> aplay_l.txt
 Port    Client name                      Port name
 14:0    Midi Through                     Midi Through Port-0
 16:0    SB Audigy 2 ZS [SB0350]          Audigy MPU-401 (UART)
 16:32   SB Audigy 2 ZS [SB0350]          Audigy MPU-401 #2
 17:0    Emu10k1 WaveTable                Emu10k1 Port 0
 17:1    Emu10k1 WaveTable                Emu10k1 Port 1
 17:2    Emu10k1 WaveTable                Emu10k1 Port 2
 17:3    Emu10k1 WaveTable                Emu10k1 Port 3
 20:0    TASCAM US-122L                   TASCAM US-122L MIDI 1

# aplay -l >> aplay_l.txt
**** List of PLAYBACK Hardware Devices ****
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
  Subdevices: 32/32
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
  Subdevice #14: subdevice #14
  Subdevice #15: subdevice #15
  Subdevice #16: subdevice #16
  Subdevice #17: subdevice #17
  Subdevice #18: subdevice #18
  Subdevice #19: subdevice #19
  Subdevice #20: subdevice #20
  Subdevice #21: subdevice #21
  Subdevice #22: subdevice #22
  Subdevice #23: subdevice #23
  Subdevice #24: subdevice #24
  Subdevice #25: subdevice #25
  Subdevice #26: subdevice #26
  Subdevice #27: subdevice #27
  Subdevice #28: subdevice #28
  Subdevice #29: subdevice #29
  Subdevice #30: subdevice #30
  Subdevice #31: subdevice #31
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 3: emu10k1 [Multichannel Playback]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 4: p16v [p16v]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [alsa-devel] Tascam US-122L - Corrupt USB descriptor
  2016-04-13  9:01 ` [alsa-devel] " Clemens Ladisch
  2016-04-13 14:08   ` Simon Wood
@ 2016-04-13 14:08   ` Simon Wood
  2016-04-14  7:35     ` Clemens Ladisch
  2016-04-14  7:35     ` Clemens Ladisch
  1 sibling, 2 replies; 13+ messages in thread
From: Simon Wood @ 2016-04-13 14:08 UTC (permalink / raw)
  To: alsa-devel; +Cc: Simon Wood, linux-usb, alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1406 bytes --]

On Wed, April 13, 2016 3:01 am, Clemens Ladisch wrote:
> Simon Wood wrote:
>
>> I have been struggling for the past few days to get a Tascam US-122L
>> (USB
>> sound-card/midi interface) working, despite reading numerous forum
>> postings I have only been able to get the midi portion working.
>
> Does it show up with "aplay -l"?

The card shows up under '/proc/asound/cards', but only as Midi. See
attached for full listing.


>> I note that the USB descriptor seems to be corrupt. It declares 2
>> interfaces, but then describes 3 separate with the same interface number
>>  for the last 2.
>
> The descriptors describe two alternate settings for the same interface.
> This is a feature, which is required for audio devices.
>
>
>> iManufacturer           1 (error)				<------ Here be Errors! iProduct
>> 2 (error)
>> iSerial                 3 (error)
>
> It's possible that lsusb does not have the permissions needed to send
> the messages to ask for the strings.  Try running it as root.

Was running as root (on Xubuntu, 2 different machines, different installs).

I note that sometimes this is OK, ie when I do '# echo 0 >
/sys/bus/usb/devices/1-2/bConfigurationValue', but then I have no
interfaces at all (no midi, no listing).

Can anyone confirm they have a US-122L working on a new kernel. Is the USB
descriptor the same as what I'm seeing, perhaps hardware changed at some
point.
Cheers,
Simon

[-- Attachment #2: aplay_l.txt --]
[-- Type: text/plain, Size: 2616 bytes --]

# cat /proc/asound/cards  > aplay_l.txt
 0 [Audigy2        ]: Audigy2 - SB Audigy 2 ZS [SB0350]
                      SB Audigy 2 ZS [SB0350] (rev.4, serial:0x20021102) at 0xccc0, irq 27
 1 [US122L         ]: USB US-122L - TASCAM US-122L
                      TASCAM US-122L (644:800e if 0 at 001/005)

# aplaymidi -l >> aplay_l.txt
 Port    Client name                      Port name
 14:0    Midi Through                     Midi Through Port-0
 16:0    SB Audigy 2 ZS [SB0350]          Audigy MPU-401 (UART)
 16:32   SB Audigy 2 ZS [SB0350]          Audigy MPU-401 #2
 17:0    Emu10k1 WaveTable                Emu10k1 Port 0
 17:1    Emu10k1 WaveTable                Emu10k1 Port 1
 17:2    Emu10k1 WaveTable                Emu10k1 Port 2
 17:3    Emu10k1 WaveTable                Emu10k1 Port 3
 20:0    TASCAM US-122L                   TASCAM US-122L MIDI 1

# aplay -l >> aplay_l.txt
**** List of PLAYBACK Hardware Devices ****
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
  Subdevices: 32/32
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
  Subdevice #14: subdevice #14
  Subdevice #15: subdevice #15
  Subdevice #16: subdevice #16
  Subdevice #17: subdevice #17
  Subdevice #18: subdevice #18
  Subdevice #19: subdevice #19
  Subdevice #20: subdevice #20
  Subdevice #21: subdevice #21
  Subdevice #22: subdevice #22
  Subdevice #23: subdevice #23
  Subdevice #24: subdevice #24
  Subdevice #25: subdevice #25
  Subdevice #26: subdevice #26
  Subdevice #27: subdevice #27
  Subdevice #28: subdevice #28
  Subdevice #29: subdevice #29
  Subdevice #30: subdevice #30
  Subdevice #31: subdevice #31
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 3: emu10k1 [Multichannel Playback]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Audigy2 [SB Audigy 2 ZS [SB0350]], device 4: p16v [p16v]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Tascam US-122L - Corrupt USB descriptor
  2016-04-13 14:08   ` [alsa-devel] " Simon Wood
  2016-04-14  7:35     ` Clemens Ladisch
@ 2016-04-14  7:35     ` Clemens Ladisch
  1 sibling, 0 replies; 13+ messages in thread
From: Clemens Ladisch @ 2016-04-14  7:35 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-usb, alsa-devel

Simon Wood wrote:
> The card shows up under '/proc/asound/cards', but only as Midi.

Apparently, there is no PCM device. This driver creates a special
hardware-dependent device which is intended to be used with the
Jack driver "usb_stream".

It might be possible to use the ALSA "usb_stream" plugin:
<http://www.alsa-project.org/main/index.php/Matrix:Module-usb-us122l>


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [alsa-devel] Tascam US-122L - Corrupt USB descriptor
  2016-04-13 14:08   ` [alsa-devel] " Simon Wood
@ 2016-04-14  7:35     ` Clemens Ladisch
  2016-04-14 16:20       ` Simon Wood
  2016-04-14 16:20       ` [alsa-devel] " Simon Wood
  2016-04-14  7:35     ` Clemens Ladisch
  1 sibling, 2 replies; 13+ messages in thread
From: Clemens Ladisch @ 2016-04-14  7:35 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-usb, alsa-devel

Simon Wood wrote:
> The card shows up under '/proc/asound/cards', but only as Midi.

Apparently, there is no PCM device. This driver creates a special
hardware-dependent device which is intended to be used with the
Jack driver "usb_stream".

It might be possible to use the ALSA "usb_stream" plugin:
<http://www.alsa-project.org/main/index.php/Matrix:Module-usb-us122l>


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Tascam US-122L - Corrupt USB descriptor
  2016-04-14  7:35     ` Clemens Ladisch
@ 2016-04-14 16:20       ` Simon Wood
  2016-04-14 16:20       ` [alsa-devel] " Simon Wood
  1 sibling, 0 replies; 13+ messages in thread
From: Simon Wood @ 2016-04-14 16:20 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-usb, alsa-devel

On Thu, April 14, 2016 1:35 am, Clemens Ladisch wrote:
> Simon Wood wrote:
>
>> The card shows up under '/proc/asound/cards', but only as Midi.
>>
>
> Apparently, there is no PCM device. This driver creates a special
> hardware-dependent device which is intended to be used with the Jack driver
> "usb_stream".
>
>
> It might be possible to use the ALSA "usb_stream" plugin:
> <http://www.alsa-project.org/main/index.php/Matrix:Module-usb-us122l>

I have this '.asoundrc' file (made before previous postings), but that
does not seem to make a usable card.

I'm expecting that a PCM device should /just/ appear under 'aplay -l', but
that is not happening. Perhaps there is a step I am missing, or I am just
confused about what qualifies a 'working' US-122L.

Do I need to be using a specific version of (userland) Alsa?

It would be nice to get a 'nod' from a person who has the US-122L workin
on their system. But I do appreciate Clemens' help and guidance,
Simon.

--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [alsa-devel] Tascam US-122L - Corrupt USB descriptor
  2016-04-14  7:35     ` Clemens Ladisch
  2016-04-14 16:20       ` Simon Wood
@ 2016-04-14 16:20       ` Simon Wood
  2016-04-14 17:10         ` Clemens Ladisch
  2016-04-14 17:10         ` [alsa-devel] " Clemens Ladisch
  1 sibling, 2 replies; 13+ messages in thread
From: Simon Wood @ 2016-04-14 16:20 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-usb, alsa-devel

On Thu, April 14, 2016 1:35 am, Clemens Ladisch wrote:
> Simon Wood wrote:
>
>> The card shows up under '/proc/asound/cards', but only as Midi.
>>
>
> Apparently, there is no PCM device. This driver creates a special
> hardware-dependent device which is intended to be used with the Jack driver
> "usb_stream".
>
>
> It might be possible to use the ALSA "usb_stream" plugin:
> <http://www.alsa-project.org/main/index.php/Matrix:Module-usb-us122l>

I have this '.asoundrc' file (made before previous postings), but that
does not seem to make a usable card.

I'm expecting that a PCM device should /just/ appear under 'aplay -l', but
that is not happening. Perhaps there is a step I am missing, or I am just
confused about what qualifies a 'working' US-122L.

Do I need to be using a specific version of (userland) Alsa?

It would be nice to get a 'nod' from a person who has the US-122L workin
on their system. But I do appreciate Clemens' help and guidance,
Simon.

--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Tascam US-122L - Corrupt USB descriptor
  2016-04-14 16:20       ` [alsa-devel] " Simon Wood
@ 2016-04-14 17:10         ` Clemens Ladisch
  2016-04-14 17:10         ` [alsa-devel] " Clemens Ladisch
  1 sibling, 0 replies; 13+ messages in thread
From: Clemens Ladisch @ 2016-04-14 17:10 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-usb, alsa-devel

Simon Wood wrote:
> On Thu, April 14, 2016 1:35 am, Clemens Ladisch wrote:
>> Simon Wood wrote:
>>> The card shows up under '/proc/asound/cards', but only as Midi.
>>
>> Apparently, there is no PCM device. This driver creates a special
>> hardware-dependent device which is intended to be used with the Jack driver
>> "usb_stream".
>>
>> It might be possible to use the ALSA "usb_stream" plugin:
>> <http://www.alsa-project.org/main/index.php/Matrix:Module-usb-us122l>
>
> I have this '.asoundrc' file (made before previous postings), but that
> does not seem to make a usable card.

What error message do you get when you try to use aplay with that device?

> I'm expecting that a PCM device should /just/ appear under 'aplay -l'

The driver does not implement such a PCM device.


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [alsa-devel] Tascam US-122L - Corrupt USB descriptor
  2016-04-14 16:20       ` [alsa-devel] " Simon Wood
  2016-04-14 17:10         ` Clemens Ladisch
@ 2016-04-14 17:10         ` Clemens Ladisch
  1 sibling, 0 replies; 13+ messages in thread
From: Clemens Ladisch @ 2016-04-14 17:10 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-usb, alsa-devel

Simon Wood wrote:
> On Thu, April 14, 2016 1:35 am, Clemens Ladisch wrote:
>> Simon Wood wrote:
>>> The card shows up under '/proc/asound/cards', but only as Midi.
>>
>> Apparently, there is no PCM device. This driver creates a special
>> hardware-dependent device which is intended to be used with the Jack driver
>> "usb_stream".
>>
>> It might be possible to use the ALSA "usb_stream" plugin:
>> <http://www.alsa-project.org/main/index.php/Matrix:Module-usb-us122l>
>
> I have this '.asoundrc' file (made before previous postings), but that
> does not seem to make a usable card.

What error message do you get when you try to use aplay with that device?

> I'm expecting that a PCM device should /just/ appear under 'aplay -l'

The driver does not implement such a PCM device.


Regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Tascam US-122L - Corrupt USB descriptor
@ 2016-04-13  6:38 Simon Wood
  0 siblings, 0 replies; 13+ messages in thread
From: Simon Wood @ 2016-04-13  6:38 UTC (permalink / raw)
  To: alsa-devel; +Cc: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 951 bytes --]

Hi all,
I have been struggling for the past few days to get a Tascam US-122L (USB
sound-card/midi interface) working, despite reading numerous forum
postings I have only been able to get the midi portion working.

I note that the USB descriptor seems to be corrupt. It declares 2
interfaces, but then describes 3 separate with the same interface number
for the last 2... could it be that this is confusing the Linux USB stack?

I have attached a copy of the descriptor and an annotated 'lsusb -vv'.


>From my experience with the HID subsystem, they have a mechanism for
patching HID descriptors, is the same possible for the base USB
descriptor? Trolling through 'drivers/usb' I didn't see anything... any
suggestions?

If this is possible I can try to increase the interface count and renumber
the last one.

Cheers,
Simon.

PS. For reference the device is:
Model No: US-122L
Serial: (21)0120xxx
Other barcode: 043774021628

[-- Attachment #2: us-122l-descriptors.txt --]
[-- Type: text/plain, Size: 5649 bytes --]

00000000  12 01 00 02 00 00 00 40  44 06 0e 80 00 01 01 02  |.......@D.......|
00000010  03 01 09 02 48 00 02 01  00 80 f0 09 04 00 00 00  |....H...........|
00000020  ff 00 00 00 09 04 01 00  00 ff 00 00 00 09 04 01  |................|
00000030  01 04 ff 00 00 00 09 05  81 05 4e 00 01 00 00 09  |..........N.....|
00000040  05 02 05 4e 00 01 00 00  09 05 83 02 09 00 04 00  |...N............|
00000050  00 09 05 04 02 00 02 04  00 00                    |..........|
0000005a



Bus 001 Device 042: ID 0644:800e TEAC Corp. TASCAM US-122L
--
00000000  12 01 00 02 00 00 00 40  44 06 0e 80 00 01 01 02  |.......@D.......|
00000010  03 01 __________________________________________  |....H...........|
--
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0644 TEAC Corp.
  idProduct          0x800e TASCAM US-122L
  bcdDevice            1.00
  iManufacturer           1 (error)				<------ Here be Errors!
  iProduct                2 (error)
  iSerial                 3 (error)
  bNumConfigurations      1

  Configuration Descriptor:
--
00000010  _____ 09 02 48 00 02 01  00 80 f0 ______________  |....H...........|
--
    bLength                 9
    bDescriptorType         2
    wTotalLength           72
    bNumInterfaces          2					<------- 2 interfaces
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              480mA


    Interface Descriptor:					<------ that's 1
--
00000010  _________________________________ 09 04 00 00 00  |....H...........|
00000020  ff 00 00 00 ____________________________________  |................|
--
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 

    Interface Descriptor:					<------ that's 2
--
00000020  ___________ 09 04 01 00  00 ff 00 00 00 ________  |................|
--
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 

    Interface Descriptor:					<------ that's 3, err wait...
--
00000020  _______________________________________ 09 04 01  |................|
00000030  01 04 ff 00 00 00 ______________________________  |..........N.....|
--
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1					<------ interface duplicate!!
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 

      Endpoint Descriptor:
--
00000030  _________________ 09 05  81 05 4e 00 01 00 00 __  |..........N.....|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x004e  1x 78 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0

      Endpoint Descriptor:
--
00000030  _____________________________________________ 09  |..........N.....|
00000040  05 02 05 4e 00 01 00 00  _______________________  |...N............|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x004e  1x 78 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0

      Endpoint Descriptor:
--
00000040  _______________________  09 05 83 02 09 00 04 00  |...N............|
00000050  00 ___________________________                    |..........|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
      Endpoint Descriptor:
--
00000050  __ 09 05 04 02 00 02 04  00 00                    |..........|
--
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
Device Status:     0x0001
  Self Powered

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-04-14 17:10 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-13  6:38 [alsa-devel] Tascam US-122L - Corrupt USB descriptor Simon Wood
2016-04-13  9:01 ` Clemens Ladisch
2016-04-13  9:01 ` [alsa-devel] " Clemens Ladisch
2016-04-13 14:08   ` Simon Wood
2016-04-13 14:08   ` [alsa-devel] " Simon Wood
2016-04-14  7:35     ` Clemens Ladisch
2016-04-14 16:20       ` Simon Wood
2016-04-14 16:20       ` [alsa-devel] " Simon Wood
2016-04-14 17:10         ` Clemens Ladisch
2016-04-14 17:10         ` [alsa-devel] " Clemens Ladisch
2016-04-14  7:35     ` Clemens Ladisch
2016-04-13  9:02 ` Ricard Wanderlof
2016-04-13  6:38 Simon Wood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.