FL Studio on Fedora (with PipeASIO and sandboxing)
FL runs suprisingly well under Wine. It’s also a good idea to keep it in a sandboxed environment so it can’t access the rest of your system.
PipeASIO is a brilliant alternative to WineASIO which skips the Jack compatibility layer altogether.
Build PipeASIO on Fedora
First, the building blocks:
sudo dnf install wine cmake gcc-c++ wine-devel pipewire-devel qt6-qtbase-devel firejail
Now you’re ready to build PipeASIO:
git clone https://github.com/M0n7y5/pipeasio.git
cd pipeasio
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build --prefix "$HOME/.local"
Initialize Wine Prefix
Create an isolated container for FL Studio to live in:
mkdir -p ~/isolated-apps/flstudio/wineprefix
firejail \
--private="$HOME/isolated-apps/flstudio" \
--whitelist="$HOME/isolated-apps/flstudio" \
--env=WINEPREFIX="$HOME/wineprefix" \
--env=WINEARCH=win64 \
wine wineboot --init
Verify the structure exists:
ls ~/isolated-apps/flstudio/wineprefix
You should see drive_c, system.reg, and related files.
Install FL Studio
Keep the installer inside the sandbox. This way nothing else needs whitelisting.
cp /path/to/FLStudio_installer.exe ~/isolated-apps/flstudio/
Run the installer. Network is open here - it needs to check licensing:
firejail \
--private="$HOME/isolated-apps/flstudio" \
--whitelist="$HOME/isolated-apps/flstudio" \
--env=WINEPREFIX="$HOME/wineprefix" \
wine "$HOME/flstudio_win64_25.2.5.5319.exe"
The command may hang after the installer finishes. Stop it with Ctrl+C.
Install PipeAsio
On Fedora with Wine-Staging 11, there’s a naming mismatch that breaks at runtime.
Copy the built DLLs into Wine’s system path:
sudo cp ~/.local/lib/wine/x86_64-windows/pipeasio64.dll /usr/lib64/wine-wow64/wine/x86_64-windows/
sudo cp ~/.local/lib/wine/x86_64-unix/pipeasio64.dll.so /usr/lib64/wine-wow64/wine/x86_64-unix/
Now the critical part: create a symlink. Wine’s builtin-DLL loader looks for pipeasio.dll internally, but the actual file is named pipeasio64.dll. Without this, you get “couldn’t load in-process dll” at runtime - the registration succeeds, but the load fails.
sudo ln -sf /usr/lib64/wine-wow64/wine/x86_64-unix/pipeasio64.dll.so \
/usr/lib64/wine-wow64/wine/x86_64-unix/pipeasio.dll.so
This is a quirk in how pipeasio’s CMake build names its output versus what it bakes into the PE header.
Register into the prefix:
export WINEPREFIX="$HOME/isolated-apps/flstudio/wineprefix"
~/.local/bin/pipeasio-register
wineboot -u
Check it worked:
find ~/isolated-apps/flstudio/wineprefix -iname "*pipeasio*"
You should see the registered DLL entries.
Daily Launch
Create a script that runs FL Studio inside firejail:
cat > ~/isolated-apps/flstudio/run.sh << 'EOF'
#!/bin/bash
firejail \
--noprofile \
--net=none \
--private="$HOME/isolated-apps/flstudio" \
--whitelist="$HOME/isolated-apps/flstudio" \
--whitelist=/run/user/1000 \
--whitelist=/tmp/.X11-unix \
--env=WINEPREFIX="$HOME/wineprefix" \
--env=DISPLAY="$DISPLAY" \
--env=WAYLAND_DISPLAY="$WAYLAND_DISPLAY" \
--env=XDG_RUNTIME_DIR=/run/user/1000 \
--caps.drop=all \
--seccomp \
--private-dev \
--nonewprivs \
--noroot \
wine "C:\\Program Files\\Image-Line\\FL Studio 2025\\FL64.exe"
EOF
chmod +x ~/isolated-apps/flstudio/run.sh
Run it:
~/isolated-apps/flstudio/run.sh
Open Audio Settings in FL Studio. PipeAsio should appear as an ASIO driver. If you prefer to use FL Cloud or other network features, drop the --net=none flag.