Tuneando el AppleTV II: Instalando Linux…
Comenzamos la segunda parte del tuto. Aunque en principio iba a poner las dos variantes,  AppleTV OS y Linux, al final he decido poner solo la de Linux por varias razones: soporta 1080p y tiene más opciones de personalización.
Antes de empezar aclarar que con este tuto se perderán todos los datos del disco duro interno del appletv, por lo que se recomienda hacer backup o bien, sustituir el disco duro por otro. De todas maneras, existe una manera de recuperar el appletv sin hacer backup, pero eso formará parte de la cuarta parte que escribiré mas adelante. Es posible que algunos pasos varien según el ordenador que se utilice, yo uso mac y por lo tanto los pasos están adecuados a MAC OS. Comenzamos!
Prerequisitos:
- Un USB Hub
- Un teclado USB o bluetooth soportado por linux.
- Un pendrive de 256 mb o más (aunque 64 mb son suficientes)
- Un servidor DHCP
- El AppleTV conectado a la red
- Un PC/MAC/Linux conectado a la misma red
** Crear el USB de arranque:
Nos descargamos el atvusb-creator y lo ejecutamos. Una vez que termine el proceso veremos que aparece un volumen vacio llamado PATCHSTICK. Descargamos y descomprimimos ahà la instalación por red de ubuntu. La encontramos aqui. Quedaros simplemente con los archivos initrd.gz y linux que encontrareis en ubuntu-installer/i386 del archivo descomprimido.
** Reparticionado del disco duro:
Atención, llegamos al punto de no retorno. A partir de aquà perderemos todo el contenido del disco duro.Arrancamos el AppleTV con el usb que hemos creado antes pinchado. Cuando lo encendamos pulsamos simultanetamente las teclas menu y ‘-’ para que arranque desde ahÃ. Si todo ha salido bien, encontraremos algo similar a esto: pebuntu login:
Nos conectamos al AppleTV a través de telnet. Siempre va a ser más comodo trabajar desde un portatil/sombremesa que directamente en el AppleTV.: telnet <ip del AppleTV>. El usuario y password es root/root.
Generalmente el disco interno del appletv es /dev/sda, aunque a veces esto puede variar. Una manera de comprobarlo es ejecutando:
parted /dev/sda -s print
(en el caso de que vuestro disco sea el de 40 Gb obtendremos algo similar a esto:)
Model: FUJITSU Â K00FT7125M1W (scsi)
Disk /dev/sda: 78140160s
Sector size (logical/physical): 512B/512B
Partition Table: gptNumber  Start   End     Size    File system  Name    Flags   1    40s    69671s   69632s   fat32     EFI    boot   2    69672s   888823s   819152s   hfs+     Recovery  atvrecv  3    888824s  2732015s  1843192s  hfs+     OSBoot       4    2732016s  77878015s  75146000s  hfs+     Media
Una vez comprobado nos ponemos manos a la obra, si vuestro disco no es /dev/sda, cambiar todas las menciones /dev/sda a lo que corresponda en vuestro caso:
# Formateamos el disco duro
dd if=/dev/zero of=/dev/sda bs=4096 count=1M
# Creamos la estructura incial gpt
parted -s /dev/sda mklabel gpt
# Creamos la particion EFI de 25MB (empezando en el secto 40, esto es muy importante!)
parted -s /dev/sda mkpart primary fat32 40s 25M parted -s /dev/sda set 1 boot on
# Creamos la particion RECOVERY de 25MB
parted -s /dev/sda mkpart primary HFS 25M 50M parted -s /dev/sda set 2 atvrecv on
# Creamos la particion OSBOOT de 25MB
parted -s /dev/sda mkpart primary HFS 50M 75M
# Creamos la partición Linux
parted -s /dev/sda mkpart primary ext3 75M 38.9GB
# Creamos la partición swap.
parted -s /dev/sda mkpart primary linux-swap 38.9GB 40.0GB
El tamaño de estas dos ultimas pueden variar según el espacio que le querais dar a la swap
# Sincronizamos
partprobe /dev/sda
# Verificamos
parted -s /dev/sda print
# DeberÃamos obtener algo similar a esto:
Model: FUJITSU Â K00FT7125M1W (scsi)
Disk /dev/sda: 78140160s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number  Start  End   Size   File system  Name   Flags
1    20.5kB  25.0MB  25.0MB        primary  boot
2    25.0MB  50.0MB  25.0MB        primary  atvrecv
3 Â Â Â 50.0MB Â 75.0MB Â 25.0MB Â Â Â Â Â Â Â primary
4 Â Â Â 75.0MB Â 38.9GB Â 38.8GB Â Â Â Â Â Â Â primary
5 Â Â Â 38.9GB Â 40.0GB Â 1104MB Â Â Â Â Â Â Â primary
# Formateamos.
mkfs.msdos -F 32 -n EFI /dev/sda1
mkfs.hfsplus -v Recovery /dev/sda2
mkfs.hfsplus -v OSBoot /dev/sda3 mkfs.ext3 Â -b 4096 -L Linux /dev/sda4 sync
Una vez hecho esto, instalamos el atv-bootloader.
# Descargamos atv-recovery.
wget http://atv-bootloader.googlecode.com/files/recovery-0.6.tar.gz tar -xzf recovery-0.6.tar.gz
# Hacemos varios puntos de montaje.
mkdir /mnt/osboot /mnt/recovery
# Montamos las particiones.
fsck.hfsplus /dev/sda2
mount /dev/sda2 /mnt/recovery
fsck.hfsplus /dev/sda3
mount /dev/sda3 /mnt/osboot
# Copiamos el atv-bootloader.
cp -arp recovery/* /mnt/osboot/ cp -arp recovery/* /mnt/recovery/
# Recordar copiar el boot.efi, lo podemos encontrar en el usb.
mkdir tmp mount /dev/sdb1 tmp
cp -ap tmp/boot.efi /mnt/osboot
cp -ap tmp/boot.efi /mnt/recovery
umount /dev/sdb1
Ya estamos preparados para instalar linux: Las rutas pueden varias según donde hayáis descomprimido los ficheros linux initrd.gz
mount /dev/sdb3 tmp
kexec –load tmp/linux –initrd=tmp/initrd.gz –command-line=”nosplash vesa video=vesafb”
kexec -e
DeberÃa apareceros en vuestro televisor la pantalla de instalación de linux por red. Simplemente seguir las instrucciones, seleccionado /dev/sda4 como partición de linux y formateando en EXT3 y /dev/sda4 como linux-swap. Teneis que crear un usuario. NO useis xbmc, ese le crearemos luego.
Cuando os pida que paquetes quereis instalar, simplemente seleccionar openssh y (opcional) smb server. El grub lo instalais en /dev/sda4 (aunque da lo mismo)
Una vez instalado, arrancamos nuevamente desde USB, aún quedan por cambiar un par de cosas:
mkdir tmp
mount /dev/sdb2 tmp
vi tmp/com.apple.Boot.plist
Cambiamos patchstick a auto.
umount tmp
Modificamos el fichero menu.lst.
mount /dev/sda5 tmp
cp tmp/boot/menu.lst tmp/boot/menu.lst.org
vi tmp/boot/grub/menu.lst
Lo borramos entero y lo dejamos asi (comprobar la version de kernel):
default 0
timeout 3
title Linux
root (hd0,4)
kernel /boot/vmlinuz-2.6.24-27-generic root=/dev/sda4 ro vesa video=vesafb
initrd /boot/initrd.img-2.6.24-27-generic boot
Reiniciamos.
reboot.
Si todo ha ido correctamente, ya tendréis Linux instalado y funcionando en el AppleTV. En la siguiente parte del tuto, nos centraremos en la instalación de XBMC, drivers para la tarjeta Broadcom etc.
10 Comentarios
Escribe tu comentario
You must be logged in to post a comment.

Como siempre, un 10
mmm no hay posibilidad de que subas esa ISO a un rapidshare o megaupload para la gente que no usamos nada de Linux
Muy buen tutorial.
Si mi disco duro es el de 160 gb, ¿que debo cambiar en los comandos?
necesitarÃa que alguien me eche un capote, me he metio a torero y me ha pillao el toro.
Tengo el disco duro del atv formateado, sin particiones y no tengo backup ni recovery. He seguido tu tutorial para instalar linux y no he tenido problemas hasta el paso de formateo : “mkfs.hfsplus -v OSBoot /dev/sda3 mkfs.ext3 -b 4096 -L Linux /dev/sda4 sync” me dice “mkfs.hfsplus: invalid option — L
usage: mkfs.hfsplus [-h | -w] [-N] [hfsplus-options] special-device”, y ya no he querido seguir los siguiente pasos del tutorial para no meter más la pata. Ahora tengo un estupendo pisapapeles de 160 gb al lado de la tele. Gracias
Hay un error, son tres instrucciones:
mkfs.hfsplus -v OSBoot /dev/sda3
mkfs.ext3 -b 4096 -L Linux /dev/sda4
sync
Prueba asà y nos cuentas
Vale, me ha funcionado, pero al siguiente paso -descargar el atv recovery- pongo “wget http://atv-bootloader.googlecode.com/files/recovery-0.6.tar.gz” y me da este error: “wget: bad address ‘atv-bootloader.googlecode.com’”
Prueba a descargarlo y lo copias directamente: scp archivo usuario@ip: o mediante un pendrive.
Lo he descargado al imac, he puesto el comando de scp pero me pone “-sh: scp: not found”. ¿Cual serÃa el comando desde un pendrive?
primero vete al terminal y asegurate que estás usando la shell bash. De todas maneras, me estoy dando cuenta que tu appletv no tiene salida a internet y lo vas a necesitar, yo arreglarÃa eso primero.
De todas maneras, para quien quiera hacerlo mas sencillo, teneis una imagen hecha y las instrucciones en este enlace.
http://forum.xbmc.org/showthread.php?t=74992
saludos y suerte.
jjjjj . Finalmente he conseguido instalar linux y reproducir .mkv con la tarjeta broadcom , pero se queda colgado a menudo y no consigo que reproduzca el sonido de las peliculas por el hdmi, he probado la salida digital toslink y por ahi si que saca el sonido. Es normal?