ATV1sm: Bypass for the original Apple TV's EFI verification to boot any EFI OS

866-RON-0-FEZ1 pts0 comments

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...

apple drive boot system atv1sm copy

Related Articles