Interfejs gitarowy Eleven Rack

Gdy jakieś urządzenie nie chce w Slackware działać...

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
sectt
Użytkownik
Posty: 139
Rejestracja: 2006-06-04, 12:15
Lokalizacja: Kraków
Kontakt:

Interfejs gitarowy Eleven Rack

Post autor: sectt »

Hej,
walczę od pewnego czasu z interfejsem gitarowym Eleven Rack, firma nie supportuje tego pod linuksem(tylko windows i mac) ale...
Znalazłem jakieś szczątkowe informacje w sieci, że niektórym działa ale nic więcej - jakby nie chcieli sie podzielić informacją.

Tak więc :
lsusb :

Kod: Zaznacz cały

Bus 004 Device 002: ID 8087:8000 Intel Corp. 
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8087:8008 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 04f2:b414 Chicony Electronics Co., Ltd 
Bus 001 Device 003: ID 8087:07dc Intel Corp. 
Bus 001 Device 006: ID 0dba:b011 Digidesign Eleven Rack
Bus 001 Device 005: ID 0b05:17fd ASUSTek Computer, Inc. 
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb -d 0dba:b011 -v

Kod: Zaznacz cały

Bus 001 Device 006: ID 0dba:b011 Digidesign Eleven Rack
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0dba Digidesign
  idProduct          0xb011 Eleven Rack
  bcdDevice           20.01
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x01a3
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      0 
      iInterface              3 
      Device Firmware Upgrade Interface Descriptor:
        bLength                             7
        bDescriptorType                    33
        bmAttributes                        1
          Will Not Detach
          Manifestation Intolerant
          Upload Unsupported
          Download Supported
        wDetachTimeout                   2000 milliseconds
        wTransferSize                    1032 bytes
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         1
      bInterfaceCount         4
      bFunctionClass        255 Vendor Specific Class
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               2 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol     32 
      iInterface              2 
      ** UNRECOGNIZED:  09 24 01 00 02 0a ae 00 01
      ** UNRECOGNIZED:  11 24 02 00 01 01 00 80 06 00 00 00 00 00 00 00 00
      ** UNRECOGNIZED:  0c 24 03 03 01 06 00 40 80 00 00 00
      ** UNRECOGNIZED:  11 24 02 02 01 06 00 80 08 00 00 00 00 00 00 00 00
      ** UNRECOGNIZED:  0c 24 03 01 01 01 00 41 80 00 00 00
      ** UNRECOGNIZED:  10 24 09 20 ff ff 01 00 06 00 00 00 00 00 01 00
      ** UNRECOGNIZED:  1a 24 04 40 02 20 02 06 00 00 00 00 00 00 00 00 00 0c 30 c3 0c 30 c3 00 00 00
      ** UNRECOGNIZED:  16 24 04 41 01 02 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ** UNRECOGNIZED:  0a 24 0b 80 03 81 82 83 03 00
      ** UNRECOGNIZED:  08 24 0a 81 03 03 00 00
      ** UNRECOGNIZED:  08 24 0a 82 00 05 00 00
      ** UNRECOGNIZED:  08 24 0a 83 00 05 00 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0043
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   4 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   4 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4
        bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 5
        iJack                   5 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 6
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 7
        bNrInputPins            1
        baSourceID( 0)          6
        BaSourcePin( 0)         1
        iJack                   5 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 8
        bNrInputPins            1
        baSourceID( 0)          5
        BaSourcePin( 0)         1
        iJack                   0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       1
          baAssocJackID( 1)       5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       3
          baAssocJackID( 1)       7
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol     32 
      iInterface              0 
      ** UNRECOGNIZED:  10 24 01 00 00 01 01 00 00 00 06 00 00 00 00 00
      ** UNRECOGNIZED:  06 24 02 01 04 20
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x01a0  1x 416 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2 
      bInterfaceProtocol     32 
      iInterface              0 
      ** UNRECOGNIZED:  10 24 01 01 00 01 01 00 00 00 08 00 00 00 00 00
      ** UNRECOGNIZED:  06 24 02 01 04 20
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x01a0  1x 416 bytes
        bInterval               1
Znalazłem na alsa-devel, że gość próbował to podłączyć przez snd_usb moduł, więc nałożyłem patcha (Strona ta już dostała -> 403 Forbidden) ale jest jeszcze kopia w google (https://webcache.googleusercontent.com/ ... clnk&gl=pl) na sound/usb/quirks-table.h :

Kod: Zaznacz cały

USB_DEVICE_VENDOR_SPEC(0x0dba, 0xb011),

        .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
                .vendor_name = "Digidesign",
                .product_name = "Eleven Rack",
                .ifnum = QUIRK_ANY_INTERFACE,
                .type = QUIRK_COMPOSITE,
                .data = & (const struct snd_usb_audio_quirk[]) {

                        {
                                .ifnum = 1,
                                .type = QUIRK_AUDIO_STANDARD_MIXER
                        },
                        {
                                .ifnum = 3,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE

                        },
                        {
                                .ifnum = 4,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
                        {
                                .ifnum = -1
                        }
                }
        }
 }
Po zbudowaniu w dmesg dostałem, że nie może pobrać sample rate z interfejsu, znalazłem w sieci kolejny fix który nałożyłęm na sound/usb/format.c (sprawdziłem sample rates na urządzeniu -> 44100) :

Kod: Zaznacz cały

if (ret < 0) {

 switch (chip->usb_id) {

 case USB_ID(0x0dba, 0xb011): /* Eleven Rack */
 dev_info(&dev->dev,
 "%s(): Eleven Rack: unable to retrieve number of sample rates. Set it to default value (clock %d).\n",__func__, clock);

 fp->nr_rates = 1;
 fp->rate_min = 44100;
 fp->rate_max = 44100;
 fp->rates = SNDRV_PCM_RATE_44100;
 fp->rate_table = kmalloc(sizeof(int), GFP_KERNEL);
 if (!fp->rate_table) {
    ret = -ENOMEM;
    goto err_free;
 }
 fp->rate_table[0] = 44100;
 return 0;
 default:
 dev_err(&dev->dev,
 "%s(): unable to retrieve number of sample rates (clock %d)\n",
 __func__, clock);
 goto err;
 }
}
Po przebudowaniu, dmesg zwróciło i utknąłem :

Kod: Zaznacz cały

[  152.114655] usb 1-4: new high-speed USB device number 6 using xhci_hcd
[  152.268388] usb 1-4: New USB device found, idVendor=0dba, idProduct=b011, bcdDevice=20.01
[  152.268393] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  152.268395] usb 1-4: Product: Eleven Rack
[  152.268397] usb 1-4: Manufacturer: Digidesign
[  152.311112] usb 1-4: parse_audio_format_rates_v2v3(): Eleven Rack: unable to retrieve number of sample rates. Set it to default value (clock 129).
[  152.312918] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.316184] usbcore: registered new interface driver snd-usb-audio
[  152.364920] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.366262] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.366991] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.367432] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.368070] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.371067] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.372155] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.372496] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.373180] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.373894] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.376748] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.377498] usb 1-4: 4:1: cannot set enable PITCH (v2)
[  152.378690] usb 1-4: 4:1: cannot set enable PITCH (v2)
Jestem zielony jeżeli chodzi o pisanie jakiś sterowników kernela, może ktoś z was ma większą wiedzę lub pomysł ?
Albo niech powie, żebym sobie dał spokój :razz:

Pozdrawiam,
sectt


ODPOWIEDZ