/rosetta-spice

RosettaLinux augmentation tool

Primary LanguageRustOtherNOASSERTION

rosetta-spice (WIP)

rosetta-spice patches RosettaLinux to enable features and fix issues:

  • Enables AOT caching without involvement of the virtualization app
    • This requires the RosettaLinux version from Sonoma
  • Fixes segfaults when running patched binaries (NixOS/nixpkgs#209242)
    • No longer needed since Sonoma Beta 5 (23A5312d)!
  • Allows the use of another RosettaLinux version than what's supplied by the host

Usage

Enable the NixOS module on the guest VM. The host MacOS machine does not need modification.

Example System Flake

The NixOS module can be enabled on an aarch64-linux NixOS virtual machine via a configuration similar to the following:

{
  description = "System Configuration";

  inputs = {
     (...other inputs here...)
     rosetta-spice.url = "github:zhaofengli/rosetta-spice";
  };

  outputs = {rosetta-spice, ...}: {
    nixosConfiguration = {
      myHost = lib.nixosSystem {
        modules =
          [
            rosetta-spice.nixosModules.rosetta-spice
            (...other modules here...)
          ];
      };
    };
  };
}  

Notes

This tool does not bypass the licensing check. You must mount the Rosetta share at /run/rosetta for this to work. To quote the original message:

Rosetta is only intended to run on Apple Silicon with a macOS host using Virtualization.framework with Rosetta mode enabled