About Taringa!

Popular channels

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

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


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

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.
0No comments yet
      GIF