DISCLAIMER: FOR THE AXE FX 2, NOT AXE FX 3
The setup is as follows:
- Install Axe-Edit in a WINE prefix.
- Install USB firmware that configures the AxeFX II as a FX2-style device instead of a generic audio device.
I recommend using Bottles. It's the easiest way to get going in a nice isolated Flatpak environment. You can also just use winetricks. I'll expand on each when I get the time. For now, if you don't know how to use WINE, I recommend learning about it first.
Then download the Axe-Edit II installer from the Fractal Audio's website.
Run the executable in your WINE prefix of choice. In Bottles just pick "Run application" and choose the installer EXE file. Run through the install wizard and you're done. Check that the GUI shows up. But don't expect it to say it's connected yet. For that we need the firmware patch.
Udev is used to support hotplugging user-space devices such as network cables and various USB devices. On Arch Linux, since systemd is core to the distro, this is already installed as part of that. We need to tell udev that the AxeFX isn't some generic audio device, but actually a Cypress FX2 USB microcontroller (whatever that means) and to use something called fxload to run the firmware.
Install fxload from the AUR (unfortunately it isn't in the core repos):
# Install fxload
# Remember to check the PKGBUILD!
yay -S fxloadThen we need to download the firmware blob. This was the real doozy and required a lot of digging to find. But you need to get the package here. Download the axefx-usb-firmware-1.0.tar.xz file from the latest source (last published on 2018-04-30, don't expect that'll change ever again). Note that the site is extremely slow, but the file is tiny. Keep trying and it'll eventually respond.
Extract the tar.xz file and copy the axefx2-usb-fw.hex file to a system-directory such as /usr/share/axefx2:
# Enter the extacted directory
cd ./axefx2-usb-firmware
# Copy the firmware blob to a system directory to be loaded later
sudo cp ./axefx2-usb-fw.hex /usr/share/axefx2Lastly, we need to tell udev to use fxload to run the firmware when it detects a specific USB device matching the AxeFX II.
In /etc/udev/rules.d/ create a new file. I named mine 71-axefx2.rules. The number 71 here is just to set the order in which the rules are loaded and probably doesn't matter. Then fill it with the content:
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="2466", ATTR{idProduct}=="0003", RUN+="/usr/bin/fxload -t fx2 -d 2466:0003 -i /usr/share/axefx2/axefx2-usb-fw.hex"
This makes it so that whenever a USB device with the Vencor ID 2466 and Product ID 0003 connects to the computer, fxload is called to run the firmware we downloaded. These IDs happen to match the AxeFX II.
And now that this is done, a simple reboot and you should be able to boot up Axe-Edit and start working with your device.