Stela

A general purpose Apple Silicon layer for x86-64 PCs. It is a UEFI boot program with an arm64-to-x86-64 translator, a Metal driver for NVIDIA GPUs and a model of Apple silicon hardware. Stela currently presents itself as an M2 Mac mini. > [!WARNING] Stela is still in development. It is slow and still may not boot on supported hardware. Fixes are on the way, please submit a GitHub Issue with your boot logs if you encounter an error! ## Translator An ahead-of-time and just-in-time compiler translates arm64e code to x86-64. It covers more than 3,000 AArch64 instruction encodings, maps guest registers to host registers and caches translated code. ## NVIDIA driver The Metal driver compiles AIR, Metal's shader IR, directly to NIR, Mesa's IR, and supports the Metal3 and Apple7 GPU families. ## Hardware requirements | Part | Requirement | |---|---| | CPU | Intel or AMD x86-64-v2 (Intel Nehalem, AMD Bulldozer or newer). AVX2 and AVX-512 are used when present. | | Memory | 8 GB or more. | | Firmware | 64-bit UEFI with Secure Boot off. | | GPU | NVIDIA GeForce GTX 16 or RTX 20, 30, 40 or 50 series. | | Disk | NVMe, or SATA in AHCI mode. 60 GB or more for macOS: a GPT partition or a whole disk to erase. | | USB stick | 8 GB for the Online installer, 32 GB for the Offline installer. | | Ethernet | Intel I225, I226, I210, I211, I350, 82574L, 82575, 82576, 82579, 82580, I217, I218, I219.
Realtek RTL8111, RTL8168, RTL8169, RTL8411, RTL8125, RTL8126, Killer E2600, E3000.
Broadcom BCM5720, BCM5761, BCM5762.
Aquantia AQC100, AQC107, AQC108, AQC109, AQC111, AQC112, AQC113, AQC114, AQC115C, AQC116C.
Qualcomm Atheros AR8131, AR8132, AR8151, AR8152, AR8161, AR8162, AR8171, AR8172, Killer E2200, E2400, E2500.
USB: Realtek RTL8152, RTL8153, RTL8156, ASIX AX88179, AX88178A, AX88772, CDC ECM and NCM. | | Wi-Fi | None currently supported. | | Bluetooth | USB and Intel PCIe controllers. | | Audio | None currently supported. | | USB | xHCI (USB 3) and EHCI controllers, hubs, USB disks. | | Input | USB keyboards and mice. PS/2 keyboards, mice and Synaptics or Elantech touchpads. | ## Install 1. Download `stela` from the [releases page](https://github.com/tylertms/Stela/releases). 2. Run `sudo ./stela setup` (Linux, macOS) or double-click `stela.exe` (Windows). 3. Choose the USB stick, the installer, the macOS version and the Mac model, then confirm. Setup erases the USB stick. 4. Boot the PC from the USB stick. ## Update Download the new `stela`, plug the USB stick in and run: ```sh sudo ./stela setup update stela ``` On Windows, open Terminal with Run as administrator and run: ``` .\stela.exe setup update stela ``` ## Logs If Stela does not work, plug the USB stick into the computer that made it and save the boot log. Include `log.txt` in your GitHub Issue. ```sh sudo ./stela setup boot-log --output log.txt ``` On Windows, open Terminal with Run as administrator and run: ``` .\stela.exe setup boot-log --output log.txt ``` ## Build You need [Rust](https://rustup.rs), git, Python 3.10 or newer, and LLVM 21, 22 or 23 with Clang, LLD and libclang. On macOS, Xcode's Apple clang 21 or newer also works. ```sh git clone https://github.com/tylertms/Stela cd Stela cargo xtask dist ``` This writes `target/release/stela`. The first build fetches and compiles Linux, Mesa and LLVM sources and takes a long time. ## Legal Stela contains no Apple software. You are responsible for following Apple's software license agreement and terms of use. Stela's code is GPL-2.0-or-later. See [LICENSE](LICENSE) and [NOTICE](NOTICE). ## Community [Discord Server](https://discord.gg/aSkwrJEMYc)