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 5: Descargar torrents con Transmission

Introducción

Si ya hemos instalado Kodi (o XBMC) y tenemos montado nuestro disco duro USB en el Raspbian que hemos instalado en nuestra Raspberry Pi, lo que nos falta para sacarle el máximo provecho a nuestra pequeña placa es poder descargar el contenido multimedia directamente desde la propia RasPi y así poder prescindir de cualquier otro aparato encendido. Hay dos formas fundamentales para hacerlo: descarga directa o torrents. Lo primero se haría con pyLoad, del que quizá haga una entrada en el futuro, pero hoy vamos a tratar el segundo grupo, los famosos torrents. Y elegimos Transmission para ello porque es de código abierto, gratuito y especialmente liviano, que para una Raspberry Pi siempre es de agradecer.

Instalar Transmission

Con un solo comando ya tenemos Transmission instalado:

sudo apt-get install transmission-daemon

Configurar Transmission

Lo primero es parar el servicio:

sudo service transmission-daemon stop

Antes de configurar Transmission vamos a crear el directorio donde se guardarán las descargas:

sudo mkdir /media/discousb/torrents

Además a mi me gusta guardar las descargas incompletas o en proceso de completarse en una carpeta aparte, así minimizo la probabilidad de eliminar o mover las descargas en curso, lo que haría que dejaran de funcionar:

sudo mkdir /media/discousb/torrents/tmp

Damos permisos a las carpetas para que el Transmission pueda leer y escribir en ellas sin problemas:

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

Y ahora abrimos el fichero de configuración:

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

Al ver tal cantidad de parámetros podemos asustarnos un poco, pero no pasa nada, casi todos definen bien lo que hacen y, sobre todo, hay muchos gestores externos que nos ayudan visualmente a modificar casi todos los parámetros, o al menos los más importantes. Así que aquí vamos a tratar lo básico para poder acceder externamente a la configuración y poder afinarlo visualmente que siempre es más cómodo.

Con estas dos líneas le indicamos al Transmission dónde queremos que guarde lo que descarguemos y las descargas en curso.

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

"incomplete-dir": "/media/discousb/torrents/tmp",

Y con estas líneas configuramos el acceso remoto:

"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,

RPC es el protocolo que nos permite conectarnos al Transmission desde fuera (vía web o vía app). Casi todo es bastante intuitivo, pero básicamente hay que dejarlo como yo lo tengo haciendo especial mención al rpc-password, que viene codificado, pero por defecto es transmission, si lo cambias puedes poner lo que quieras sin codificar. Del resto es importante poner a false el rpc-whitelist-enabled para poder conectarte desde cualquier IP en la que te encuentres.

Con esto es suficiente. Si además quieres modificar las velocidades de subida y bajada, el modo «lento» o la cola de descargas (que yo tengo deshabilitada), no creo que tengas problemas en detectar cuales son los parámetros que debes cambiar, pero como ya he dicho, todo eso se puede hacer visualmente vía web o vía app.

Finalmente vamos a iniciar el servicio que paramos antes:

sudo service transmission-daemon start

Desde este momento podremos acceder al Transmission desde cualquier dispositivo conectado a la misma red donde esté la Raspberry Pi (de momento, cuando instalemos ddclient podremos acceder desde cualquier lugar del mundo). Para ello, lo más fácil es abrir un navegador y escribir:

http://192.168.1.10:9091

Donde 192.168.1.10 es la IP fija que le pusimos a la RasPi al final del paso 2 y 9091 es el puerto que pusimos en rpc-port del settings.json aquí arriba. Nada más acceder te pide usuario y contraseña, lo pones, y aparece una web muy simple desde la cual puedes manejar casi cualquier cosa del Transmission. Es todo muy intuitivo, pero si no sabes para que sirve algún botón con dejar el ratón por encima sale una pequeña descripción.

Lo importante: de la parte de arriba, el icono de la carpeta sirve para añadir torrents. De la parte de abajo, con la rueda dentada cambias puntualmente los límites de velocidad de subida y bajada pero con la llave inglesa configuras las velocidades a nivel global, además de la mayoría de parámetros extra como la ruta donde se descargan los torrents, las velocidades alternativas (para cuando quieres que el Transmission no te chupe toda la conexión), o el puerto de escucha que sería bueno que tuvieras abierto en el router. Además el icono de la tortuga cambia entre la velocidad normal y la lenta.

La versión web de Transmission no da para mucho más y, en general, es suficiente. Si quieres otras características ya tendrás que instalar un software en el ordenador, o una app en tu dispositivo móvil. Como software yo aconsejo Transmission Remote GUI, que tiene versiones para Linux, Windows y Mac y es muy completo además de gratuito. Como app para Android yo utilizo Remote Transmission, que es probablemente la menos vistosa pero a mi es la que mejores sensaciones me ha dejado. En iOS, Windows Phone, etc. habrá también apps para el mismo efecto.

Fin

No he explicado nada de configuraciones de routers, ni velocidades óptimas de funcionamiento, ni nada directamente relacionado con las descargas. Eso ya iría en otro tutorial. Lo importante es que Transmission ya funciona como lo haría en cualquier otro dispositivo y tenemos acceso a él gráficamente para ir toqueteando la configuración hasta que todo funcione como más nos convenga en cada caso.

Mañana vamos a instalar ddclient para poder acceder a la Raspberry Pi desde cualquier lugar el mundo, no sólo desde la misma red de la propia RasPi, y así otorgarle la excelencia a este proyecto. Poder instalar, modificar y configurar cualquier cosa de la RPi sin estar en casa. Poder poner torrents a descargar, hacer copias de seguridad… y todo desde cualquier lugar como si tuviéramos la Raspberry Pi delante.