Publicado en Raspberry Pi

Raspberry Pi: Montar centro multimedia completo

Introducción

Ya he explicado muy detalladamente cada paso necesario para montar un centro multimedia con la Raspberry Pi. Lo que pretendo con este artículo es juntarlo todo, y hacer un resumen rápido tanto para los que ya son usuarios avanzados, como para los que ya han seguido los pasos alguna vez y no necesitan tanta palabrería para poner en marcha una nueva RasPi. Por supuesto, todos los pasos a seguir desde el PC son en Linux.

Paso 1: Instalar Raspbian

Descargar la última versión de Raspbian y descomprimir el .zip para obtener un fichero .img:

http://www.raspberrypi.org/downloads/

Insertar la tarjeta microSD en el PC y detectar donde está montada:

df -h

Desmontar todas las particiones de la tarjeta microSD (si hubiera más de una):

umount /dev/sdc1
umount /dev/sdc2

Instalar la imagen descargada en la microSD:

dd if=/ruta/descarga/zip/2015-01-31-wheezy-raspbian.img of=/dev/sdc bs=1M

Explicación extendida: Raspberry Pi. Paso 1: Instalar Raspbian

Paso 2: Primer arranque (raspi-config)

Inserta la microSD en la Raspberry Pi y conecta un teclado USB para poder moverte por las opciones, las más importantes son:

  1. Expand Filesystem: extiende el espacio utilizable por el sistema a toda la capacidad de la microSD.
  2. Change User Password: si no lo cambias, el usuario es pi y la contraseña es raspberry.
  3. Advanced Options > Memory Split: es la memoria que le asignamos a la GPU (procesador de gráficos), para que Kodi (XBMC) funcione perfectamente es aconsejable darle la mitad de la RAM, en la Raspberry Pi 2 tenemos 1 GB y en las demás 512 MB, así que pon 256 MB si tienes una RPi antigua o 512 MB si tienes la RasPi 2.
  4. Advanced Options > SSH: es fundamental activarlo para poder acceder a la RPi por red sin necesidad de teclado ni ratón.

El resto de opciones no son importantes para el funcionamiento o son cambios muy personales.

Lo que sí es importante es configurar una IP estática en la Raspberry Pi para poder acceder a ella siempre de la misma manera, así que edita el siguiente fichero:

sudo nano /etc/network/interfaces

Sustituye esta línea:

iface eth0 inet dhcp

Por todas estas:

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

Donde address es la IP estática que quieres que tenga tu Raspberry Pi y gateway la IP de tu router. Cierra y guarda el fichero con Ctrl+X, Y, Intro. Carga la nueva configuración y reinicia el servicio de red:

sudo ifup eth0
sudo service networking restart

Explicación extendida: Raspberry Pi. Paso 2: Primer arranque (raspi-config)

Paso 3: Instalar Kodi

Ya puedes acceder a la RPi por consola con un teclado USB o por SSH, la segunda opción es la más cómoda. En ambos casos edita el fichero de repositorios:

sudo nano /etc/apt/sources.list

Agrega la siguiente línea al final:

deb http://archive.mene.za.net/raspbian wheezy contrib

Cierra y guarda el fichero con Ctrl+X, Y, Intro. Agrega la firma para el nuevo repositorio:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED

Actualiza la lista de paquetes e instala Kodi:

sudo apt-get update
sudo apt-get install kodi

Edita la configuración básica de Kodi:

sudo nano /etc/default/kodi

Pon ENABLED=1, USER=pi y NICE=-10 para que Kodi se inicie automáticamente en cada arranque.

Explicación extendida: Raspberry Pi. Paso 3: Instalar Kodi o XBMC

Paso 4: Montar disco duro USB

Saber la ruta del disco duro en nuestra Raspberry Pi:

sudo fdisk -l

Si el disco duro no está formateado como ext3 o ext4 (al gusto), hazlo con:

sudo mkfs.ext3 /dev/sda1

Crea un directorio donde montar el disco duro:

sudo mkdir /media/discousb

Haz que tu usuario sea el propietario del nuevo directorio:

sudo chown pi /media/discousb

Edita el siguiente fichero para que el disco duro se monte en ese directorio cada vez que arranca el sistema:

sudo nano /etc/fstab

Agrega al final la siguiente línea:

/dev/sda1      /media/discousb      ext3      defaults      0      0

Cierra y guarda el fichero con Ctrl+X, Y, Intro. Monta el disco duro sin necesidad de reiniciar con:

sudo mount -a

Explicación extendida: Raspberry Pi. Paso 4: Montar disco duro USB

Paso 5: Instalar y configurar Transmission (descarga de torrents)

Instala Transmission:

sudo apt-get install transmission-daemon

Detén el servicio para poder modificar la configuración:

sudo service transmission-daemon stop

Crea un directorio para almacenar las descargas y otro para los torrents en proceso de descarga:

sudo mkdir /media/discousb/torrents
sudo mkdir /media/discousb/torrents/tmp

Modifica los permisos de las carpetas:

sudo chown -R pi:debian-transmission /media/discousb/torrents
sudo chmod -R 777 /media/discousb/torrents

Edita el fichero de configuración de Transmission:

sudo nano /etc/transmission-daemon/settings.json

Son muchas cosas, casi todas muy intuitivas así que voy a poner aquí lo básico:

"download-dir": "/media/discousb/torrents",

«incomplete-dir»: «/media/discousb/torrents/tmp»,

«rpc-authentication-required»: true,
«rpc-bind-address»: «0.0.0.0»,
«rpc-enabled»: true,
«rpc-password»: «j72x6kxx1fnpjkz9difeu1harx0v0oudwxsfzwuo8j0r8»,
«rpc-port»: 9091,
«rpc-url»: «/transmission/»,
«rpc-username»: «pi»,
«rpc-whitelist»: «0.0.0.0»,
«rpc-whitelist-enabled»: false,

Si no cambias el rpc-password por defecto es transmission. El resto está pensado para que puedas acceder a la interfaz del Transmission desde cualquier lugar del mundo por el puerto 9091, y desde ahí poder cambiar el resto de parámetros gráficamente.

Inicia el servicio de nuevo:

sudo service transmission-daemon start

Explicación extendida: Raspberry Pi. Paso 5: Descargar torrents con Transmission

A partir de aquí, el resto de pasos son para facilitarnos la vida, la funcionalidades básicas ya están instaladas.

Paso 6: Acceso remoto con ddclient y DNSdynamic

Regístrate en DNSdynamic:

https://www.dnsdynamic.org/signup.php

Haz login con tu email y tu contraseña y ve a «Add a new domain». Escribe tu subdominio y elige un dominio, todo junto será tu DNS dinámico. Ahora vamos a la Raspberry Pi a instalar el cliente:

sudo apt-get install ddclient

El asistente que aparece te lo puedes saltar entero porque no sirve para nada. Cuando termines edita el fichero de configuración del ddclient:

sudo nano /etc/ddclient.conf

Elimina todo lo que haya y pon esto:

daemon=300
protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
login=TU@EMAIL.COM
password='TUCONTRASEÑA'
server=www.dnsdynamic.org, \
protocol=dyndns2 \
TUURL

Cambiando únicamente login poniendo tu email, password poniendo tu contraseña y TUURL poniendo el DNS dinámico que elegiste en la web. Cierra y guarda el fichero con Ctrl+X, Y, Intro.

Explicación extendida: Raspberry Pi. Paso 6: Acceso remoto con ddclient y DNSdynamic

Paso 8: Compartir ficheros con samba

Vamos a convertir la Raspberry Pi en un servidor de ficheros tipo NAS. Instala samba escribiendo:

sudo apt-get install samba samba-common-bin

Edita el fichero de configuración:

sudo nano /etc/samba/smb.conf

Hay muchos parámetros, muy bien explicados, vamos a tocar lo básico para que funcione:

workgroup = WORKGROUP

wins support = yes

El parámetro wins support viene comentado, simplemente elimina la almohadilla (#) del principio de la línea. Además vamos a compartir una carpeta poniendo las siguientes líneas al final del fichero:

[DiscoUSB]
comment=Disco USB en la RPi
path=/media/discousb
browseable=yes
writeable=yes
create mask=0775
directory mask=0775
only guest=no

Ponle una contraseña al usuario de samba, no necesariamente la misma que la del sistema:

sudo smbpasswd -a pi

Reinicia el servicio para que coja la nueva configuración:

sudo service samba restart

Explicación extendida: Raspberry Pi. Paso 8: Compartir ficheros con samba

Paso final: Abrir puertos en el router

Tienes que redireccionar todos los puertos del router que estés utilizando en la Raspberry Pi para que apunten a la IP estática de la misma, para así poder acceder a los servicios desde fuera de tu red local. Los puertos típicos son:

  • 22 para el SSH y el SFTP
  • 9091 para el Transmission

Otros pasos

Aquí iré agregando el resto de pasos que voy explicando que no son fundamentales para crear un centro multimedia:

Publicado en Raspberry Pi

Raspberry Pi. Paso 2: Primer arranque (raspi-config)

Doy por hecho que has seguido el Paso 1 de mi tutorial o que, en cualquier caso, tienes una tarjeta microSD con un Raspbian montado y que todavía no has arrancado la Raspberry Pi con ella. En tal caso, mete la tarjeta en la RasPi, conéctala a la televisión con un cable HDMI y a la red eléctrica con un cargador de móvil microUSB de al menos 1A, muy recomendable usarlo de 2A. Para este paso también es fundamental enchufar un teclado USB, ratón no hace falta.

Una vez todo conectado, cambia el input de la TV al puerto HDMI dónde hayas conectado la Raspberry Pi y verás que aparecerá una pantalla como esta (click para ampliar):

raspi-config

Es exactamente la misma pantalla que aparecerá en el futuro si alguna vez queremos reconfigurar algo y ejecutamos el comando:

sudo raspi-config

La manera de manejarse por esta pantalla es bastante intuitiva y sólo nos hacen falta las flechas (moverse entre opciones), el tabulador (ir a los botones de abajo), el intro (acceder) y la barra espaciadora (marcar opción). Hay pocas cosas importantes, pero vamos a repasarlas todas y voy comentando las que son fundamentales.

1 Expand Filesystem

Sirve para poder ocupar todo el espacio de la microSD. Como ya dije, el sistema operativo ocupa poco más de 3 GB, y ese es el espacio que podemos utilizar, obviamente si lo hemos metido en una tarjeta de 8 GB o más sería un desperdicio, así que con esta opción expandimos el sistema de ficheros para poder utilizar toda la capacidad de la tarjeta, y así instalar todo tipo de programas que necesitemos sin problemas. Es muy recomendable hacerlo.

2 Change User Password

El usuario por defecto es pi, con la contraseña raspberry. Si queremos cambiarla es aquí donde se hace y es altamente recomendable.

3 Enable Boot to Desktop/Scratch

No hace falta tocar nada. Por defecto la Raspberry Pi arranca en la típica consola negra con letras blancas, es recomendable dejarlo así, pero tienes otras 2 opciones más. Escritorio: inicia un escritorio de toda la vida con su menú de programas y demás (útil si vamos a usar la RPi como un ordenador normal). Scratch: es un entorno de programación que facilita el aprendizaje autónomo, una herramienta muy útil para crear juegos sencillos y aprender a programar sin conocimientos previos. No toques nada aquí porque luego cuando instalemos XBMC o Kodi (centro multimedia) querremos que se inicie al arrancar la RPi directamente.

4 Internationalisation Options

El sistema viene por defecto en inglés y con disposición americana de teclas. Si no dominas muy bien el idioma de Shakespeare y/o pretendes utilizar un teclado español, sería conveniente cambiar las opciones que cuelgan de este menú.

4.1 Change Locale

Para utilizar el español de España tendrás que elegir es_ES.UTF8

4.2 Change Timezone

Aquí elegiremos Europa y después Madrid.

4.3 Change Keyboard Layout

Elige el que se adapte al teclado que vayas a utilizar, pero en general seleccionando uno genérico en nuestro idioma debería ser suficiente. Además pregunta varias cosas de teclas especiales, si no sabes por donde van los tiros, déjalo por defecto.

5 Enable Camera

Por si no lo sabías, se puede conectar una cámara a la Raspberry Pi gracias al GPIO, como supongo que no es el caso, no tocar nada aquí.

6 Add to Rastrack

Esto agrega la posición GPS de nuestra Raspberry Pi a un mapa mundial que se puede consultar aquí: rastrack.co.uk. No sirve absolutamente para nada, simple curiosidad.

7 Overclock

Recomiendo no tocarlo. Como todo hardware que se precie, a la Raspberry Pi también se le puede hacer overclock, es decir, aumentar la velocidad de procesamiento. En principio no es necesario hacerlo para casi nada, más allá de querer que vaya un poco más fluido todo, pero yo no lo aconsejo, además hace que se caliente más la RPi e incluso llegar a romperse. Las antiguas iban a 700 MHz y la nueva Raspberry Pi 2 va a 900 MHz con cuatro cores. Más que suficiente.

8 Advanced Options

8.1 Overscan

Normalmente esto no hay que tocarlo. Si vas a conectar la RPi a un monitor o un televisor antiguo puede que veas unos bordes negros que no deberían estar, con esta opción se quitan. Habitualmente no hay que tocar esto porque además por HDMI no pasa.

8.2 Hostname

Es el nombre que tendrá tu Raspberry Pi a ojos del resto de la red. Tampoco hace falta cambiarlo.

8.3 Memory Split

Esto sí es importante. Es la cantidad de memoria que le damos a la GPU (a los gráficos). Las Raspberry Pi antiguas tenían 512 MB de RAM, la nueva RasPi 2 tiene 1 GB. En ambos casos es una memoria compartida entre el sistema y los gráficos. Por defecto a la GPU se le otorga 64 MB, lo que es muy poco para manejar películas, incluso aunque no estén en alta definición. Si el propósito de nuestra RPi va a ser la de centro multimedia (es decir, reproducir contenido HD e incluso 3D) deberíamos darle la mitad de la RAM que tengamos, 256 MB en las antiguas y 512 MB en la nueva. En cualquier caso, podemos jugar con este valor hasta encontrar el equilibrio perfecto entre rendimiento gráfico y rendimiento operativo (si le das mucha memoria a la GPU las películas se verán de lujo pero el XBMC o el Kodi podrían ir muy lentos o ni siquiera arrancar).

8.4 SSH

Es muy importante activarlo. SSH es el protocolo que vamos a utilizar para conectarnos a nuestra Raspberry Pi desde cualquier otro ordenador o desde nuestro smartphone para poder modificar, actualizar o instalar lo que queramos en ella sin necesidad ni de estar físicamente delante ni de tener conectado ningún teclado por USB a la misma.

8.5 SPI

Esto es un módulo que sirve para utilizar periféricos que no vamos a usar, no hace falta activarlo.

8.6 Audio

Por defecto viene configurado por HDMI, que es lo que queremos generalmente. Si resulta que vas a sacar el audio por el jack de 3.5mm elige esa opción.

8.7 Update

Actualiza raspi-config, la pantalla donde estamos, para tener las últimas opciones de configuración. Tampoco es especialmente necesario.

9 About raspi-config

Explica lo que es el raspi-config, típico «about», pura información sin importancia.

Finish

Con el tabulador nos posicionamos sobre los botones de abajo y con los cursores nos movemos hasta «Finish», al pulsar intro nos preguntará si queremos reiniciar, diremos que sí para que coja los cambios. Cuando arranque de nuevo, ya no saldrá la ventana de configuración sino que nos aparece la consola pidiendo usuario y contraseña, obviamente los ponemos.

Configurar tarjeta de red

Si queremos una experiencia total vamos a tener que conectar la Raspberry Pi a Internet. La mejor opción sin lugar a dudas es hacerlo mediante el puerto Ethernet, si no es posible, habría que adquirir una antena WiFi USB que sea compatible con la Raspberry Pi y configurarla, aquí dejo el listado oficial de compatibilidades:

http://elinux.org/RPi_USB_Wi-Fi_Adapters

Pero si tenemos la suerte de poder conectar directamente la RasPi al router por cable, todo es mucho más fácil, cómodo y eficiente. De hecho, sólo tendríamos que asignarle una IP interna fija. Si la conectamos por WiFi también habría que hacer este paso, pero antes habría que configurar el WiFi mediante wpa_supplicant (eso en otro tutorial específico). Configuremos la IP:

sudo nano /etc/network/interfaces

Olvida todo lo que ves y céntrate en la línea:

iface eth0 inet dhcp

Esa línea indica que la interfaz de red eth0 (ethernet) está configurada para obtener la IP por DHCP. Eso es un problema porque la IP puede cambiar y no queremos eso, queremos que sea fija así que sustituimos esa línea por todas estas:

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

Lo único que deberías cambiar es address, netmask y gateway en función de tu red. Lo habitual es que sea como la del ejemplo, así que en vez de 10 en address pon la que más te guste, siempre que no sea la 1, que es la del gateway (router) y netmask será esa casi seguro. Intenta que sea un número bajo para que no se solape con las IPs que da el DHCP que suelen ser más altas. Es decir, la IP de nuestra Raspberry Pi será: 192.168.1.10. Para salir y guardar los cambios pulsa Ctrl+X, Y, Intro.

A partir de ahora cada vez que reinicies la RPi obtendrá esa IP fija. Si quieres obtenerla ahora mismo sin reiniciar ejecuta:

sudo ifup eth0
sudo service networking restart

Fin

A partir de este momento tenemos la Raspberry Pi con la configuración mínima imprescindible para poder montar nuestro centro de entretenimiento multimedia en el salón. Desde este momento todo lo que instalemos, actualicemos o modifiquemos lo haremos desde un ordenador a través de la consola de Linux:

ssh pi@192.168.1.10

O desde algún cliente SSH si tenemos Windows o Mac. En Windows el más típico es Putty. También hay apps para iOS y Android que permiten conexiones SSH. Yo en Android utilizo JuiceSSH. Gracias a que tenemos una IP fija en nuestra Raspberry Pi podremos ponerla en nuestro cliente SSH y acceder a ella directamente sin problemas.

Mañana vamos a instalar Kodi (lo que antes era XBMC), la piedra angular de todo este proyecto. Es el centro multimedia que nos va a organizar las películas y las series, las va a reproducir y nos va a permitir un montón de filigranas que ya veremos más adelante.

Publicado en Raspberry Pi

Raspberry Pi. Paso 1: Instalar Raspbian

Introducción

Como para cualquier ordenador que se precie, lo primero debería ser elegir el sistema operativo que queremos utilizar. Ya sé que muchos os limitáis al Windows que viene por defecto en vuestros PCs pero aquí hay que elegir otra cosa, sobre todo porque la tarjeta microSD que compráis vendrá sin SO. Aunque bien es cierto que la nueva Raspberry Pi 2 es compatible con Windows 10, yo voy a explicar todo el proceso basándome en Raspbian: un Debian Linux adaptado a las capacidades de la RPi. Elijo este SO porque es el más versátil y el que nos permite instalar y modificar más cosas, además de poder convertirlo en casi cualquiera de los demás.

No quiero extenderme mucho en explicaciones previas, sólo decir que existe un modo de iniciarse en Raspberry Pi con NOOBS (instalador muy sencillo y básico), además de otros sistemas operativos como Snappy Ubuntu Core (todavía muy verde), RaspBMC (un SO más ligero centrado en XBMC), Openelec (más ligero todavía y sólo para utilizar XBMC), Pidora (Fedora adaptado a la RPi) o incluso Risc OS (sistema no basado en Linux) o RetroPie (un SO dedicado a la emulación de videoconsolas antiguas).

Descargar la imagen del sistema operativo

Esto es lo más fácil, entramos en la web de descargas oficial de Raspberry Pi, buscamos Raspbian y le damos a «Download ZIP». A día de hoy la última versión es la Debian Wheezy del 31 de enero de 2015, aunque este tutorial sirve para cualquier versión.

http://www.raspberrypi.org/downloads/

Una vez descargado el ZIP, hay que descomprimirlo para obtener el fichero .img que hay dentro.

Instalar Raspbian en la tarjeta microSD

Como ya expliqué, la tarjeta debe ser al menos de 4 GB, de hecho el SO ocupará algo más de 3, así que mejor si es de 8 GB o más. A partir de aquí voy a explicar como se hace desde un PC con Linux, si tienes Windows puedes ver un tutorial aquí, y si tienes Mac aquí.

Antes de meter la tarjeta en el PC, que no hace falta que esté formateada porque este proceso lo hará, vamos a listar los dispositivos que tenemos conectados:

df -h

Después introducimos la tarjeta en el ordenador, bien mediante un lector de tarjetas o un adaptador USB y volvemos a hacer:

df -h

Habrá una línea nueva que empezará con la ruta del nuevo dispositivo, debería ser algo así:

/dev/sdc1

Variará en función de cada sistema, pero casi seguro que empezará por /dev/sd seguido por una letra y un número, en el ejemplo sería c1. Si por casualidad has introducido una trajeta SD particionada, aparecerán varias líneas nuevas pero todas con la misma raíz, algo tipo:

/dev/sdc1
/dev/sdc2

Ahora vamos a desmontar la unidad para poder modificarla:

umount /dev/sdc1

Si hay varias particiones de tu sdc, hay que desmontarlas todas.

Por fin vamos a copiar la imagen del sistema operativo en nuestra tarjeta microSD. El comando es el siguiente:

dd if=/ruta/descarga/zip/2015-01-31-wheezy-raspbian.img of=/dev/sdc bs=1M

Donde if es la ruta donde está el .img que descomprimimos del ZIP, of es el nombre del dispositivo que desmontamos antes (sin número de partición) y bs es el tamaño de los bloques a copiar. Este punto es importante. Normalmente con un tamaño de bloque de 4M sería suficiente, pero yo recomiendo que se copie en bloques de 1M para mayor seguridad. Eso sí, tarda muchísimo más, y lo peor de todo es que el comando dd no muestra absolutamente ninguna información del progreso de la copia, así que nos toca esperar a que termine sin ningún indicativo de nada, pero no desesperéis que acaba terminando en algún momento y nos muestra el resultado de lo copiado. Consejo: si no estás seguro si se ha quedado colgado el PC, mira la lucecita del lector de tarjetas, si parpadea es que está trabajando.

Fin

No hace falta hacer nada más en el PC. Sacamos la tarjeta, la metemos en la Raspberry Pi y debería arrancar sin ningún problema. Por cierto, reitero que lo ideal es alimentar la RPi con un típico cargador de móvil microUSB, a ser posible de 2A (aunque con 1A también funciona) y utilizar un cable HDMI para utilizar la TV como monitor. Cuantos más periféricos vayamos a conectar a la RPi, más alimentación necesitará, por eso recomiendo siempre el cargador de 2A.

Y todo este rollo para que al final sólo sea meter la tarjeta microSD en el PC, desmontarla y ejecutar el dd. No tiene más.

Mañana veremos qué hacer en el primer arranque y la configuración básica imprescindible para que todo esto tome forma.