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!
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:
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
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!
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: