ATV1sm - Bypass for the original Apple TV's EFI verification
Go back to main page
ATV1sm
Bypass for the original Apple TV's EFI verification, allowing it to boot and run any EFI-capable OS. View on GitHub
READ THIS FIRST!
Every Apple device with IA32 EFI, including the original Apple TV, has a bug, likely in their memory map output, that results in possible soft-bricking when running Linux. If you expereince a soft-brick (LED blinking, no signal) when using ATV1sm, don't panic. Instead, follow these steps:
Remove the CMOS battery
Plug the Apple TV in and perform a PRAM/NVRAM reset (hold Command-Option-P-R on the keyboard at power-on)
Reinstall the CMOS battery
A PRAM reset before ever running ATV1sm should also work. This also happens when using ATV1sm/UEFI FreeLoader to boot Windows XP, which is why I'd still recommend NTATV for this purpose despite its lack of USB input/boot support.
Contents:
Features
Installation
Tested OSes and Loaders
How this works
Known issues
Components used
Compiling
Special Thanks
Name
Features
Virtually every 32-bit and Class-3 EFI-capable OS can now work on the original Apple TV
Can be run from a USB flash drive and installed onto the internal hard drive
USB flash drive bundled with rEFInd to allow for chainloading other EFI loaders
Automatically loads GopShim to allow for working basic video on EFI OSes such as Windows
Installation
Note: This process is easiest to do on Linux due to its handling of GPT disks. Instructions for USB disk partitioning are for Linux only.
Getting Apple Service Diagnostics
This process involves a copy of the internal Apple Service Diagnostic (ASD) tool that Apple stores and AASPs used back in the day to diagnose problems with the original Apple TV. I heard you could get one from here: https://www.mediafire.com/file/zb8gsnh2ef820dk/693-6420-A.9999.dmg
Once you've downloaded this file, you must extract it. To do so using 7-zip CLI:
7z e 693-6420-A.9999.dmg "Apple TV Diag Installer App/Apple TV Diagnostics Installer.app/Contents/Resources/AppleTVDiags01.dmg"
7z x AppleTVDiags01.dmg "FieldDiags/System"
Patching ASD with ATV1sm and GopShim
Download and unzip ATV1sm_0.1.2.zip from the GitHub releases page
Copy ASD to /System/Library/CoreServices/ASD.acm/Contents/MacOS/ASD, replacing the existing file
Copy GopShimDxe.efi to /System/Library/CoreServices/Runtime_Files/EFI/Drivers/GopShimDxe.efi
Creating a USB flash drive with ATV1sm and rEFInd
Format a USB drive as GPT. In GParted:
Select the drive
Go to Device -> Create Partition Table...
Create a FAT32 partition
Partition -> New
File system: fat32
Change partition flags
Partition -> Manage Flags
Check atvrecv
Copy the System folder we extracted and modified earlier to the root of this drive
Copy the EFI folder from ATV1sm_0.1.2.zip (contains rEFInd) to the root of this drive
In the end, your drive's layout should look like this:
Root of USB -> EFI -> boot -> bootia32.efi (and other rEFInd files)<br>-> tools -> shellia32.efi<br>-> System -> Library -> CoreServices -> ASD.acm -> Contents -> MacOS -> ASD (replaced)<br>-> Runtime_Files -> EFI -> Drivers -> GopShimDxe.efi (added)
If you did everything right, you should now be able to plug the USB flash drive into the Apple TV, turn it on, and, after a few seconds and some lines scrolling down the screen, get to the rEFInd menu!
Installing onto an ESP on the internal hard disk
Unlike with USB booting, the ESP does not have to be a special partition type in order to work. Simply mount the ESP on the installed system, copy the System folder to it (you might need to copy the files off a secondary USB flash drive, as most non-Linux OSes do not want to mount an Apple TV recovery partition), and reboot!
Note: Some OSes (notably Debian) don't install their bootloader to /EFI/BOOT by default. To resolve this, run grub-install --removable /dev/.
Tested OSes and Loaders
OS name<br>Status
rEFInd<br>Works perfectly
Alpine Linux<br>Boots, installs, runs. May result in a "soft-brick", see above. Only 194MB RAM is accessible to the system (compared to 212MB when booting with atv-bootloader).
NetBSD 10.1<br>Boots, installs, runs. 32-bit installer USB must be patched to add EFI bootloader from 64-bit NetBSD. RCA audio is quiet, optical and HDMI audio works. NVIDIA drivers do not load and must be disabled by typing userconf disable nouveau before boot at the boot shell.
9front (Plan9)<br>Boots to desktop from USB. Input works fine. Part of the screen is cut off due to
Windows 8/8.1/10 (Windows Boot Manager)<br>Installation must be done on a second machine/VM due to low RAM. Boots, but virtually unusable on 256MB RAM even when debloated. NVIDIA drivers install and work. HDMI audio does not work. RCA audio is quiet.
UEFI FreeLoader (ReactOS)<br>GCC builds hang infinitely and display corrupted characters to the screen. MSVC builds successfully boot Windows but soft-brick (see above) the Apple TV.
Haiku R1/beta5 and Nightly<br>Hangs infinitely at...