OS for compiling in Linux?
-
@d-healey This is a bit old, but.. I’m now trying to use Linux on a Silicon Mac. I understand that Mint doesn’t work with ARM processors. If I use Ubuntu 20.04 Focal (ARM version), will the plugins I export work on non‑ARM computers? If not.. is there another alternative?
-
@bendurso The only distro I know that somewhat runs on Apple silicon is Asahi Linux, but I believe there are still some driver issues and I'm not sure which generation of M chip it supports.
I believe if you manage to install it, and then manage to build HISE on it, you'll end up with an ARM build that probably won't run on many (or any) other distros.
All of this is a guess because I haven't tried it.
I think you'll have better luck using an Intel/amd system, either dedicated to Linux or using a virtual machine. I do all my builds with virtual machines on a Proxmox server.
-
@d-healey said in OS for compiling in Linux?:
Great, thanks! I also just found something called QEMU, which allows you to emulate (rather than virtualize) any operating system on Silicon Macs. That means I could run Mint on my Mac M4. I’m going to give it a try.
-
@bendurso Yeah Proxmox uses qemu too
-
@d-healey Oh nice, but if I do it on my computer is free hehe
The proxmox server is a paid subscription right? Or there is a free version? -
@bendurso Proxmox is free and open source, there is a paid repo with some enterprise stuff but we don't need it. I followed this course - https://www.youtube.com/playlist?list=PLT98CRl2KxKHnlbYhtABg6cF50bYa8Ulo
-
@bendurso You can virtualise ARM Linux with UTM, but then use Rosetta to provide the x86 emulation:
Rosetta
Documentation for UTM virtual machines
UTM Documentation (docs.getutm.app)
I've not tried it yet, so don't know how practical it is in use, but it should perform significantly better than emulating the entire OS.
-
@d-healey thanks I will check it :)
@modularsamples Thanks, sounds good. I ended up using UTM in emulation mode, but yeah… it’s really slow. I actually have an old Mac running Mint that feels faster than this emulation.This virtualization with Rosetta sounds promising. But it’s really important that all the libraries and dependencies are installed for x86_64, right? Because if we build HISE using some ARM libraries, then the resulting plugin wouldn’t work correctly on x86_64 machines I think.
-
@bendurso said in OS for compiling in Linux?:
But it’s really important that all the libraries and dependencies are installed for x86_64, right? Because if we build HISE using some ARM libraries, then the resulting plugin wouldn’t work correctly on x86_64 machines I think.
If you want to distribute on x86, probably. I had a little play around with this earlier, and was able to get HISE up running on an ARM version of Debian 12 natively, but ran into problems adding the amd64 versions of the dependancies Clang, llvm and build-essentials (the rest install okay):
clang-14:amd64 : Depends: libclang-common-14-dev:amd64 (= 1:14.0.6-12) but it is not installable Recommends: llvm-14-dev:amd64 but it is not going to be installed Recommends: python3:amd64 but it is not going to be installed dpkg-dev : Depends: make Depends: binutils but it is not installable Recommends: build-essential but it is not installable python3 : PreDepends: python3-minimal (= 3.11.2-1+b1) but it is not going to be installed Depends: python3.11 (>= 3.11.2-1~) but it is not going to be installed
We should be able to specify an architecture when building:
TARGET_ARCH='-march=x86-64' make config=RELEASE
But this just gives us an error and list of acceptable values (all ARM), so it seems likely either the missing dependancies need fixing, or there's some other step being missed..
-
@modularsamples Nice, thanks for the details.
I think I’m going to get a decent Intel computer to compile for Windows and Linux x86—it’ll be easier, hehe.