Repository navigation
Releases
Stela v0.3.1
Install
Download the archive for your system, unpack it and plug in the USB stick. Then run one of these in the unpacked folder.
Make a new stick (this erases it):
sudo ./stela setup
Update an existing Stela stick to v0.3.1:
sudo ./stela setup update stela
On Windows, open Terminal with Run as administrator and write .\stela.exe in place of sudo ./stela.
Then boot the PC from the stick.
Changes
Most fixes in this release come from boot logs that users sent. They were tested in models and in a virtual machine, not on the reporters' PCs. If one of them does not work for you, please send a new boot log.
Boot
- A PC whose firmware memory map has more than 512 entries (seen on a Ryzen 5800XT board) no longer stops after about 11 seconds.
- Intel boards whose host bridge has fixed PCI command bits no longer fail when Stela takes over the PCI devices. That failure left onboard devices, such as the network adapter, without their setup.
- The boot screen no longer freezes for part of the macOS start, and a line shown from one processor is no longer lost while another updates the screen.
- A device whose start never ends is now named: each device's start line is written to the USB log before its driver runs. On the next boot Stela skips that device and says so.
stela setup repairmakes Stela try it again. A device the boot cannot go on without is never skipped. - The 30-second start limit now covers every wait a driver makes, for every kind of device.
- A boot log that cannot be saved no longer stops the boot. The screen says once that the log could not be saved.
- Failures on screen give a plain reason on their own line, with no internal debug text. Every hint to save the boot log uses
--output log.txt.
Ethernet
- v0.3.0 did not start most Realtek adapters (RTL8111G and H, RTL8411B, RTL8125, RTL8126), because it required firmware files that setup never put on the USB stick. The files are now on the stick, and an adapter starts without its file, as it does on Linux. The v0.3.0 notes said the RTL8111H worked; that was wrong for sticks made by setup.
- Intel onboard adapters (82579, I217, I218, I219) on every chipset generation: the PHY is woken before it is read, an adapter shared with the Intel management engine starts, an adapter with a failed NVM checksum starts with a warning, and an adapter with no cable starts and reports "no link".
- Intel I210, I211, I225 and I226: an adapter whose management firmware blocks the PHY reset starts.
- An adapter with no valid stored address gets a random one instead of being refused.
- Broadcom BCM57xx: an adapter left in a low power state is woken before use.
- USB Realtek RTL8153 and RTL8156 start without their firmware patch.
- Aquantia AQC100, AQC109, AQC115C and AQC116C are supported.
- A damaged received frame is dropped and counted on every driver. Before, on Broadcom and USB adapters, one bad frame could end the network setup.
- Setup waits up to 10 seconds for the link and shows the wait.
- When no adapter starts, the screen lists each network adapter found, with its IDs and the reason.
Wi-Fi does not work in this release. Work on it continues.
Disks and USB
- SATA disks that use link power management no longer fail with a disk error during the install. Stela treated a link power event as a removed disk; it now ignores those events, as Linux does.
- USB 3 devices that were already plugged in at power-on are found (the port gets a warm reset). An empty port is no longer shown as a failure.
- Each USB device found is listed in the boot log.
Setup
- On a Mac, setup no longer fails with "Operation not supported" when it writes the USB stick.
- On a Mac, the read-back check now reads the stick and not the system's cache.
repairreplaces only damaged or missing pieces, and finds a damaged piece that a boot reported.- When
update stelaneeds new boot files, it downloads only the files it reads, not the whole 2.2 GB recovery set. update osto the version a stick already has says there is nothing to update instead of failing.uninstallalso removes the firmware files it left behind before.
Building from source
- The build works with LLVM 21, 22 and 23 on Linux, and with Xcode's Apple clang 21 or newer or Homebrew LLVM on macOS. It checks its tools at the start and lists everything that is missing.
- The Linux kernel sources build with newer Clang versions (the
-Wattribute-aliaserror is fixed).
Performance
- Floating-point code leaves translated code far less often.
- Pointer authentication instructions are answered from a small cache in translated code.
- The translation cache is written while macOS runs, in small pieces, and survives a crash.
- A page of code that was read before is hashed again only when its bytes changed.
- GPU pipelines and shader libraries are built outside the frame that first uses them.
Boot log
If Stela does not work, save the boot log and include log.txt in your report:
sudo ./stela setup boot-log --output log.txt
Stela v0.3.0
Install
Download the archive for your system, unpack it and plug in the USB stick. Then run one of these in the unpacked folder.
Make a new stick (this erases it):
sudo ./stela setup
Update an existing Stela stick to v0.3.0:
sudo ./stela setup update stela
On Windows, open Terminal with Run as administrator and write .\stela.exe in place of sudo ./stela.
Then boot the PC from the stick.
Changes
Setup and updates
- Setup asks for the installer again: Offline or Online. Offline is the default on a stick of 32 GB or more. Scripts use
--installer offlineor--installer online. - Every stick now carries the firmware for every supported device. You can make the stick on any computer, not only on the PC that will run macOS.
status,repairandupdatefind the stick by themselves when only one disk holds a Stela setup.--usbis needed only when there are several.update stelaupdates sticks made with v0.1.0 and v0.2.0. When it needs new boot files, it takes them from a macOS image already on the computer or from the stick's own copy of macOS. Otherwise it downloads only the boot files, about 2.2 GB instead of the whole image.- An interrupted setup can be resumed. Setup offers to resume it, keeps every intact piece and downloads only what is missing or damaged.
- Setup uses a macOS image already on the computer instead of downloading it again.
- Every command checks free space, rights and what it must download before it changes anything.
update oson a stick with room for only one copy of macOS asks before it replaces the old copy.- Setup reads the stick back from the disk after writing, so the check sees what is really on the stick.
- Firmware downloads try git.kernel.org first and GitLab second, and name the error when both fail.
- On Windows, a command that writes disks stops at once when it does not run as administrator.
- Under
sudo, the download cache stays owned by your user. - Errors from Apple's signing service are described in plain words.
Install
- The install screen says whether it installs offline or asks Apple over the network.
- An Offline install checks the signing answers on the stick before it changes any disk. If they do not fit and there is no network, it stops with the disk untouched.
- A failed signing request is retried up to five times.
- A slow download during an Online install no longer causes a macOS watchdog panic.
- The disk picker refuses a disk Stela cannot drive before you choose it, and names RAID mode when that is the cause.
- The disk picker reads SATA disk serial numbers correctly.
- A disk chosen earlier that was wiped or repartitioned is treated as not chosen, instead of stopping the boot. A new startup choice installs macOS on another disk.
Boot logs and errors
stela setup boot-logwithout--usbreads every disk of the computer.--output FILEwrites the logs to a file.- The USB boot log is written from before the GPU starts, so a stop during GPU start is kept.
- The boot log lists every PCI device and the driver Stela gives it.
- A failed NVIDIA GPU start names the GPU, its chip and the failed step. Display adapters that Stela does not use are named on screen.
- A macOS panic now shows its message instead of ending in a silent watchdog reset.
- A device that does not start within 30 seconds is skipped, and the boot goes on.
Graphics
- GTX 16 to RTX 40 series GPUs wait for their firmware after a reset, which fixes some failed GPU starts.
- Compiled Metal pipelines are kept in a crash-safe store, so power loss and panics no longer lose them.
- A missing Metal plugin is repaired by one automatic restart, instead of stopping the boot.
- A finished GPU job no longer wakes every Metal app.
- Shader compiles no longer run inside an app's GPU call.
Performance
- macOS gets more of the PC's memory: about 2.7 GiB more on a PC with 32 GB.
- Many more floating-point and half-precision instructions run as native x86 code instead of a slow path.
- Translated code keeps vector registers in host registers, and uses AVX2 where the CPU has it.
- System calls, returns, timers and performance counters run natively in more cases.
- On CPUs that support it, waiting cores halt at once instead of spinning first.
- The translation cache drops code that no boot used for three boots in a row.
- Ethernet drivers receive packets with less copying.
Hardware support
- Ethernet: Qualcomm Atheros AR8131, AR8132, AR8151 and AR8152.
- Ethernet: Realtek RTL8111H works. A Realtek adapter that ran out of receive buffers now recovers.
- PCs whose firmware marks PCI configuration space as runtime memory are accepted.
- USB devices that connect late are found: the boot waits up to 25 seconds for a needed disk.
Fixes
- macOS keeps the correct time across restarts.
- macOS no longer panics when it writes to a cloned file.
- A warm restart no longer leaves old memory behind that made the GPU setup panic.
- A page-table bug in the NVIDIA driver's GPU memory handling is fixed.
Boot log
If Stela does not work, save the boot log and include log.txt in your report:
sudo ./stela setup boot-log --output log.txt
Stela v0.2.0
Install
Download the archive for your system, unpack it and plug in the USB stick. Then run one of these in the unpacked folder.
Make a new stick (this erases it):
sudo ./stela setup
Update an existing Stela stick to v0.2.0:
sudo ./stela setup update stela --usb /media/$USER/STELA --fetch
On Windows, open Terminal with Run as administrator and write .\stela.exe in place of sudo ./stela.
--usb takes the stick's mounted STELA volume. Run setup on the PC that will run macOS.
Then boot the PC from the stick.
Changes
Setup
- The installer now follows the stick's size. A stick of 32 GB or more gets macOS, and the install needs no internet. A smaller stick gets the network installer. The installer choice and
--install-imageare gone. - Setup asks Apple for the install's signing answers while it makes the stick and stores them there. With macOS and every answer on the stick, the install opens no network at all.
- Downloads and signing requests are retried, and a network failure or a sign-in page is named.
- Setup keeps your proxy settings when it restarts itself through
sudo. - Setup finishes writing the stick before it says done, and tells you to eject it.
- On Linux, setup says when the stick is in use instead of asking for
sudo. - Commands follow the stick to where it is mounted now, also when resuming or undoing an interrupted setup.
repairandupdate stelaadd the device firmware the last boot asked for.statusnames missing firmware.- Setup adds this computer's Intel, MediaTek or Realtek RTL8822C Wi-Fi firmware to the stick. With a Wi-Fi network, it also adds the Wi-Fi regulatory database.
- On Linux and Windows, setup lists this computer's USB Bluetooth controllers and says what Stela does with each.
Install
- An install whose network did not come up stops before the restore starts.
- A network adapter that gets no address no longer ends the install with a crash.
- The boot screen says when device firmware is missing and that
stela setup repairadds it.
Performance
- macOS gets more of the PC's memory: about 246 MiB more on a PC with 16 GB, and 1.2 GiB more with 32 GB.
- A burst of freed GPU objects no longer stalls a CPU for 100 to 300 ms.
- macOS learns sooner that GPU work has finished.
- Disk completions are seen within 20 microseconds instead of up to 1 ms.
- More half-precision and floating-point conversions run as native x86 code.
- Short loops run inside their translated block, and authenticated branches are predicted.
Hardware support
- Ethernet: Qualcomm Atheros AR816x and AR817x, and Killer E2200, E2400 and E2500.
- Ethernet: Intel 82579, I217, I218 and I219 onboard adapters.
- Wi-Fi: Intel, MediaTek and Realtek RTL8822C adapters load firmware that setup stored for their chip.
- Bluetooth: more MediaTek USB Bluetooth adapters are recognized.
- USB audio: devices with effect or processing units play sound instead of being refused.
- Wi-Fi chips and Bluetooth controllers that Stela cannot drive are named in the boot log and left alone.
Fixes
- The modeled Secure Enclave now handles keybag locking and password checks, which macOS uses to lock and unlock its data.
- A crash message keeps the exception's vector and addresses on screen and in the boot log.
- Interrupt routes that the firmware left open are closed at start.
Boot log
If Stela does not work, save the boot log and include log.txt in your report:
sudo ./stela setup boot-log --usb /media/$USER/STELA > log.txt
Stela v0.1.0
Install
Download the archive for your system, unpack it and plug in the USB stick. Then make the stick, on the PC that will run macOS (this erases the stick):
sudo ./stela setup
On Windows, open Terminal with Run as administrator and write .\stela.exe in place of sudo ./stela.
Then boot the PC from the stick.
What works
This is the first release.
Running macOS
- Stela boots unmodified macOS 27 for Apple silicon on an x86-64 PC. It presents a Mac mini (M2).
- A translator turns arm64e code into x86-64 code, ahead of time and while it runs. It covers more than 3,000 AArch64 instruction encodings and caches translated code.
- A Metal driver for NVIDIA GPUs compiles Metal shaders for the GPU. It supports the Metal3 and Apple7 GPU families.
- macOS and most apps start.
Setup
- One
stelaprogram for Linux, Windows and macOS makes the USB stick, step by step. - Setup downloads macOS from Apple, or uses an IPSW file you already have.
- The installer on the stick lets you choose the disk and the space for macOS. It can use free space, delete a partition or erase a disk. It writes nothing until you confirm.
- The network during the install can be Ethernet or Wi-Fi, with DHCP or fixed addresses (
--ipv4,--ipv4-gateway,--dns). - Maintenance commands work on an existing stick:
status,repair,update,configure,uninstall,boot-log, and backup and restore of the machine state.
Hardware support
- Ethernet: Intel I225, I226, I210, I211, I350 and 82574L; Realtek; Broadcom BCM5720, BCM5761 and BCM5762; Aquantia AQtion.
- Wi-Fi: Intel, MediaTek and Realtek RTL8822C adapters.
- Disks: NVMe and SATA (AHCI).
Boot log
If Stela does not work, save the boot log and include log.txt in your report:
sudo ./stela setup boot-log --usb /media/$USER/STELA > log.txt