[Fixed] Linux: USB Overflows

Awesome.

Dunno how they are going to react to a device specific patch tho.

Finger crossed here.

Well there's prior art already (M-Audio FastTrack and Roland see https://github.com/torvalds/linux/blob/master/sound/usb/pcm.c#L330).

I'm still unsure why they expect both end-point descriptors to be part of the same interface descriptor: https://github.com/torvalds/linux/blob/master/sound/usb/pcm.c#L389

I don't see anything in the USB 2.0 spec requiring that for implicit feedback.
 
I don't see anything in the USB 2.0 spec requiring that for implicit feedback.

Just glanced through the USB specs. Maybe it is because according to section 9.6.6 of the USB 2.0 spec a feedback endpoint
(explicit or implicit) needs to be associated with one (or more) isochronous data endpoints to which it provides feedback
service. The specs state that the association is based on endpoint number matching. This probably happens only for the
endpoints which belong to a specific interface descriptor.
 
Last edited:
Just glanced through the USB specs. Maybe it is because according to section 9.6.6 of the USB 2.0 spec a feedback endpoint
(explicit or implicit) needs to be associated with one (or more) isochronous data endpoints to which it provides feedback
service. The specs state that the association is based on endpoint number matching. This probably happens only for the
endpoints which belong to a specific interface descriptor.

Yeah that's the section I was reading. I did not find any description on how the association is supposed to work; and there's no wording about both descriptors having to be in the same interface descriptor.

The bigger issue I suppose is according to that section the implicit data feedback end-point number should match the first data sink end-point number, but in the current set of descriptors the OUT one is number 2, the implicit feedback ep is number 6.
 
Wow, amazing work. Is there a way to test that on a 16.04?

I've created a PPA that has packages for 16.04 and 16.10:
https://launchpad.net/~albaguirre/+archive/ubuntu/axe-fx2

For both installing the firmware and the patched snd-usb-audio kernel module.

I tested it on my 16.10 main machine and a 16.04 live CD.

sudo add-apt-repository -y ppa:albaguirre/axe-fx2
sudo apt update
sudo apt install -y snd-usb-audio-dkms axefx2-usb-firmware
 
Last edited:
With the patched ASLA usb-audio kernel module, I can also use jack now. Before I couldn't even start it when I selected the Axe-Fx II as the output.

So now I got Reaper 64-bit through wine64 + wineasio 64-bit, pulseaudio-module-jack and Pianoteq all going through jack, configured for 64 samples.

Gone are the days when pulseaudio would not interact well with JACK. Now a days (after sudo apt install -y pulseaudio-module-jack) if pulseaudio is using the Axe-FX II and I start JACK, pulseaudio automagically relinquishes it and inserts a JACK sink which you can select through the Sound settings - Useful for when you are playing say a backtrack and you want to start using a synth like Pianoteq but keep the backtrack going through the browser.
 
So now I got Reaper 64-bit through wine64 + wineasio 64-bit, pulseaudio-module-jack and Pianoteq all going through jack, configured for 64 samples.
How is using Reaper via WINE? My DAW experience begun with Pro Tools on OSX because the studios I worked with used but I used Linux for everything else since forever.
I started using Reaper recently and being able to run it smoothly on Linux would be a nice touch.
 
How is using Reaper via WINE? My DAW experience begun with Pro Tools on OSX because the studios I worked with used but I used Linux for everything else since forever.
I started using Reaper recently and being able to run it smoothly on Linux would be a nice touch.

It works pretty good, but a bit annoying to have to compile wineasio (The no-redistribution license on asio sdk headers is so dumb)

There's only two settings to configure in Reaper: In Options->Preferences, Audio->Buffering, uncheck "Use native events for synchronizing" and Appearance->UI Updates select Lazy Always.

There's also a native Linux Reaper port Cockos is working on: http://www.landoleet.org/dev/
but it's still early (but functional).
 
I love linux, use it nearly every day from a server perspective. Running it as a desktop has always had it's quirks, but things have gotten so much better through the years.

Just wanted to give a big Kudos to @AlbertA for undertaking the challenge and fixing all this himself. Pretty impressive!
 
This thread makes me want to install linux again :) .. been a few years now since the last time ..
I'm a Slackware fan .. just love it ..

I really like everything about linux .. :)
 
Back
Top Bottom