Axe-Fx II and Linux (again)

volt

Inspired
For those interested in using the Axe-Fx II with Linux, there are some really, really good news:

While the USB Midi interface already worked out of the box, until now it has been necessary to patch two files of the Linux sources (format.c and clock.c) and recompile the snd-usb-audio module to be able to use the Axe-Fx II as an audio interface, too.

From kernel version 3.10 on there is no more need to patch any kernel sources anymore! :D

Thanks to Cliff fixing the USB firmware there is no more need to modify format.c. Cliff was so kind to permit the link to the new USB firmware to be posted here. It can be downloaded here.

Thanks to the Linux community since kernel 3.10 the handling of read-only clocks (which is relevant for the Axe-Fx II) has been fixed so clock.c also does not require any patching.

For those who are running a kernel older than 3.10 and do not want or cannot upgrade to at least kernel 3.10, with the new USB firmware it is only necessary to patch clock.c (usually located under /usr/src/linux-kernelversion/sound/usb/) as follows:

Code:
diff --git a/sound/usb/clock.c b/sound/usb/clock.c
index 379baad..b05111d 100644
--- a/sound/usb/clock.c
+++ b/sound/usb/clock.c
@@ -255,6 +255,13 @@ static int set_sample_rate_v2(struct snd_usb_audio *chip, int iface,
     int err, crate;
     int clock = snd_usb_clock_find_source(chip, fmt->clock);

+    /*
+     * Fractal Audio Systems AXE-FX II does not respond to set sample rate
+     * requests, because its clock is read-only. The only valid rate is 48000.
+     */
+    if (chip->usb_id == USB_ID(0x2466, 0x8003) && rate == 48000)
+        return 0;
+
     if (clock < 0)
         return clock;

Note: The patch has been created using kernel version 3.1 and at last successfully tested with kernel 3.7.

After applying the patch the snd-usb-audio module has to be recompiled. Once the previous version of this module has been removed from the kernel and the newly built module has been added to the kernel, playback and capturing devices of the Axe-FX II appear.

Now you only need to upload the USB firmware file to the Axe-Fx II as with Windows or OSX. The way to do this automatically on Linux is using fxload with an appropiate UDEV rule. For convenience I already wrote a shell script some time ago which generates and installs such a UDEV rule. It can be downloaded here (look for Axe-Fx_II_USB_Driver_Setup_Linux*), packaged with the new USB firmware. The script also copies the USB firmware file to an approriate location and features an uninstall function as well.

After executing the script (or applying your own UDEV rule) and then switching on or rebooting the connected Axe-Fx II lsusb will report a new USB device with VID 2466 for Fractal Audio Systems and PID 8003 for the Axe-Fx II. If you like to have a named output you can add adequate entries for Fractal Audio Systems and the Axe-Fx II to the file called usb.ids (usually located under /usr/share).

Many thanks again to Cliff. :encouragement:

Merry Axemas,
volt
 
Last edited:
While it would certainly be great to have a native Linux version, I guess the probability to get one is rather low. But who knows (apart from FAS): Somewhere I read FAS uses the JUCE library which also targets Linux, so maybe...

For the moment I installed AxeEdit using WINE and it seems to work fine this way :)
 
Thanks guys, looking forward to your experiences.

Just would like to add, it was a pleasure to work this out with Cliff. Even though not telling news to this forum: it was intriguing to see how well Cliff obviously knows the code and how fast he can implement changes - hats off to him!
 
AlGrenadine was so kind to add the package with my shell script and the USB firmware to his AxeFXArchive.

The file is called "Axe-Fx_II_USB_Driver_Setup_linux.tar.bz" and can now be downloaded here: axefx.fr
 
Hi Volt and (Cliff) - thanks for doing this.
I used to run Axe-Edit 2.x under wine satisfactorily but haven't been able to run Axe-Edit 3.0. Your link to your script for installing the rule and microcode for the FX USB chip note a password of "linuxsetup" but didn't seem to work. Has the password changed? I suppose I can unpack the OSX driver and extract the USB code from there.

Thanks anyway.
Gary

P.S. Oh yes, BTW, I'm running SuSE LINUX 12.3 (32-bit)

For those interested in using the Axe-Fx II with Linux, there are some really, really good news:

While the USB Midi interface already worked out of the box, until now it has been necessary to patch two files of the Linux sources (format.c and clock.c) and recompile the snd-usb-audio module to be able to use the Axe-Fx II as an audio interface, too.

From kernel version 3.10 on there is no more need to patch any kernel sources anymore! :D

Thanks to Cliff fixing the USB firmware there is no more need to modify format.c. Cliff was so kind to permit the link to the new USB firmware to be posted here. It can be downloaded here.

Thanks to the Linux community since kernel 3.10 the handling of read-only clocks (which is relevant for the Axe-Fx II) has been fixed so clock.c also does not require any patching.

For those who are running a kernel older than 3.10 and do not want or cannot upgrade to at least kernel 3.10, with the new USB firmware it is only necessary to patch clock.c (usually located under /usr/src/linux-kernelversion/sound/usb/) as follows:

Code:
diff --git a/sound/usb/clock.c b/sound/usb/clock.c
index 379baad..b05111d 100644
--- a/sound/usb/clock.c
+++ b/sound/usb/clock.c
@@ -255,6 +255,13 @@ static int set_sample_rate_v2(struct snd_usb_audio *chip, int iface,
 	int err, crate;
 	int clock = snd_usb_clock_find_source(chip, fmt->clock);
 
+	/*
+	 * Fractal Audio Systems AXE-FX II does not respond to set sample rate
+	 * requests, because its clock is read-only. The only valid rate is 48000.
+	 */
+	if (chip->usb_id == USB_ID(0x2466, 0x8003) && rate == 48000)
+		return 0;
+
 	if (clock < 0)
 		return clock;

Note: The patch has been created using kernel version 3.1 and at last successfully tested with kernel 3.7.

After applying the patch the snd-usb-audio module has to be recompiled. Once the previous version of this module has been removed from the kernel and the newly built module has been added to the kernel, playback and capturing devices of the Axe-FX II appear.

Now you only need to upload the USB firmware file to the Axe-Fx II as with Windows or OSX. The way to do this automatically on Linux is using fxload with an appropiate UDEV rule. For convenience I already wrote a shell script some time ago which generates and installs such a UDEV rule. It can be downloaded here (password: linuxsetup; PM me, if the link should not work), packaged with the new USB firmware. The script also copies the USB firmware file to an approriate location and features an uninstall function as well.

After executing the script (or applying your own UDEV rule) and then switching on or rebooting the connected Axe-Fx II lsusb will report a new USB device with VID 2466 for Fractal Audio Systems and PID 8003 for the Axe-Fx II. If you like to have a named output you can add adequate entries for Fractal Audio Systems and the Axe-Fx II to the file called usb.ids (usually located under /usr/share).

Many thanks again to Cliff. :encouragement:

Merry Axemas,
volt
 
Hi Gary,

thanks for your interest.

The password has not changed, but there have always been some login problems. If you encounter a login error, try to refresh/reload the download page and enter the password (again).

But I would recommend to download the archive "Axe-Fx_II_USB_Driver_Setup_linux.tar.bz" from here (see post #12 above): axefx.fr

You don't need to download the OSX driver files. My package with the installer script contains all required files.

Regarding Axe-Edit 3.0.3 you can try the following (assuming installation of Axe-Edit was successful): Start winecfg, select Axe-Edit on the applications tab, head over to the libraries tab and disable dwrite.dll (Under "New override for library" type "dwrite", then click "Edit" and select "Disable").
 
Thanks Volt. I tried that. The firmware loads just fine and I tried disabling the "dwrite" dll but I still get the same result. When I launch Axe-Edit 3.0.3 the interface loads up but it doesn't connect to the Axe-FX II until I go into the Settings->Preferences dialog. There it shows that the Ports are "<<none>>" and "AXE-FX II MIDI", which has a green checkmark next to it. As soon as I select the top Port listbox as "AXE-FX II MIDI 1" the program crashes, just like it did before. In fact, if I select the only other option "Midi Through Port" it also crashes.

I have an X E-MU USB-to-Midi interface that I use all the time with my MFC-101 that works just fine. When I use it Axe-Edit 3.0.3 crashes also. It seems whatever I choose for the top drop-down selection list crashes the application.

Any ideas?
Thanks
 
Ah, sorry, I realized too late, your system is 32bit... Disabling dwrite was necessary for me, as there seems to be an issue with 64bit systems when dwrite is enabled. So dwrite should not be a problem for you and can remain enabled, I believe.

I never had a crash as you described. Do you get an error message?
 
Thanks Volt.
Here's what I see ...

shot-1.jpg

After selecting AXE-FX from the upper listbox (or any other device) ...
shot-2.jpg

Also, Fractal Bot crashes with the same message.
 
Last edited:
SUCCESS!

Thanks for the assistance Volt. It all works now. There's some strange behavior when installing/deinstalling Axe-Edit under wine on LINUX. At least, certainly OpenSuSE 12.3 LINUX. I found that the default directory for Axe-Edit existed under my home directory ~/.wine/drive_c/Program Files/Fractal Audio/Axe-FX but it was empty. Even after a reportedly successful installation. Stranger still, the Axe-Edit program would still launch and run, but crash. (Where was it finding the .exe file to execute if the directory was empty? - does it cache something somewhere?). Anyway, the solution was to manually remove (or rename) the default directory and reinstall Axe-Edit 3.0.3 in a different directory (try "Axe-Edit-3.0") and it'll work just fine. Well, that worked just fine for me and I'm a very happy camper now that I can do all my other work AND edit my Axe-FX II at the same time without leaving my LINUX behind.

Thanks again to Cliff for a great product.
-Gary
 
Back
Top Bottom