Running Linux on a First Gen Apple TV
Table of Contents
Dug an old First Gen Apple TV out of a drawer with some electronics in it and did a quick search and it looks like you can install linux on it.
Went with the 32bit1 Alpine Linux distro that was recommended.
mkdir ~/AppleTV cd ~/AppleTV wget https://dl-cdn.alpinelinux.org/alpine/v3.23/releases/x86/alpine-standard-3.23.4-x86.iso # Had some issues, zero'd the drive just in case sudo dd if=/dev/zero of=/dev/sda bs=16M status=progress
Initializing The Drive
This didn't go the way the instructions foretold so here's what I did instead:
- Device -> Create Partition Table: This isn't mentioned in the instructions
at all. But used this to create what seems to be described:
- Created a boot partition at the beginning of the drive:
Partition -> New- ~500MB which should be more than enough
- Filesystem
fat32 - Set label to
boot - Apply Changes
- !!!
Partition -> FlagsTHERE IS NOatvrecvflag. Hopefully this is not a problem
- Created a root partition with the remaining space
Partition -> New- Remaining space
- Filesystem
ext4 - Apply Changes
Installed the Alpine .iso on the second partition at
/dev/sda2:sudo dd if=alpine-standard-3.23.4-x86.iso of=/dev/sda2 bs=16M status=progress
- Created a boot partition at the beginning of the drive:
Build linux-loader-appletv
> Install Clang, autoconf, automake, and libtool
apt install clang
git clone https://github.com/tpoechtrager/cctools-port.git -b 986-ld64-711 cd cctools-port/cctools ./configure --prefix=/opt/cross --target=i386-apple-darwin8 make -j$(nproc)