All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
       [not found] ` <55EC7191.8020107@googlemail.com>
@ 2015-09-19  9:20   ` sypwex
  2015-09-21 17:09     ` Daniel Mack
  0 siblings, 1 reply; 7+ messages in thread
From: sypwex @ 2015-09-19  9:20 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: alsa-user, alsa-devel, daniel, sypwex

ow, sorry! I not mentioned that there is no PID of Maschine Mikro (0x1110)
in caiaq device list
*https://github.com/torvalds/linux/blob/v4.2/sound/usb/caiaq/device.h
<https://github.com/torvalds/linux/blob/v4.2/sound/usb/caiaq/device.h>*

yes there is some endless dump from usbhid but I don't know how to deal
with it
$sudo usbhid-dump --entity=all --address=1:15
http://pastebin.com/raw.php?i=KC96ERSV (300KiB)

ok, I've tried to extend the driver and end up with following doodad
https://github.com/krasnobaev/linux/commits/feature/caiaq-mmikro-1
for every commit I've generated dmesg log
*http://pastebin.com/raw.php?i=pJzdAyf4
<http://pastebin.com/raw.php?i=pJzdAyf4>*
$amidi -l
have no devices
$cat /proc/asound/cards
 4 [MaschineMikro  ]: snd-usb-caiaq - Maschine Mikro
                      Native Instruments Maschine Mikro (usb-0000:00:02.1-8)
$cat /proc/asound/devices
 24: [ 4]   : control
$cat /proc/asound/oss/sndstat
Sound Driver:3.8.1a-980706 (ALSA emulation code)
Kernel: Linux ***** 3.19.0+ #1 SMP Sun Sep 13 10:44:23 MSK 2015 x86_64
Config options: 0

Installed drivers:
Type 10: ALSA emulation

Card config:
X-Fi Extreme Audio [SB0790] at 0xdc00 irq 18
HDA NVidia at 0xfcf7c000 irq 19
Aureal Vortex au8810 at 0xfbfc0000 irq 17
Webcam C170 at usb-0000:00:02.1-4, high speed
Native Instruments Maschine Mikro (usb-0000:00:02.1-8)

Audio devices:
0: CA0106 (DUPLEX)
2: au8810 adb (DUPLEX)
3: USB Audio

Synth devices: NOT ENABLED IN CONFIG

Midi devices:
0: CA0106 MPU-401 (UART)
2: au8810 MIDI 2

Timers:
31: system timer

Mixers:
0: CA0106
1: Nvidia GPU 1c HDMI/DP
2: Wolfson WM9701,WM9701A
3: USB Mixer
4: Maschine Mikro
$cat /proc/asound/oss/devices
 64: [4- 0]: mixer


So, currently customized driver fails (all info in dmesg log) on every
usb_submit_urb and usb_set_interface functions, so I've decided to watch
wireshark usb logs of windows driver

filtered windows log (usb.transfer_type != 0x01) && (usb.device_address ==
3)
http://filebin.ca/2G6kerv8x9TD/usbpcap-maschine-mikro-win7-x86-3maschinesoftw-usb.transfer_type0x01usb.device_address3.txt
RAW
http://filebin.ca/2G6g6civjKfI/usbpcap-maschine-mikro-win7-x86-3maschinesoftw.pcap

filtered log for custom driver
http://filebin.ca/2G6kFZxgTTKR/usbpcap-maschine-mikro-ubuntu15.04-linux3.19-x64-caiaq-mmikro-1-31d6809-usb.device_address10usb.transfer_type0x01.txt
RAW
http://filebin.ca/2G6oNuU6c6b5/usbpcap-maschine-mikro-ubuntu15.04-linux3.19-x64-caiaq-mmikro-1-31d6809.pcapng

the difference is...
 - windows driver do not send SET INTERFACE request while native caiaq
driver is.
 - windows driver receives Response and Status on each request while caiaq
recieves only Response
 - windows driver send two GET_REPORT with wValues: 0x03f8 and 0x0101 while
caiaq driver sends three GET_REPORT requests with wValues: 0x0101, 0x0120,
0x03f8
 - windows send 3 SET_REPORT requests with same wValue 0x03f8 while caiaq
driver do not send any SET_REPORT request

I do not know what means these wValues (0x0101, 0x0120, 0x03f8) and how to
find out.

Is there probability if linux driver send SET_REPORT requests in the same
way as do windows driver - the device will set up correctly?
How to send SET REPORT request?

I believe that there is no big difference between Maschine Controller and
Maschine Mikro.
BUT
there is no Maschine Mikro on caiaq portfolio
http://caiaq.de/references_en.html



On Sun, Sep 6, 2015 at 8:02 PM, Clemens Ladisch <cladisch@googlemail.com>
wrote:

> sypwex wrote:
> > Native Instruments Mashine Mikro which is snd-usb-caiaq.
>
> No it's not; the Maschine Mikro is not the same as the Maschine Controller.
>
> As far as I can see from your lsusb output, the Mikro either works as
> a HID input device, or needs a separate driver.  To check the first
> possibility, try a tool like <https://github.com/DIGImend/usbhid-dump>.
>
>
> Regards,
> Clemens
>

Cheers.

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

* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
  2015-09-19  9:20   ` [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa sypwex
@ 2015-09-21 17:09     ` Daniel Mack
  2015-09-21 20:10       ` sypwex
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Mack @ 2015-09-21 17:09 UTC (permalink / raw)
  To: sypwex, Clemens Ladisch; +Cc: alsa-user, alsa-devel, daniel

On 09/19/2015 11:20 AM, sypwex wrote:
> ow, sorry! I not mentioned that there is no PID of Maschine Mikro
> (0x1110) in caiaq device list
> _https://github.com/torvalds/linux/blob/v4.2/sound/usb/caiaq/device.h_
> 
> yes there is some endless dump from usbhid but I don't know how to deal
> with it
> $sudo usbhid-dump --entity=all --address=1:15
> http://pastebin.com/raw.php?i=KC96ERSV (300KiB)
> 
> ok, I've tried to extend the driver and end up with following doodad
> https://github.com/krasnobaev/linux/commits/feature/caiaq-mmikro-1
> for every commit I've generated dmesg log
> _http://pastebin.com/raw.php?i=pJzdAyf4_

Maschine Mikro is a class compliant USB device which implements a
completely different protocol compared to the old devices. The
snd-usb-caiaq driver is unsuitable of handling and of the details
exposed by device, so this approach is definitely a dead end.

What does 'lsusb -v' show when you plug in the device?


Thanks,
Daniel

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

* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
  2015-09-21 17:09     ` Daniel Mack
@ 2015-09-21 20:10       ` sypwex
  2015-09-22 11:17         ` Daniel Mack
  0 siblings, 1 reply; 7+ messages in thread
From: sypwex @ 2015-09-21 20:10 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-user, alsa-devel, Clemens Ladisch, daniel, sypwex

Thanks for the reply!

>What does 'lsusb -v' show when you plug in the device?
the exactly `lsusb -v` out is here http://pastebin.com/raw.php?i=trmwPjGF

information only about 17cc:1110 (`sudo lsusb -D /dev/bus/usb/001/010`):

Device: ID 17cc:1110 Native Instruments
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x17cc Native Instruments
  idProduct          0x1110
  bcdDevice            0.37
  iManufacturer           1 Native Instruments
  iProduct                2 Maschine Mikro
  iSerial                 6 677AC139
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           57
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              450mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              4 Maschine Mikro HID
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     367
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      1
      iInterface              5 Maschine Mikro DFU
      Device Firmware Upgrade Interface Descriptor:
        bLength                             7
        bDescriptorType                    33
        bmAttributes                        7
          Will Not Detach
          Manifestation Tolerant
          Upload Supported
          Download Supported
        wDetachTimeout                    250 milliseconds
        wTransferSize                      64 bytes
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)


-- 
Regards!

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

* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
  2015-09-21 20:10       ` sypwex
@ 2015-09-22 11:17         ` Daniel Mack
  2015-09-22 19:03           ` sypwex
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Mack @ 2015-09-22 11:17 UTC (permalink / raw)
  To: sypwex; +Cc: alsa-user, alsa-devel, Clemens Ladisch

On 09/21/2015 10:10 PM, sypwex wrote:
> Thanks for the reply!
> 
>> What does 'lsusb -v' show when you plug in the device?
> the exactly `lsusb -v` out is here http://pastebin.com/raw.php?i=trmwPjGF
> 
> information only about 17cc:1110 (`sudo lsusb -D /dev/bus/usb/001/010`):
> 
> Device: ID 17cc:1110 Native Instruments
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x17cc Native Instruments
>   idProduct          0x1110
>   bcdDevice            0.37
>   iManufacturer           1 Native Instruments
>   iProduct                2 Maschine Mikro
>   iSerial                 6 677AC139
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           57
>     bNumInterfaces          2
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0x80
>       (Bus Powered)
>     MaxPower              450mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      0 No Subclass
>       bInterfaceProtocol      0 None
>       iInterface              4 Maschine Mikro HID

Yes, this device only offers HID and DFU (for firmware updates), so
you'll have to parse the HID data it produces. Use the hidraw interface
to get to the uncached information. Whether you can use an existing tool
to do that depends on what you want to achieve with this device.

In either case, there is no hardware MIDI port on this device, so the
firmware doesn't offer that as class compliant interface. NI's own
software stack might offer that, but that's a pure virtual MIDI device then.


HTH,
Daniel

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

* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
  2015-09-22 11:17         ` Daniel Mack
@ 2015-09-22 19:03           ` sypwex
  2015-09-23  6:44             ` Daniel Mack
  0 siblings, 1 reply; 7+ messages in thread
From: sypwex @ 2015-09-22 19:03 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-user, alsa-devel, Clemens Ladisch, sypwex

On Tue, Sep 22, 2015 at 2:17 PM, Daniel Mack <daniel@zonque.org> wrote:
>
> Yes, this device only offers HID and DFU (for firmware updates), so
> you'll have to parse the HID data it produces.
>

Ok, but device looks like powered off - no flashes on tap and LED
display is blank. When I firstly attach USB cable all buttons flashes
but then it looks like switched off.

On windows when I plug in the device, LED display offers to start up
in MIDI mode (SHIFT+F1) - is it controlled by driver or this is
behavior of firmware?

Thanks,
Aleksey.

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

* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
  2015-09-22 19:03           ` sypwex
@ 2015-09-23  6:44             ` Daniel Mack
  2015-09-24  9:04               ` sypwex
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Mack @ 2015-09-23  6:44 UTC (permalink / raw)
  To: sypwex; +Cc: alsa-user, alsa-devel, Clemens Ladisch

On 09/22/2015 09:03 PM, sypwex wrote:
> On Tue, Sep 22, 2015 at 2:17 PM, Daniel Mack <daniel@zonque.org> wrote:
>>
>> Yes, this device only offers HID and DFU (for firmware updates), so
>> you'll have to parse the HID data it produces.
>>
> 
> Ok, but device looks like powered off - no flashes on tap and LED
> display is blank. When I firstly attach USB cable all buttons flashes
> but then it looks like switched off.

Everything from that point on is under control of the host software.

> On windows when I plug in the device, LED display offers to start up
> in MIDI mode (SHIFT+F1) - is it controlled by driver or this is
> behavior of firmware?

I've personally never used this device, so I can't tell you what they
do. You need to sniff the USB traffic the Windows software issues to the
device and find out which HID controls they touch in order to set LEDs
and issue display commands. IOW: you need to re-engineer the HID
mapping. That's tedious, but doable.


HTH,
Daniel

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

* Re: [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa
  2015-09-23  6:44             ` Daniel Mack
@ 2015-09-24  9:04               ` sypwex
  0 siblings, 0 replies; 7+ messages in thread
From: sypwex @ 2015-09-24  9:04 UTC (permalink / raw)
  To: Daniel Mack; +Cc: alsa-user, alsa-devel, Clemens Ladisch, sypwex

On Wed, Sep 23, 2015 at 9:44 AM, Daniel Mack <daniel@zonque.org> wrote:
> On 09/22/2015 09:03 PM, sypwex wrote:
>> On Tue, Sep 22, 2015 at 2:17 PM, Daniel Mack <daniel@zonque.org> wrote:
>>>
>>> Yes, this device only offers HID and DFU (for firmware updates), so
>>> you'll have to parse the HID data it produces.
>>>
>>
>> Ok, but device looks like powered off - no flashes on tap and LED
>> display is blank. When I firstly attach USB cable all buttons flashes
>> but then it looks like switched off.
>
> Everything from that point on is under control of the host software.
>
>> On windows when I plug in the device, LED display offers to start up
>> in MIDI mode (SHIFT+F1) - is it controlled by driver or this is
>> behavior of firmware?
>
> I've personally never used this device, so I can't tell you what they
> do. You need to sniff the USB traffic the Windows software issues to the
> device and find out which HID controls they touch in order to set LEDs
> and issue display commands. IOW: you need to re-engineer the HID
> mapping. That's tedious, but doable.
>
>
> HTH,
> Daniel
>

Thanks Daniel!

Looks like I got the idea. I'll try it next week.

Cheers!

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

end of thread, other threads:[~2015-09-24  9:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <CAGPstWvoprjRHN2+xZe5w+=pPkOqcqQdR4t7bYY_MgXwKbPD4A@mail.gmail.com>
     [not found] ` <55EC7191.8020107@googlemail.com>
2015-09-19  9:20   ` [Alsa-user] snd-usb-caiaq (NI Maschine Mikro) device not recognised by alsa sypwex
2015-09-21 17:09     ` Daniel Mack
2015-09-21 20:10       ` sypwex
2015-09-22 11:17         ` Daniel Mack
2015-09-22 19:03           ` sypwex
2015-09-23  6:44             ` Daniel Mack
2015-09-24  9:04               ` sypwex

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.