Linux on Apple TV
This page will is being reworked, and may be in flux. Feel free to add to it-- but at certain times it may be locked, and merged with the offline page.
- Edgar (gimli) Hucek from the mactel-linux project, and AwkwardTV contributor, has gotten the Linux kernel to boot via a custom loader-- which is itself loaded by the AppleTV boot.efi loader. gimli first got linux running on EFI-based intel Macs.
Our overall focus will now be geared towards working with gimli to extend his Linux efforts on the AppleTV
- A solution for booting any non-Apple EFI executables has not been discovered as of this writing.
A secondary, yet important focus will be providing information to enable alternative non-Apple bootloaders, and methods that do not require MacOS X
AwkwardTV Linux Project
Many of us would like to see a minimal source distribution, targeted for AppleTV and utilizing the Linux kernel, emerge with boot and kernel configs. Extras might include scripts for USB or disk image builds. Currently we will be working with gimli's Mach-O wrapper approach to bootstrapping, and this will require a MacOS X setup. His loader will require MacOS X to compile the Mach-O binary, and MacOS X will be required to manipulate the partitions to load Linux. The latter is due to incomplete HFS+ support as of kernel 2.6.20.
Please discuss your ideas on the #awkwardtv IRC Channel!
It bears mentioning that we recommend a complete backup of your original AppleTV drive before any experimentation. We have a wiki page dedicated to this subject. Remember, if you pipe the dd through gzip or bzip2, the virgin drive image created should only be ~2.5gb!
Much of the AppleTV's hardware is supported natively under the Linux kernel. In this section, we will be expanding on the Linux driver details.
GeForce 7300 Go (NV40)
- Official NVidia binary driver works without modification!
- OSS NVidia driver works without modification
(==) NV(0): Write-combining range (0x10000000,0x4000000) (II) NV(0): Using XFree86 Acceleration Architecture (XAA) Screen to screen bit blits Solid filled rectangles 8x8 mono pattern filled rectangles Indirect CPU to Screen color expansion Solid Lines Scanline Image Writes Offscreen Pixmaps Setting up tile and stipple cache: 32 128x128 slots 32 256x256 slots 16 512x512 slots
- HDMI - working (DVI tested)
- Component - not tested
Intel HD Audio
- HDA-Intel driver recognized by default
- Analogue RCA - not tested
- Optical SPDIF - not tested
- mactel-linux driver recognizes it, untested otherwise
Broadcom BCM94321MC wireless
- NDISWrapper Windows drivers - working
Our components wiki has further information about the specific chips involved.
Barebones Distro Notes
Our preferred base distrubutions:
- Lunar Linux 1.61 A full source based distro, customizable and friendly.
- ttylinux 6.0 A micro distro (8MB w/kernel)
There are a few Linux distributions specialized for Media Center usage:
Some useful components:
- elilo bootloader 3.6 (stable)
- The Linux kernel 188.8.131.52 (recent)
- NVidia binary driver (latest)
- BusyBox 1.4.2 (stable)
- MatchBox Window Manager
- XOrg X11R7.2
We would prefer a lightweight X alternative or optimized/minimal X11 build. Note: KDrive is framebuffer only.