[LAU] Working MADI interfaces for Linux? Was Motu M64 Madi interface (not) class compliant?

Fernando Lopez-Lezcano nando at ccrma.Stanford.EDU
Fri Apr 30 20:37:14 CEST 2021

On 3/15/21 9:37 AM, Fernando Lopez-Lezcano wrote:
> Motu's original firmware for the AVB interfaces was upgraded early on to 
> be able to do up to 64 channels on usb2 (which I have been using 
> extensively). It was latter downgraded to just 24. I started a ticket 
> and was told that they were having (unspecified) problems with it.
> There is a hack that makes it possible to connect the linux usb driver 
> to the proprietary usb endpoints of the audio interface and thus run at 
> up to 64 channels (for 44.1/48KHz sampling rate, of course). This 
> involves kernel patches and also manually switching the interface to the 
> proprietary mode through an hhtp/json command (otherwise it just uses 
> the class compliant endpoints[*] after you plug it in). This very long 
> thread has information about this:
> https://linuxmusicians.com/viewtopic.php?f=6&t=18046&sid=3deb30fa5d04d5240741640f329aa2ea 

< just for the record, latest update >

I am using one of the solutions in that thread successfully (so far :-), 
see pages 40/41 for the latest. Running in an 8M with the latest firmware.

"Drumfix"s modified ua101 driver with matched kernel patches and 
blacklisting (as outlined in the thread) seems to work just fine in 
proprietary mode (64 channels at 48KHz sampling rate). No channel 
hopping or buzzing high frequency artifacts.

A caveat: this solution does NOT really work if the kernel is a realtime 
preemption kernel (patched with the RT patch and configured with 
CONFIG_PREEMPT_RT). Well, it works but the video performance is really 
bad in my system, choppy with periodic long lags (~> 0.5 sec) in the 
GUI. This is apparently due to the many context switches happening in 
the RT kernel because of the high rate of interrupts.

It DOES work fine in a "normal" kernel configured with CONFIG_PREEMPT=y 
(what drumfix advised), which is what I am currently using. I can run 
jackd at 128x2 which is not bad (with a few xruns if I switch desktops 
and all that, otherwise fine).

> [*] I imagine there is some initial handshake that tells the card that 
> the motu driver is accessing it, and that is obviously missing in linux

That is indeed the case. The aforementioned solution still requires a 
curl command to switch the motu to proprietary mode, but the recent root 
hack has enabled someone to figure out the usb commands used to do that, 
so this may be incorporated into the driver in the future.

-- Fernando

More information about the Linux-audio-user mailing list