Instalación de XBMC sobre Raspbian

Tal como comenté en la entrada anterior, ya que parece que mi instalación de XBian no debe de andar muy fina porque no me deja usar/instalar Add-ons, voy a intentar hacer una instalación de XBMC sobre Raspbian. El único inconveniente de esto es que no será fool proof (a prueba de tontos) y con el autoarranque chulo de XBian, pero creo que me dará más flexibilidad y control sobre todo.

Bueno, lo primero es descargar la última versión de Raspbian desde aquí y luego proceder con la copia en una tarjeta SD que tengo de 4GB siguiendo las instrucciones de una de las primeras entradas y que podéis ver aquí.

Ahora arranco la Raspberry con la tarjeta recién preparada habiéndole conectado previamente un teclado y un monitor (o televisor) ya que por defecto Raspbian no trae el servicio SSH iniciado. Dicen que lo hacen así porque todo el mundo conoce el usuario y contraseña por defecto (pi, raspberry) pero yo creo que sería más sencillo si lo hicieran y no nos forzaran a conectar un monitor y teclado para luego habilitar SSH y poder hacer tranquilamente la instalación en remoto. En fin…

Raspi-config

Lo primero que se nos presenta la primera vez es la conocida como raspi-config, una pequeña utilidad que nos permite ciertas modificaciones que veremos en detalle más adelante. Yo lo primero que quiero es habilitar el servicio de SSH para poder conectarme tranquilamente en remoto, así que voy a Opciones Avanzadas (Advanced Options) y después al menú donde dice SSH.

Advanced Options

SSH

Habilitar servidor SSH

Como podeis ver nos pregunta si queremos habilitarlo (Enabled) o deshabilitarlo (Disabled). En mi caso pulso en Enabled.

Ya que estamos en raspi-config, aunque luego volveré a abrirlo en remoto, voy a aprovechar y hacer la expansión de la partición para que ocupe todo el espacio disponible en la tarjeta SD. Eso se hace en la primera opción del menú principal Expand filesystem.

Redimensionado de la partición

Como veis nos dice que los cambios se verán aplicados después del próximo reinicio aunque no nos fuerza a reiniciar, pero yo lo fuerzo (comando reboot) y conecto el cable ethernet. Así, después de reiniciar veo la siguiente pantalla donde puedo apreciar que ya ha sido asignada automáticamente la dirección IP 192.168.0.115.

Primer arranque con IP

Ahora ya puedo conectarme por ssh desde mi máquina usando el terminal, utilizando el usuario pi y la contraseña por defecto raspberry, y sabiendo la dirección IP que me ha mostrado el log de arranque (en mi caso 192.168.0.115).

Conexión a Raspbian con ssh

Antes de nada y por motivos de seguridad, voy a cambiar la contraseña por defecto con el comando passwd.

Cambiar contraseña

Ok. Ahora voy a volver a entrar en configuración que vimos antes mediante el comando sudo raspi-config y hago los siguientes cambios:

  • 3 Enable Boot to Desktop/Scratch >  Console Text console, requiring login (default). Para que por defecto arranque en modo consola.
  • 4 Internationalisation Options > I2 Change Timezone. Para configurar el país a efectos de fecha y hora.
  • 5 Enable Camera > Disable. Básicamente porque no la tengo.

Y ya está. Cuando le doy a Finish para salir de raspi-config me pregunta si quiero reiniciar, así que le digo que sí y espero unos segundos hasta que el servicio de ssh vuelve a responder para conectarme. Ahora busco posibles actualizaciones del sistema con el comando sudo apt-get upgrade ; sudo apt-get update (esto no podía hacerse en XBian porque podías cargarte el sistema).

Antes de liarme con la configuración de Samba y demás, voy a ir al lío a hacer la instalación de XBMC. En su sitio web (xbmc.org) encuentro que para proceder con la instalación tengo que ejecutar los siguientes comandos:

  • sudo apt-get install python-software-properties pkg-config
  • sudo apt-get install software-properties-common
  • sudo add-apt-repository ppa:team-xbmc/ppa
  • sudo apt-get update
  • sudo apt-get install xbmc

Así que los ejecuto uno a uno, respondiendo Yes cada vez que me pregunta si estoy seguro de que quiero proceder con la instalación.

Error al instalar XBMC

Como veis el update dio un error de conexión al repositorio y la instalación de XBMC ha fallado porque parece que no encuentra el paquete. Me vuelvo a meter en la página de xbmc.org y esta vez encuentro otra página (esta) que explica mucho mejor qué hay que hacer, y veo que me había dejado un montón de cosas. Así que nada, hago todo lo que dicen…

Bueno, pues después de 4 horas (exactamente 4 horas y 10 minutos) recibo un error de la compilación y cuando ejecuto el comando sudo make install me da un error.

Error de compilación

Busco en Google ese error y parece que las instrucciones que he estado siguiendo durante toda la mañana está totalmente desactualizadas. Así que navegando por la página de elinux.org encuentro otras instrucciones que añaden un repositorio y hace la instalación desde apt-get

  • sudo echo “deb http://archive.mene.za.net/raspbian wheezy contrib” > /etc/apt/sources.list.d/mene.list
  • sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-key 5243CDED
  • sudo apt-get update
  • sudo apt-get install xbmc

Después de esto ejecuto xbmc así a pelo y el sistema se queda como parado, así que me voy a la tele y veo que efectivamente XBMC está corriendo.
XBMC corriendo en Raspbian Lo único que no me gusta es que con todo el rollo anterior me da la sensación de que la instalación de Raspbian o incluso de XBMC haya quedado con basura, por lo que después de las pruebas de los subtítulos volveré a hacer una reinstalación. Total, si no tengo que recompilar no tengo que estar 4 horas mirando 🙂

Ahora tengo que montar los discos. Como uno de ellos está en formato exFAT, tengo que instalar un par de paquetes para que Raspbian lo reconozca, y lo hago con sudo apt-get install exfat-fuse exfat-utils.

Instalando fuseAhora tengo que crear los puntos de montaje para los discos. Lo hago creando los directorios /mnt/disco1TB y /mnt/disco2TB con el comando mkdir

Creando puntos de montaje

Ahora podría montarlos con el comando mount pero como quiero que se monten automáticamente después de los reinicios, lo que hago es editar el fichero /etc/fstab con el comando sudo nano /etc/fstab y escribo lo siguiente

/etc/fstabComo veis he creado dos entradas, una por cada disco, donde le indico el dispositivo (dev), el punto de montaje, el tipo de sistema de ficheros, y algunas opciones más que podemos dejar así.

Ahora reinicio y miro a ver si se han montado los discos con el comando df- h

df -h

Bien, ejecuto XBMC mediante el comando xbmc, después presiono CTRL+Z para que quede en segundo plano y me devuelva el control de la terminal y luego ejecuto el comando bg para decirle que el proceso que he dejado parado siga corriendo en segundo plano.

ejecutando XBMC en segundo plano

Ahora puedo irme a la tele y ver que XBMC está corriendo. Lo que voy a hacer ahora es añadirle la fuente de series al igual que os enseñé en esta entrada, para poder volver a probar el tema de los subtítulos.

Pueeeeeees resulta que cuando intento navegar por los menús de XBMC o se queda medio colgado o me muestra caracteres raros, así que creo que tenía yo razón con lo de que los intentos de instalaciones previas me lo iban a corromper. Una vez más tengo que capitular (por ahora). Lo que haré será volver a cargar la imagen limpia de Raspbian y luego instalar XBMC con la forma que (en teoría) funciona, a ver si así no da problemas. Parece que el premio se me resiste una vez más…

Recibir un email al finalizar una descarga

Sé que os había dicho que os hablaría de Samba, pero en esta entrada voy a explicaros de forma sencilla cómo hacer que transmission nos mande un email cuando finalice una descarga. Quizás para algunos no sea interesante, pero a mi me gusta despertarme por las mañanas y ver cuántas cosas se han descargado durante la noche.

Si recordáis la entrada anterior en la que modificamos la configuración de transmission después de su instalación (settings.json), una de las lineas nos permitía indicarle un fichero a ejecutar cada vez que finalice una descarga (script-torrent-done-filename). Pues eso es lo que vamos a usar.

Lo primero que hay que hacer (como siempre) es conectarnos a la Raspberry mediante ssh xbian@[dirección IP]

Captura de pantalla 2014-01-05 a la(s) 21.11.26

En la configuración de transmission yo ya había dejado indicado dónde se encontraba el fichero a ejecutar. Si no lo hicisteis, es buen momento para mirar la entrada anterior para ver cómo cambiarlo.

El envío de los emails lo vamos a hacer mediante el comando sendemail. En XBian no viene instalado por defecto, por lo que tenemos que hacerlo. Además, dicho comando utiliza ciertas librerías de Perl que tampoco están instaladas, así que podemos aprovechar a instalarlo todo junto mediante la ejecución de sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl sendemail No pasa nada si lo ejecutamos y resulta que ya estaban instalados.

Captura de pantalla 2014-01-05 a la(s) 21.15.38

Captura de pantalla 2014-01-05 a la(s) 21.15.53

Ahora debemos crear un fichero ejecutable donde indicaremos el comando para el envío del email. En mi caso me he creado una carpeta llamada scripts, y ahí voy a crear un fichero llamado download_complete.sh donde iré añadiendo cosas que quiero que se ejecuten al terminar una descarga. Para crear el fichero usamos el comando sudo nano download_complete.sh

Captura de pantalla 2014-01-05 a la(s) 21.24.23

Voy a indicaros la cadena que habrá que escribir dentro del fichero y a continuación os la explico paso a paso:

sendemail -f torrated@gmail.com -t torrated@gmail.com -u "[Transmission] Descarga finalizada" -m "Se ha completado la descarga del trabajo \n$TR_TORRENT_NAME\nHora: $TR_TIME_LOCALTIME\nFolder: $TR_TORRENT_DIR\nID: $TR_TORRENT_ID" -s smtp.gmail.com:587 -xu torrated -xp <CONTRASEÑA> -v -o username=torrated -o password=<CONTRASEÑA> -o tls=yes

Captura de pantalla 2014-01-05 a la(s) 21.25.14

  1. sendemail <-nombre del comando
  2. -f <remite>@gmail.com <-(From) direccion que envía
  3. -t <destino>@gmail.com <-(To) direccion de destino
  4. -u “[Tramission] Descarga finalizada” <-Asunto del email. Importante que esté entre comillas dobles.
  5. -m <-Lo que viene después es el texto del email, que también deberá estar entre comillas dobles.
  6. “Se ha completado la descarga del trabajo\n <-\n sirve para hacer salto de linea.
  7. $TR_TORRENT_NAME\n <-esta variable es el nombre del torrent descargado.
  8. Hora: $TR_TIME_LOCALMACHINE\n <-hora de finalización de descarga.
  9. Folder: $TR_TORRENT_DIR\n <-carpeta donde se ha descargado.
  10. ID: $TR_TORRENT_ID” <-número de ID de la descarga en la cola. Ojo, que aquí ya hay que cerrar las comillas.
  11. -s smtp.gmail.com:587 <-servidor de SMTP y puerto. Si no es gmail será diferente.
  12. -xu <usuario> <-usuario de gmail para enviar el email. Será igual a remite.
  13. -xp <contraseña> <-contraseña del usuario de gmail.
  14. -v <-(Verbose) para detallar más información en caso de fallo.
  15. -o username=<usuario> <-otra vez el usuario
  16. -o password=<password> <-otra vez la contraseña
  17. -o tls=yes <-para autenticación segura de gmail

Los campos que he marcado como <azul> son los que tendríais que modificar con vuestros propios datos. Básicamente son el usuario y contraseña. Yo en mi caso tengo puestos como dirección de origen y de destino la misma.

Una vez tenemos puesta la cadena de envío, salimos de nano utilizando CTRL+X , después le damos Y para confirmar que queremos guardar y finalmente ENTER para el nombre del fichero.

Ahora ya tenemos el fichero creado pero tenemos que hacerlo ejecutable ya que si no transmission no podría hacer nada con él. Podemos ver que por defecto los permisos que tiene un fichero creado con nano son de lectura y modificación para el propietario haciendo ls -l

Captura de pantalla 2014-01-05 a la(s) 23.28.02

Vemos que efectivamente los permisos son -rw-r–r–, que significa:

  1. <-es un archivo. Si fuera directorio sería una una d.
  2. rw- <-permisos de lectura y escritura para el propietario.
  3. r– <-permiso de solo lectura para el grupo.
  4. r– <-permiso de lectura para el resto (other).

Para que no haya líos a mi me gusta ponerle permisos de ejecución para todo el mundo, lo que se logra fácilmente con el comando sudo chmod +x download_complete.sh

Si hacemos de nuevo un listado mediante ls -l vemos que ahora aparece una x en todas las ternas, lo que significa ejecución.

Captura de pantalla 2014-01-05 a la(s) 23.29.43

Lo siguiente que podemos hacer es probar nuestro script, y para ello nada tan fácil como escribir sh seguido del nombre del fichero.

Captura de pantalla 2014-01-05 a la(s) 23.34.23

En este punto me he encontrado que a veces, igual que en este caso, puede darnos un error: invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332

Creo que este error viene dado por un problema de incompatibilidad entre TTL y la versión de Perl instalada. La forma de solucionarlo es editar el fichero de sendemail mediante sudo nano /usr/bin/sendemail y luego modificar la linea donde dice SSLv3 TSLV1 para dejar solamente SSLv3. En mi caso la linea era la 1907, pero en vuestro caso puede variar. Para editar el fichero directamente en la linea que queremos podemos usar el comando sudo nano +1907 /usr/bin/sendemail

Captura de pantalla 2014-01-05 a la(s) 23.38.37

Captura de pantalla 2014-01-05 a la(s) 23.41.07

Ahora podemos volver a hacer la prueba de email lanzando de nuevo nuestro comando.

Captura de pantalla 2014-01-05 a la(s) 23.42.50

Aquí vemos que ahora el email ha salido, por lo que solamente nos faltaría irnos a nuestra bandeja de entrada y comprobar que efectivamente está ahí. Prometo que el próximo día os cuento cómo crear carpetas compartidas para que podamos acceder a ellas desde nuestra red local.

Instalación de Transmission

Bueno, tal como comenté en la última entrada, ahora que hemos terminado de configurar nuestra Raspberry como mediacenter y le hemos enlazado toda nuestra librería, es hora de hacer que también funcione como gestor de descargas.

Para ello yo voy a utilizar Transmission, que es un cliente bastante ligero y que funciona muy bien. Además, existe posibilidad de ir añadiendo ficheros desde cualquier otro equipo mediante su interfaz web. Yo esto lo he utilizado incluso para añadir descargas desde fuera de mi red local, lo cual es muy útil en algunos casos.

Creo que XBMC da la posibilidad de instalar Transmission como un programa dentro del propio mediacenter, pero esto es algo que no he probado y no sé muy bien cómo funciona, quizás lo investigue en profundidad en el futuro.

Antes de instalar nada nuevo siempre me gusta cerciorarme de que el sistema está totalmente actualizado. Esto nos ayudará a que no haya problemas de compatibilidad de paquetes a la hora de instalar algo nuevo.

Usando XBian, la forma de hacerlo será yendo a Sistema > Ajustes > XBian > Update

20131228-203802.jpg

20131228-203826.jpg

20131228-203840.jpg

Aquí podemos ver tanto si el kernel de nuestro sistema está actualizado como si lo están los paquetes adicionales.

20131228-204429.jpg

En mi caso tengo pendientes de instalar algunos paquetes. Podríamos ir uno a uno diciéndole que los instale, pero la forma más rápida de instarlos todos es bajando hasta el final de la lista, donde nos da una opción para actualizarlos todos.

20131228-204453.jpg

20131228-204531.jpg

Después de instalar las actualizaciones, salimos del menú. XBian hará una comprobación para ver si alguna de las actualizaciones hace necesario un reinicio del sistema. En caso de ser necesario, nos presentaría una ventana preguntando si queremos reiniciar ahora.

Una vez reiniciado (en caso de haberlo hecho), nos conectamos mediante terminal usando el comando ssh xbian@[dirección IP]

Captura de pantalla 2013-12-29 a la(s) 11.14.46

Ahora procedemos con la instalación de nuestro cliente. En nuestro caso se llama transmission-daemon, y lo instalamos con el comando sudo apt-get install transmission-daemon

Captura de pantalla 2013-12-29 a la(s) 11.15.19

El sistema comenzará con la instalación de Transmission, y una vez acabada arrancará el servicio que irá corriendo en background, llamado transmission-daemon.

Captura de pantalla 2013-12-29 a la(s) 11.15.42

Captura de pantalla 2013-12-29 a la(s) 11.16.39

En este punto tenemos nuestro gestor de descargas funcionando, pero tenemos que hacer cambios referentes a los directorios de descarga, acceso web y otros. Lo primero que haremos para realizar estos cambios será parar el servicio mediante el comando sudo /etc/init.d/transmission-daemon stop

Captura de pantalla 2013-12-29 a la(s) 11.17.07

Ahora ya podemos proceder con los cambios en la configuración, la cual se encuentra en un archivo llamado settings.json. Para editarlo ejecutamos el comento sudo nano /var/lib/transmission-daemon/info/settings.json

Captura de pantalla 2013-12-29 a la(s) 11.17.45

A continuación os pongo los cambios que he llevado yo a cabo, así como el significado de cada uno. Podéis ver que hay muchísimas más cosas a configurar, por lo que si tenéis interés podéis buscar sus significado en la página de Transmission aquí.

  1. “download-dir”: “/media/drive/torrent/finish”  <-este es el directorio por defecto de las descargas si no se indica lo contrario
  2. “download-queue-size”: 20 <-número de elementos simultáneos que se pueden descargar
  3. “incomplete-dir-enabled”: true <-esto sirve para que los archivos que aun se están descargando vayan a un directorio distinto de los ya descargados.
  4. “incomplete-dir”: “media/drive/torrent/temp” <-aquí es donde se almacenan los archivos incompletos
  5. “rpc-enabled”: true <-esto habilita la interfaz web para poder manejarlo desde un navegador
  6. “rpc-username”: “transmission” <-el nombre de usuario que usaremos para logarnos en la web
  7. “rpc-password”: “password” <-la contraseña para la interfaz web
  8. “rpc-whitelist-enabled”: false <-esto lo pondremos a true si queremos una whitelist, que sirve para que solamente ciertas direcciones IP puedan conectarse a la web de Transmission. Yo lo deshabilito porque como accedo desde el móvil y la IP cambia, entonces no podría hacerlo.
  9. “rpc-port”: 9091 <-el puerto para acceder a la web
  10. “script-torrent-done-enabled”: true <-esto es por si queremos que ejecute un script cada vez que termine una descarga.
  11. “script-torrent-done-filename”: “/home/xbian/scripts/download_complete.sh” <-este es el script. Lo explicaré más adelante en otra entrada
  12. “watch-dir”: “/var/flexshare/shares/watch-torrent” <-este es el directorio donde, si copiamos un archivo .torrent, Transmission lo añadirá automáticamente a la cola de descargas.
  13. “watch-dir-enabled”: true <-esta es la opción para habilitar la monitorización automática de un directorio en busca de archivos .torrent.

Captura de pantalla 2013-12-29 a la(s) 11.24.56

Salimos del editor mediante CTRL + C , le damos a Y cuando nos pregunte si queremos guardar y presionamos ENTER para confirmar que el nombre será el mismo.

Ahora que ya hemos hecho los cambios arrancamos de nuevo el cliente mediante el comando sudo /etc/init.d/transmission-daemon start

Captura de pantalla 2013-12-29 a la(s) 11.26.06

Si todo ha ido bien deberíamos poder acceder a la interfaz de Transmission entrando la dirección de la Raspberry en el navegador de cualquier otro equipo (ordenador, tablet o Smartphone) indicando el puerto 9091 (o el que pusierais en la configuración). Si accedeis desde el navegador de la propia Raspberry, entonces la dirección sería la localhost o 127.0.0.1 Si no lo habéis cambiado durante la configuración, el usuario por defecto es transmission y el password también es transmission

Captura de pantalla 2013-12-29 a la(s) 12.07.08Captura de pantalla 2013-12-29 a la(s) 12.07.17

Podéis hacer la prueba de añadir un archivo torrent y ver cómo empieza a bajar al directorio que habéis indicado por defecto. Lo bueno es que también admite magnet links.

Captura de pantalla 2013-12-29 a la(s) 12.08.40

Captura de pantalla 2013-12-29 a la(s) 12.10.21

Lo voy a dejar aquí de momento aunque seguro que hay una pregunta en vuestras cabezas: ¿cómo accedo al directorio donde se bajan los archivos? Esto lo veremos en la próxima entrada, aunque os adelanto la respuesta: SAMBA.

Añadir contenido a XBMC

Continuamos el proceso de configuración de la Raspberry como mediacenter y gestor de descarga. Para ello vamos a conectar el disco duro donde se guardaran los ficheros.

Yo me he decantado por un disco Seagate de 2 TB e interfaz USB3 de 3.5″ (podéis verlo en Amazon aquí).

Seagate de 2TB y USB3

Conecto el disco a la corriente (necesita alimentación externa) y después a la Raspberry mediante mi hub USB de 7 puertos donde ya tengo también conectado el adaptador WiFi.

Hub USB de 7 puertos

En caso de que el disco no necesitara alimentación externa, es posible que éste fuera alimentado por el propio hub. Teóricamente la Raspberry también podría alimentar pequeños dispositivos directamente desde el USB, pero los discos externos suelen necesitar más corriente de la que puede ofrecer por lo que puede haber fallos en el funcionamiento normal. La forma más fácil de evitar ese problema es mediante un hub USB auto-alimentado que proporciona la potencia necesaria.

Ahora que hemos conectado el disco podemos comprobar desde el propio XBMC si el disco ha sido montado. Para ello iremos al menú Sistema > Info del sistema

Sistema > Info del sistema

Después vamos al menú Almacenamiento donde podemos ver todas las particiones montadas actualmente. En este caso vemos que el disco ha sido montado correctamente como Seagate-5286-5604.

20131117-195224.jpg

El siguiente paso es crear las carpetas donde se almacenará el contenido. Esto es importante sobretodo con el tema de las series porque si no XBMC no se entera y se hace un lío con las temporadas. Además, así queda todo más organizadito (luego más adelante lo explico).

Primero nos conectamos por SSH a la Raspberry.

Conexión a XBian mediante ssh

Buscamos el punto de montaje del disco. Para ello podemos ejecutar el comando df -h

Discos y particiones

En mi caso vemos que el disco ha sido montado en /media/Seagate-5286-5604

Cambiamos nuestro directorio actual de trabajo al del disco.

Cambio de directorio

Y ahora ya podemos proceder a la creación de las carpetas. Por el tipo de contenido que tengo, yo me he decantado por la siguiente estructura:

  • Películas (para las películas)
  • Series (para las series de television)
  • Anime (para el anime)

Captura de pantalla 2013-11-17 a la(s) 20.56.20

En el caso de que nuestra biblioteca de contenido se encuentre totalmente vacía o queramos empezarla desde cero, entonces el proceso de copia que explico a continuación puede saltarse.

A la hora de copiar los ficheros tenemos dos opciones:

  • Hacer la copia en otro ordenador
  • Hacer la copia desde XBian

En caso de decantarnos por la primera opción entonces no hay pérdida: conectamos el disco nuevo al ordenador donde tengamos actualmente nuestra librería y lo movemos (o copiamos) siguiendo la estructura de carpetas que hemos creado: películas, series, etc.
Lo primero que hay que hacer es desmontar el disco para que todos los procesos que pudieran estar a medias utilizando los datos del disco finalicen correctamente.
Nada tan fácil como ejecutar el comando unmount y el nombre del dispositivo (Ej: /dev/sda1). Sin embargo, en este caso, el sistema no nos deja desmontarlo porque nos dirá que existen procesos que están usando este disco, obviamente es XBMC. En este caso la mejor opción es apagar XBian y luego desenchufar el disco.

Si queremos hacer la copia desde XBian significa que nuestro contenido ya se encuentra en un disco externo, por lo que lo primero que hay que hacer es conectar dicho disco a nuestro hub.
Después hay que mirar dónde se ha montado el nuevo disco y proceder con la copia:

Captura de pantalla 2013-11-17 a la(s) 20.57.38

En la captura puede verse dónde está montado cada disco y la forma de hacer la copia de un fichero de un disco a otro.

Para el tema de las series hay un punto muy importante a tener en cuenta: el nombre de los ficheros. XBMC nos permite tener todos los capítulos de diferentes temporadas de una serie en una misma carpeta, o tenerlos separados en subcarpetas por temporada. De una u otra forma, el nombre del fichero debe de seguir la norma de “nombre de serie temporada capitulo”. Yo uso “Serie SxxExx texto”, donde Sxx es el número de temporada (season) y Exx es el número de episodio (ej: Firefly S01E13). También podéis usar el formato “Serie SxEE” (Ej: Firefly 1×13). El texto que haya a continuación es irrelevante, por lo que puede ser el nombre del episodio, el grupo que lo ha ripeado o simplemente estar en blanco. Podéis leer más sobre el tema de la nomenclatura en el sitio de XBMC aquí.

Ya tenemos nuestro disco lleno de contenido conectado a XBian, pero ahora tenemos que decirle a XBMC que ahí se encuentran los ficheros susceptibles de ser reproducidos.

  • Películas

vamos al menú Vídeos > Archivos y le decimos Añadir Vídeos.

20131117-195703.jpg

Después le damos a Buscar, seleccionamos nuestro disco y luego la carpeta que hemos creado a tal fin (en mi caso Películas).

20131117-195907.jpg

20131117-195931.jpg

20131117-200003.jpg

En el campo que pone “Introduzca un nombre para la fuente” podemos darle el nombre que mejor nos lo identifique, en este caso algo tan original como Peliculas.

20131117-200020.jpg

20131117-200114.jpg

20131117-200135.jpg

Ahora tenemos que decirle el tipo de contenido (películas), de dónde queremos que coja los meta datos (The Movie Database) y un par de opciones más a nuestro gusto.

20131117-200214.jpg

20131117-200257.jpg

20131117-200510.jpg

Cuando pregunte si queremos actualizar la librería le podemos decir que sí y el proceso comenzará, por lo que dependiendo de la cantidad de ficheros puede echarse tranquilamente su horita de carga.

20131117-200530.jpg

20131117-200549.jpg

Cuando desaparezca el mensaje quiere decir que nuestra biblioteca de películas está actualizada. Para comprobarlo podemos usar el menú Películas y ver las que se han añadido recientemente:

20131117-200710.jpg

Es conveniente que revisemos el listado de películas ya que en más de una ocasión XBMC se ha confundido al identificarme alguna (normalmente remakes) y ha seleccionado la antigua en lugar de la nueva. En caso de que nos encontremos algún caso así, la forma de arreglarlo es utilizando el menú secundario y diciéndole Actualizar. Entonces nos mostrará una ventana con varios títulos, seleccionamos el correcto y listo.

Esta no es la versión que tengo

Esta sí que es

  • Series

Ahora hacemos lo mismo con las series. Vamos a Vídeos, añadimos una fuente y seleccionamos la carpeta de series (en mi caso voy a hacerlo con el Anime, pero el proceso es igual para las series).

20131117-201026.jpg

Después le decimos que el tipo de contenido es series y seleccionamos las opciones de acuerdo a nuestras preferencias. Para las series podéis usar como scraper (buscador de datos) The TVDB. En mi caso, para el anime, yo he seleccionado AniDB.net

20131117-201316.jpg

Una vez más comenzará una actualización de la biblioteca, que habrá finalizado cuando desaparezca la ventana. Para comprobarlo nos vamos al menú Series desde el menú principal.

Igual que en las películas, recomiendo darle un vistazo a las series para ver si ha identificado mal alguna.

Un error con el que también me he encontrado en más de una ocasión además de que XBMC identifique mal una película, es que no la identifique en absoluto. Ello puede darse por ejemplo si el nombre del archivo está mal escrito. En ese caso, dicha película no aparecerá en el menú Películas por lo que a priori no nos daremos cuenta a no ser que sepamos que debiera estar ahí y no la vemos. ¿Cómo saber si XBMC no ha identificado algún fichero? Desde Sistema > Archivos en el menú principal.

20131117-201635.jpg

Después hay que navegar por los menús hasta el punto donde esté montado nuestra carpeta. Como en mi caso es un disco USB, entonces primero voy a Root filesystem

20131117-201656.jpg

Luego vamos a media > Seagate que es donde el disco está montado.

20131117-201706.jpg

20131117-201723.jpg

Nos mostrará el listado de las películas. Las películas que no tienen la calidad (SD o HD) son las que no ha identificado.

Película no identificada

Para arreglarlo abrimos el menú secundario y seleccionamos actualizar. En este caso no encontrará nada o lo encontrara mal, por lo que tenemos que escribirla nosotros.

Actualizar

Ahora ya encuentra la película
20131117-225239.jpg

Ahí ya vemos cómo está bien identificada. Si nos vamos al menú películas ya debería aparecer.

Película correctamente identificada

Creo que con esto termina la parte de configurar el mediacenter mediante XBMC. A partir de ahí simplemente es cacharrear un poco con las opciones disponibles para ajustarlo más a nuestros gustos y necesidades.

Lo siguiente que abordaré será la instalación del cliente torrent y después la
automatización de las descargas.

Utilización de claves pública y privada

Hoy os voy a decir cómo hacer para que no nos pida contraseña cada vez que conectamos por ssh a nuestra Raspberry Pi.

Para ello haremos uso de nuestras claves pública y privada, que no son más que un par de claves que permiten autenticarnos en otro dispositivo (además de otras muchas más cosas). El funcionamiento es sencillo: generamos nuestro par de claves (una pública y una privada), nos guardamos la privada para nosotros y podemos compartir la clave púbica con cualquier otro equipo donde queramos conectarnos. Haciendo uso de unos algoritmos, el sistema verificará que nuestra clave privada y nuestra clave pública son parte del mismo sistema y nos permitirá entrar.

Así pues, lo primero que hay que hacer es generar nuestro par de claves en caso de que no las tengamos. ¿Cómo saber si las tenemos? fácil, abrimos una ventana de terminal y accedemos al directorio .ssh que cuelga de nuestra carpeta home.

imagen 1

En este caso podéis ver que el único fichero que hay es el que se generó cuando me conecté a la Raspberry y me preguntó si confiaba en ese dispositivo (de ahí que se llame known_hosts). Eso quiere decir que no tengo claves. Para crearlas nada tan sencillo como ejecutar ssh-keygen

imagen 2

Aquí podeis ver que han pasado varias cosas:

  • lo primero es que me preguntó dónde quería alojar los ficheros de claves. He pulsado ENTER para dejar el directorio por defecto, que es .ssh como vimos anteriormente.
  • Lo segundo que me preguntó fue un passphrase. Esta sería una contraseña que habría que utilizar cada vez que hagamos uso de las claves para que, en caso de que la clave privada se vea comprometida por robo o extravío, aun y así no se podría acceder a los sitios de confianza al no disponer del passphrase. Como en mi caso lo que quiero es dejarme de claves, pulso ENTER dos veces y lo dejo en blanco.

Después de eso dice que las claves se han generado correctamente y nos muestra la imagen de nuestra clave. Muy bonita.

Bien, si ahora volvemos a ver qué hay en nuestro directorio .ssh deberíamos ver algo más que antes.

imagen 3

Ahí pueden verse los dos ficheros con las claves: id_rsa, que contiene la clave privada (este fichero no debe ser compartido con nadie), e id_rsa.pub, que contiene la clave pública. Este es el que compartiremos por ahí. ¿Cómo lo hacemos? fácil. Lo primero es mostrar el contenido del fichero público.

imagen 4

Ahora tenemos que seleccionar con el ratón toda esa ristra de caracteres y copiarlo al portapapeles.

imagen 5

Después nos conectamos por ssh a la Raspberry con la contraseña que hemos utilizado hasta ahora (recuerda que si no la has cambiado es raspberry)

imagen 6

En este momento, si intentamos entrar en el directorio .ssh del usuario xbian no debería dejarnos ya que ese directorio no existe (a no ser que hayas hecho ssh hacia algún otro equipo desde la Raspberry).

imagen 7

No pasa nada porque vamos a hacer uso de ssh-keygen para generar un par de claves para este usuario y así el directorio .ssh se creará automáticamente.

imagen 8

¿Veis como la imagen de la clave es distinta? Bien, ahora deberíamos poder acceder al directorio .ssh

imagen 9

Ahí están nuestras claves para el usuario xbian.

Ahora lo que queremos es poder acceder automáticamente desde el Mac en la Raspberry. Para ello tenemos que decirle a ésta que mi usuario del Mac es de confianza. Esto lo conseguimos creando un fichero llamado authorized_keys con la ayuda del comando nano authorized_keys.

imagen 10

Dentro del fichero pegamos el contenido del portapapeles, que era el contenido de nuestro fichero de clave pública de la cuenta del Mac. Hacemos CTRL+X para salir, le damos a Y para guardar los cambios, y pulsamos ENTER para dejar el nombre del fichero como está. Ahora, deberíamos tener un nuevo fichero en nuestro directorio .ssh

imagen 11

Ahí lo tenemos, así que lo último que nos queda por hacer es probarlo. Así que hago exit para terminar la conexión ssh y luego intento conectarme de nuevo.

imagen 12

¡Premio! como veis no me ha pedido la contraseña en ningún momento. Es algo muy sencillo y que nos evitará tener que estar escribiendo la contraseña cada vez que nos conectamos, cosa que haremos mucho para continuar configurando el sistema en las siguientes entradas.

Conectar por consola mediante SSH para más ajustes básicos.

Aunque es muy chulo tener la Raspberry conectada al televisor para poder usar XBMC, aun lo es más poder conectarse mediante consola remota para seguir cacharreando con ella e implementar todas las peculiaridades que queremos. Así pues, lo siguiente que os voy a mostrar es cómo hacerlo desde el terminal usando el comando SSH.

Como ya sabemos la IP de nuestra RasPi (lo vimos cuando configurábamos la red a través de XBian), lo único que tenemos que hacer es abrir una ventana de terminal (o consola) y teclear el comando SSH xbian@<direccion IP> (en mi caso sería SSH xbian@192.168.1.37).

xbian es el usuario por defecto que viene en XBian, en otras distribuciones es distinto (consultad la web en cada caso o haced una búsqueda rápida en la web). En caso de que más adelante quisiéramos crear uno propio, simplemente tendríamos que sustituirlo en la linea de comandos. Si yo me creo un usuario torrated entonces para acceder remotamente tendría que escribir ssh torrated@192.168.1.37 (aunque como veremos más adelante, esto no será necesario).

Captura de pantalla 2013-06-02 a la(s) 12.35.09

Dado que es la primera vez que conectamos mediante ssh a la RasPi, el sistema nos devolverá un mensaje diciendo que no lo conoce y que procederá a crear una entrada en los hosts conocidos, pero para ello tenemos que confirmarlo simplemente escribiendo yes

Captura de pantalla 2013-06-02 a la(s) 12.35.39

Hecho esto, el sistema nos pedirá la contraseña, la cual en XBian es raspberry

Captura de pantalla 2013-06-02 a la(s) 12.36.59

XBian está configurado para mostrarnos una pequeña aplicación de configuración cuando nos conectamos por consola para poder controlar, entre otras cosas, el overclocking y la ampliación de las particiones (en otras distribuciones como Raspbian esto se hace con el comando raspi-config).

Captura de pantalla 2013-06-02 a la(s) 12.37.19

Abrimos el menú Ajustes y luego abrimos Sistema.

Captura de pantalla 2013-06-02 a la(s) 12.37.19

Lo primero que vamos a hacer es expandir el tamaño de la partición de superusuario y decirle que utilice toda la tarjeta SD. Ello nos facilitará la instalación de paquetes adicionales y no tendremos problemas de espacio. Para hacerlo seleccionamos la primera opción Cambiar tamaño SD

Captura de pantalla 2013-06-02 a la(s) 12.37.28

Una vez ampliada cambiaremos la Zona horaria para hacerla coincidir con la ubicación en la que nos encontramos.

Si queremos cambiar la contraseña por defecto del usuario xbian (cosa que recomiendo, sobretodo si más adelante queremos acceder desde fuera de nuestra LAN), lo podemos hacer de forma sencilla desde el submenú Cuentas.

Captura de pantalla 2013-06-02 a la(s) 12.39.11

Como no recuerdo si en la configuración que hice desde XBMC habilité el servidor WEB, lo que nos permite acceder a nuestra librería desde un navegador además de poder usar aplicaciones para smartphone y usarlo de control remoto, también lo habilito desde este menú.

Listo, salimos del menú y nos vamos a nuestro terminal, desde donde compruebo que la partición ha incrementado su tamaño hasta ocupar los casi 16GB de la tarjeta (esto se hace fácilmente con el comando df o con df -h, este ultimo en lugar de bytes usa MB y GB, más cómodo).

Captura de pantalla 2013-06-02 a la(s) 12.41.30

Y ya está, el próximo día os contaré como evitar el tener que estar siempre escribiendo la contraseña cada vez que nos conectamos por terminal haciendo uso de la claves pública y privada.

Por cierto, si sois usuarios de Windows os habréis dado cuenta de que el comando ssh no es reconocido por la consola del DOS. Para conectaros de forma remota yo os recomiendo el programa Putty, es gratuito, sencillo y funciona a la perfección.