Raspberry Pi como servidor de impresión... ¿con XBMC para tv? (I)

Índice

Introducción

Puedes pasar al punto siguiente si lo tuyo es la técnica... 

RaspberryPi cuesta muy poco y la sirven en un par de días pero, atención, viene sin códecs MPEG y VC-1 necesarios para ver la televisión o vídeos con determinados formatos privativos.Raspberry Pi
 
Puedes comprar la RaspberryPi en Farnell. Lo hecho incluyendo una caja transparente y una SD con raspbian (una Debian especial para Raspberry Pi) con este desglose
Subtotal: 44,89 €
Portes: 9,00 €
IVA:    11,32 €
Total:  65,21 €
 
Para comprar los códecs antes necesitas haber instalado algún sistema y después ir a RaspberryPi.com para comprarlos ofreciendo la salida del comando
$ cat /proc/cpuinfo
porque los códecs están sujetos a cada placa en particular.
Agrega pues otros 4,46€ al presupuesto.
 
Elijo la raspbian como distro para tener un XBMC con capacidad de ver tv. Actualmente la distro rasbmc viene con todo preparado para disponer directamente de xbmc pero, a mi entender, es muy inestable.

Instalación de Raspbian

Descargo raspbian desde raspberrypi.org y la ubico en un directorio de trabajo, por ejemplo, raspbian. En su interior guardo el zip descargado (unos 508 MB).
 
Inserto la SD fomateada previamente como fat32, se monta automáticamente así que la desmonto (también en entorno gráfico).
 
Abro terminal, me sitúo en el directorio de trabajo (raspbian) y ejecuto:
$ sha1sum 2012-12-16-wheezy-raspbian.zip
La salida ha de coincidir con la línea SHA-1 que figura en raspberrypi.org
$ unzip 2012-12-16-wheezy-raspbian.zip (para
$ dmesg | tail
(...)
[ 1496.465121] mmcblk0: mmc0:43fb SD01G 982 MiB
[ 1496.467584]  mmcblk0: p1
(...)
Por lo tanto, mi SD es el dispositivo 'mmcblk0'
$ sudo dcfldd bs=4M if=2012-12-16-wheezy-raspbian.img 
of=/dev/mmcblk0
El comando 'dcfldd' ofrece más información sobre el progreso de esta copia que el habitual 'dd'. Pretendo instalar todo el sistema en un usb excepto el directorio /boot pues es imprescindible para la RaspberryPi.
 
Para finalizar esta parte ejecuto
$ sudo sync
Inserto el usb y formateo:
  • una partición swap de 1GB
  • resto ext4
Lo monto.Retiro la SD y la vuelvo a insertar. Me sitúo en la partición ext4 en la SD y muevo todo su contenido al usb como 'root'
$ sudo su
# cd /media/particón_ext4_de_SD/
# mv * /media/donde_se_haya_montado_usb/
mv: falló el movimiento entre distintos dispositivos: 
de «lost+found» a «../donde_se_haya_montado_usb/lost+found»;
no se puede borrar el objetivo: Es un directorio
(Obvio ese error)
# sync
Edito en la partición fat32 el archivo 'cmdline.txt' para que figure así:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 
console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait
Si has comprado códecs, insértalos al inicio de 'config.txt' en la SD. Recuerda que son exclusivos para cada placa (abajo va un ejemplo):
decode_MPG2=0x12345678 
decode_WVC1=0x12345678 
Edito su /etc/fstab (en el usb) para que apunte a /rpiboot como señalan en raspbian.org,quedando mi fstab como sigue:
$ cat /etc/fstab
proc            /proc           proc    default                 0       0
/dev/mmcblk0p1  /rpiboot        vfat    defaults                0       2
/dev/sda1       /               ext4    defaults,noatime        0       1
/dev/sda2       swap            swap    sw                      0       0
Es esencial que la RaspberryPi esté alimentada por red porque puede que no sea suficiente con pilas o conectada a otro equipo por usb.
 
El primer arranque sigue hasta aparecer la herramienta 'rpi-config'. En ella selecciono ajustes:
  • overscan deseable_overscan lo pongo en 'Enabled'
  • configure_keyboard para dejarlo con Generic-105 y español
  • configure-locales para dejarlo en es_ES.UTF-8 UTF-8
  • change_timezone para Europe/Madrid
  • ssh para activar el servidor openssh
  • boot_behavior para que no arranque las X
  • finish para acabr con estas configuraciones
  • reboot (acepto)
Usando otro equipo accedo por ssh:
$ ssh -l pi 192.168.1.20
password: raspberry  
$ sudo su
En el reboot debería cambiar automáticamente /rpiboot por /boot pero conviene revisarlo porque he tenido que hacerlo manualmente.
# nano /etc/fstab
Decido cambiar el nombre de la máquina y la clave:
# nano /etc/hostname
rp 
(se guarda y sale con Ctrl-O, intro, Ctrl-X)
# nano /etc/hosts
Sustituyo todo donde aparecía 'raspberry' por 'rp'
# /etc/init.d/hostname.sh start
# reboot
Confirmo que tengo una consola del tipo
pi@rp:~$
Si tu deseo es cambiar a una contraseña muy simple, algo nada recomendable, tendrás que hacerlo como root:
$ sudo su
# passwd pi

Actualizando todo el sistema

$ sudo su
# raspi-config
Elijo 'update' para actualizar el propio programa 'raspi-config'.
# aptitude update && aptitude upgrade -y
...para actualizar todo el software instalado, como en cualquier Debian ;)

Roberto Brenlla
Logo TEGNIX pequeno