Replies: 4 comments
-
This is possible. Because Parallels Desktop 19 supports it. |
Beta Was this translation helpful? Give feedback.
-
Docker Desktop also integrates Rosetta 2. |
Beta Was this translation helpful? Give feedback.
-
Interested in trying out arm64 linux + VirGL + Rosetta 2. If I'm running it on a Mac I'm not stealing rosetta right? |
Beta Was this translation helpful? Give feedback.
-
also now we get UTM 4.6.1 release notes say about TSO in QEMU backend useful for Rosetta for Linux:
so any update on QEMU+Rosetta for Linux? |
Beta Was this translation helpful? Give feedback.
-
Rosetta is only available in the Virtualization.Framework backend. Here the
rosetta
binary can be mounted from a VirtioFS and then registered to the kernel (binfmt_misc
) as a launcher for x86 binaries. The rosetta binary makes sure that it is launched from the VirtioFS by opening/proc/self/exe
(which is a symlink torosetta
) and doing an ioctl to this file at some address and then expecting the filesystem to return the poemImpressed by this credulity I thought about a good way to make Rosetta accessible to QEMU based emulations. Patching out the "safety"-check makes rosetta work in QEMU virtualizations for most binaries but doesn't work for others. My guess is that it got something to do with a CPU feature that rosetta makes use of but is not supported in QEMU. I read that the Apple Silicon supports the strict x86 memory order model which rosetta somehow enables for the translated binary. Maybe this misses support in QEMU?
Now to the main question: Could UTM support Rosetta 2 in QEMU? Distributing patched versions of Apples
rosetta
binary isn't an option obviously. Maybe we could start a VM in Virtualization.Framework that just boots a linux kernel and then relays the binary (including ioctl's to it) to QEMU virtual machines? Given that we fix QEMU to support Rosetta's translated binaries.Let me know what you think about this.
Beta Was this translation helpful? Give feedback.
All reactions