Running FL Studio on Linux
FL Studio runs out of the box on Linux with Wine.
However, some additional steps are highly recommended to give you an even better experience than on Windows.
- WineASIO + Jack – for latency elimination(!) and proper audio/MIDI routing
- A fixed custom wine version – to prevent bugs & enable dual 64/32-bit VST use
- Firejail / isolation – to eliminate all risk of using untrusted binaries / VSTs
- Configuration – what I found to work best
If you feel this is too much work, please consider at least doing step #1.
Expand this section to learn more about the advantages you gain.
1. WineASIO + Jack
Jack is a low-latency Linux sound server, that can only be interfaced with by a Windows application using the WineASIO libraries. Low latency sound is only important for DAWs, so unfortunately so few people need this that it is not included by default in Wine.
Without WineASIO and Jack, what you hear is noticeably delayed to what you see on the screen by 250ms or so. And this makes composing music very uncomfortable and annoying at times, without it being immediately obvious as to why at first. In professional terms WineASIO is a necessity.
Remember to start Jack before running Wine.
2. Custom Wine Version
As of February 2026 since Wine version 10.4, a severe bug was introduced that makes sub-menus disappear. It is not clear when it will be fixed, but some progress is under way. This situation is very unusual, because FL Studio is such a major essential program.
However FL Studio is not the only concern. There are so many VSTs out there, some well programmed others very old or badly written. They could suffer the same fate at random whenever your system Wine version updates.
The solution is simple: Use whatever particular version that works and just keep using it.
Also by picking the SYSWOW version of Wine in your custom version, you can run old 32-bit-only VSTs. Which you currently can’t with the system Wine from most distributions.
When your wine version never updates, you also don’t have to update/recompile WineASIO.
3. Firejail / Security
Almost all viruses, trojans, etc. crash if run via Wine on Linux, because the trickery they use to hide themselves just doesn’t work in Wine. Just that fact makes Linux + Wine inherently *a lot* more secure. Even if a Windows-only virus were to stay alive in some crippled form, you could always spot it in the Linux task manager as a Wine application.
However it is very possible to write viruses that target Linux directly when run via Wine. And this would make such a virus even more dangerous than on Windows, due to the absence of virus scanners and unexpected nature of the problem. But so far it is not actually a concern, because those viruses don’t really exist yet.
Many applications exist such as Firejail, with which you can containerize your applications to address this remote risk. And those can make your installation ultimately secure. Firejail allows you to restrict network access and access to folders on your disk, such as your home folder.
This way, even if you ran such a “supernatural” virus, it couldn’t read or delete your sensitive files, and it couldn’t leak any information to the internet.
Thus (unlike on Windows) no matter what and where you you download it, you are safe.
1. WineASIO + Jack
Install qjackctl, run it and press “Start” in the GUI. If you press “Graph” you can customize the audio and MIDI routing. It is as simple as that.
WineASIO needs to be compiled, make sure you have all the build-essentials installed:
sudo apt install -y build-essential gcc g++ make autoconf automake libtool pkg-config git wget flex bison gperf python3 python3-pip python3-setuptools libx11-dev libxext-dev libxrender-dev libxrandr-dev libxinerama-dev libxfixes-dev libxcursor-dev libxi-dev libxcomposite-dev libxdamage-dev libxft-dev libglib2.0-dev libcups2-dev libfreetype6-dev libfontconfig1-dev libdbus-1-dev libpng-dev libjpeg-dev libtiff-dev libasound2-dev libpulse-dev libjack-jackd2-dev libxml2-dev libncurses-dev libcap-dev zlib1g-dev libbz2-dev liblzma-dev mesa-common-dev libglu1-mesa-dev wine-dev firejail
Note if you are doing step #2: In the commands below, change the empty ASIOREFRESH variable to your wine installation, e.g. ASIOREFRESH=”/opt/wine-10.3″, and run this after you have completed step #2.
Note if you are not doing #2: If you hate this entire DIY compile approach, you could instead install WineASIO via Ubuntu/Debian package manager, as explained on their Github. But this will not work for people doing step #2 and it is a similar amount of effort. After system/Wine updates, you can instantly rerun the last line with auto-complete functionality from your shell.
cd $HOME
git clone https://github.com/wineasio/wineasio
ASIOREFRESH=""; export ASIOREFRESH; cd $HOME/wineasio && git pull && { [ -z "$ASIOREFRESH" ] && make 64 && ASIOREFRESH="/usr" || make 64 PREFIX="$ASIOREFRESH"; } && { sudo sh -c 'cp build64/wineasio64.dll "$1"/lib/x86_64-linux-gnu/wine/x86_64-windows/ && cp build64/wineasio64.dll.so "$1"/lib/x86_64-linux-gnu/wine/x86_64-unix/' _ "$ASIOREFRESH"; }
You can now launch FL Studio and go to Options -> Audio settings to set your input / output device to WineASIO!
2. Custom Wine Version
Make sure you have the build-essentials installed, as mentioned in step #1. This command chain will install the 64bit 10.3 (2025) version of wine capable to run 32bit VSTs (sysWOW) into the folder: /opt/wine-10.3/
# extracts Kron4ek's build into /opt/wine-10.3 (note: /opt for Firejail)
export WINEVERSION="10.3"
wget https://github.com/Kron4ek/Wine-Builds/releases/download/${WINEVERSION}/wine-${WINEVERSION}-amd64-wow64.tar.xz
tar xvf wine-${WINEVERSION}-amd64-wow64.tar.xz
sudo mkdir -p "/opt/wine-${WINEVERSION}"
sudo mv $(tar -tf wine-${WINEVERSION}-amd64-wow64.tar.xz | head -1 | cut -d/ -f1) "/opt/wine-${WINEVERSION}"
# builds and installs the missing development headers (much faster than full build)
cd /tmp
wget https://dl.winehq.org/wine/source/${WINEVERSION%%.*}.x/wine-${WINEVERSION}.tar.xz
tar -xf wine-${WINEVERSION}.tar.xz
cd wine-${WINEVERSION}
./configure --prefix="/opt/wine-${WINEVERSION}"
sudo make install-dev
You can now refresh your WineASIO compile+install.
3. Firejail / Security
Customize the FL=… command line that runs FL Studio in Firejail – to whitelist or blacklist:
sudo bash -c 'mkdir -p "/opt/wine_FL/fakehome" && chown -R '"$USER"':'"$USER"' "/opt/wine_FL"'
# if you don't use a custom wine version, try to set WINERT to /usr (untested)
FL=; export WINERT="/opt/wine-10.3"; firejail --private="/opt/wine_FL/fakehome" --whitelist="${WINERT}" --whitelist="/opt/wine_FL/" --env=WINEARCH=win64 --env=WINEPREFIX="/opt/wine_FL/" --env=WINE=${WINERT}/bin/wine --env=XCURSOR_SIZE=16 --env=WINESERVER=${WINERT}/bin/wineserver --blacklist=/etc --blacklist=/usr/local --blacklist=/bin --blacklist=/sbin --blacklist=/srv --blacklist=/var/lib --blacklist=/var/www --blacklist=/root --blacklist=/boot --whitelist='/etc/fonts/*' --env=WINEDLLOVERRIDES="d3dcompiler_47=n;dxgi=n,b;gdiplus=n,b" --env=WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="--no-sandbox" --env=XCURSOR_THEME=core --net=none ${WINERT}/bin/wine "C:/Program Files/Image-Line/FL Studio 2024/FL64.exe"
Beware: network access is disabled: –net=none.
You can easily execute this from your shell with auto-complete by typing FL[^uparrow] or create a script file from if you prefer.
Note that your home directory inside Firejail is now “/opt/wine_FL/fakehome”, which will absorb the various custom files from FL Studio and VSTs, like your songs and presets and such.
Unfortunately with Firejail, you can’t actually whitelist folders that are inside blacklisted folders (bug?). So you have to store your samples, wine installation, etc. in some folder other than your $HOME folder, or any of the blacklisted folders.
Disable the Z:\ drive with winecfg and add your sample, VST, data and other directories to winecfg->drives as W:\, X:\ and such.
4. Configuration
You only need to install “gdiplus” for FL Studio. But from time to time random VSTs might need the other stuff and more.
# if you don't use a custom wine version, simply remove anything before "winetricks"
FLTRICKS=""; export WINERT="/opt/wine-10.3"; WINE="${WINERT}/bin/wine"; export WINESERVER="${WINERT}/bin/wineserver"; export WINEPREFIX="/opt/wine_FL"; export WINEARCH=win64; winetricks corefonts vcrun2013 vcrun2015 vcrun2017 vcrun2019 vcrun2022 d3dcompiler_47 d2d1 gdiplus mfc42 dotnet30 dotnet35 dotnet40 dotnet452 dotnet48
Don’t install DXVK, Winegecko or other manual DLL overrides, because it can break VSTs.
If you experience rendering artifacts with VSTs, there is a “plug & gear” icon tab on top of the plugin, that leads you to “Processing” sub-tab, which has “Make bridged” and “External window”. The other options usually do not really help.
It is also a good idea to go to Options->General->Display and disable “Ultrasmooth” and “Animations”.
There is a small chance that some obscure VSTs will not run, and that new VSTs require wine versions such as >10 and not much older.
You will probably never need this, but it is also possible with some effort to partially fix broken Microsoft Edge integration inside certain “obscure” VSTs (Neutone FX).
5. Conclusion
With all steps taken, Linux gives you an overall superior experience to Windows when running FL Studio professionally.
The biggest selling point is, that you can run untrusted binaries and VSTs, without any risks to your whole system. Thus giving you immense freedom, to randomly download and try out new things for free (Arrrr! ⚓), in a way that is just not sanely possible under Windows.
Fully functional low-latency MIDI and audio routing, allow you to connect external devices and other programs, some of which only exist on Linux.
Linux easily allows you to write and run scripts for the MIDI interface. And anyone can do this with Grok, ChatGPT or GLM-5 – often in less than 15-30 minutes. Those scripts can turn the useless function keys on your IBM keyboard or gamepad into MIDI notes like with a real keyboard. They can generate melodies or patterns or trigger automation. And you could even generate entire songs with MIDI scripts.
Critical AI tools such as UltimateVocalRemoverGUI or seed-vc can sometimes be very difficult or annoying to run on Windows but not Linux.
The only downside is, that a few obscure VSTs exist which will never work in Wine. And that the effort to set all this up is a little bit annoying. Most VSTs work though, and you only have to do this setup stuff once, and then never again.
The unprecedented recent surge in Linux market share, only proves that Windows has become too questionable and inferior in nature to use. However software like FL Studio and the bulk of VSTs remain deeply stuck inside the Windows API, and will always require Wine to run.
With a little bit of effort, FL Studio on Linux is a clear winner in professional audio production.
