actualizacion de software ubuntu

Ubuntu te lanza una Actualización de software pero en mitad del proceso se queda colgado (sí, Linux también se cuelga), la única manera de terminar es cerrando la ventana y forzando el cierre. No hay mensaje de error ni pistas para solucionarlo. Sin embargo, los más intrépidos habréis intentado ejecutar la actualización por consola, y ahí sí, recibimos algo parecido a esto:

E: No se pudo bloquear /var/lib/apt/lists/lock - open (11: Recurso no disponible temporalmente)
E: No se pudo bloquear el directorio /var/lib/apt/lists/

La ruta concreta es lo de menos porque puede pasar con varias diferentes, por suerte el problema es siempre el mismo: algún proceso se ha quedado enganchado al fichero y no deja que nadie más lo utilice. La solución también es única:

sudo fuser -vki /var/lib/apt/lists/lock

Donde la ruta es la que nos dio el primer error, fuser es un comando que nos lista los ficheros abiertos y las opciones del mismo son:

  • v: verbose, es decir, ver de forma más extensa lo que se va a ejecutar
  • k: kill, mata los procesos que tengan el fichero ocupado
  • i: interactive, pide confirmación para matar cada proceso

Y nada más, una vez muertos los procesos que tenían ocupado el fichero podemos actualizar sin problemas. En cualquier caso, siempre es positivo reparar paquetes rotos y eliminar los que ya no sirvan, por si acaso alguno ha producido este inconveniente:

sudo dpkg --configure -a

sudo apt-get autoremove

Si además queremos aprovechar que tenemos la consola abierta para hacer la actualización ejecutamos:

sudo apt-get update && sudo apt-get upgrade

Que es exactamente lo que hace visualmente Actualización de software.

Raspberry Pi Centro Multimedia

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:

Introducción

La comodidad de tener grandes cantidades de información en varios sitios a la vez es algo que se ha vuelto casi fundamental últimamente. Servicios como Dropbox, Google Drive o Mega son grandes soluciones, pero todos ellos tienen 2 problemas fundamentales: seguridad y capacidad.

Teóricamente son empresas muy potentes que ofrecen una seguridad muy alta, pero es un arma de doble filo, los hackers siempre van a ir a por los grandes. Robos de contraseñas están a la orden del día y, aunque habitualmente nuestros datos no suelen ser relevantes para nadie más, el hecho de tenerlo todo en servidores de terceros siempre es sinónimo de falta de control.

Pero todavía más claro es el inconveniente de la capacidad. Y el problema ya no es que te ofrezcan 10, 25 o 50 GB gratis, sino que a día de hoy, con los teléfonos grabando vídeos FullHD, e incluso 4K, ocupando 150 MB por minuto, y fotos de más de 20 mpx, en un par de años te ves con 100 GB sólo en contenido de la cámara del móvil.

Así que necesitamos algo que no dependa de terceros pero, sobre todo, que sea lo más ilimitado posible. Y ahí es donde entra en juego nuestra Raspberry Pi, disponible las 24 horas del día y con toda la capacidad que quieras enchufarle por USB, yo por ejemplo la tengo con 3 TB. Genial, tenemos el hardware necesario, ahora necesitamos el software: BitTorrent Sync. Es mi elección preferida porque:

  1. No alojas ningún fichero en ningún servidor externo
  2. Sincronizas dispositivos directamente entre ellos por P2P
  3. Al utilizar dicho protocolo, cuantos más dispositivos tengas conectados, más rápidas serán las sincronizaciones (y no al revés como pasa con los demás)
  4. El límite de velocidad no lo pone nadie, lo pone tu línea, tanto de subida como de bajada, pero siempre pudiendo sumar al tener más dispositivos conectados a la vez
  5. La capacidad máxima de almacenamiento la pones tú con el disco duro que elijas
  6. Los programas de escritorio y apps para móviles son todos gratuitos
  7. Sin límite de tamaño de carpeta ni de fichero, un vídeo de 1 TB está perfectamente permitido
  8. Multiplataforma: Linux, Windows, Mac, móviles, tablets, NAS, ARM, Power PC, Free BSD…

Creo que son razones más que suficientes para optar por esta solución así que vamos a ver como la ponemos en marcha.

Instalar BitTorrent Sync

Vamos a agregar un nuevo repositorio para descargar e instalar BitTorrent Sync en nuestra Raspberry Pi:

sudo nano /etc/apt/sources.list.d/btsync.list

Se abrirá un documento vacío en el que escribiremos:

deb http://debian.yeasoft.net/btsync wheezy main contrib non-free
deb-src http://debian.yeasoft.net/btsync wheezy main contrib non-free

Lo guardamos y salimos con Ctrl+O, Intro, Ctrl+X. Ahora le decimos al sistema que lea los nuevos repositorios:

sudo apt-get update

Normalmente no hay problemas con este comando, pero esta vez nos devolverá un error de GPG parecido a éste:

W: Error de GPG: http://debian.yeasoft.net wheezy Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 40FC0CD26BF18B15

No pasa nada, simplemente hay que instalar la llave pública para poder utilizar el repositorio:

sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 6BF18B15

Nótese que los últimos 8 caracteres del comando anterior son los últimos 8 del mensaje de error. Y ahora sí, cuando nos diga que ha conseguido importar 1 clave pública, vamos a instalar BitTorrent Sync:

sudo apt-get install btsync

No importa que diga que no se han podido autenticar los paquetes, los instalamos igualmente.

Configuración de BitTorrent Sync

Cuando termine de instalarse aparecerá una interfaz para configurar los parámetros del BitTorrent Sync. Voy a poner aquí la secuencia en imágenes de lo básico, el resto es cuestión de cada uno modificarlo a su gusto, es todo bastante intuitivo y está muy bien explicado.

Primero nos pregunta si queremos elegir el usuario que va a leer y escribir los directorios de BitTorrent Sync, obviamente sí queremos, pero no debemos elegir root sino el que usamos habitualmente que es pi, y como grupo vamos a dejar el de por defecto.

btsync1

btsync2

btsync3

Los siguientes parámetros por los que nos pregunta son la amabilidad, la IP desde la cual permitimos el acceso a la interfaz web y el puerto por el que mostrar dicha interfaz. En los 3 casos se pueden dejar las opciones por defecto, especialmente importante que la IP sea la 0.0.0.0 ya que, como vimos en el paso 6, gracias a ddclient vamos a poder conectarnos a la interfaz del BitTorrent Sync desde cualquier lugar del mundo. El puerto no debe coincidir con otro que ya estés utilizando, eso sí, recuérdalo bien porque tendrás que redireccionarlo en tu router como ya hiciéramos con los puertos del Transmission y del SSH.

btsync4

btsync5

btsync6

Por último nos pregunta si queremos limitar las conexiones web por SSL. Si tienes un certificado de este tipo en tu Raspberry Pi y quieres utilizarlo para ésto, adelante, pero lo normal es que respondas que no.

btsync7

Después terminará de instalar lo que falta e iniciará el btsync automáticamente.

Utilizar BitTorrent Sync

Desde este preciso momento puedes acceder al BitTorrent Sync desde cualquier navegador web escribiendo la IP de tu RPi seguido del puerto que elegimos antes, por ejemplo:

http://192.168.1.10:8888

La primera vez que lo haces te pide que escribas un usuario y una contraseña. No tiene que ser el mismo que utilizas para entrar a tu Raspberry Pi, de hecho, por seguridad no debería serlo, aunque por comodidad sí que puedes poner el mismo.

Una vez dentro tendremos una pantalla vacía con 5 iconos arriba a la derecha:

btsync10

  1. Campana: Cada vez que tengas una notificación aparecerá ahí, suelen ser peticiones de compartición de carpetas desde tus otros dispositivos
  2. Carpeta: Sirve para agregar un directorio a la sincronización, puedes mantener varias carpetas sincronizadas con diferentes dispositivos
  3. Enlace: Cuando compartes una carpeta se genera un enlace, poniéndolo aquí haces que se cree la sincronización, aunque el otro dispositivo ha de aceptarla
  4. Reloj: Muestra el historial de movimientos en las sincronizaciones
  5. Rueda: El típico menú de preferencias

Dentro de las preferencias vamos a poder pausar la sincronización, elegir las columnas que queremos ver en el lista de directorios compartidos, elegir el idioma de la web o limitar las velocidades de subida y bajada, entre otras cosas.

En cada línea de cada carpeta compartida, a la derecha del todo, aparecerá el botón de compartir, con el que podremos generar un enlace para que el resto de dispositivos se sincronicen con el directorio en concreto. Puedes elegir si quieres que el resto de dispositivos sólo puedan leer, o si prefieres que puedan además modificar y eliminar los ficheros contenidos.

btsync9

Fin

Creo que el resto se puede deducir sin problemas y es fácil de usar. Yo básicamente tengo la app instalada en el móvil con la que comparto la carpeta de la cámara con una carpeta específica en mi Raspberry Pi (modo sólo lectura, para que la sincronización sea unidireccional, es decir, si borro fotos de la cámara no se borran en la RPi y si agrego fotos en la RPi no se ponen en el móvil).

Y además tengo una carpeta en la RasPi que utilizo de “nube”, en modo lectura y escritura, que comparto con el resto de mis ordenadores para poder trabajar con los datos allí almacenados bidireccionalmente, es decir, actualizando en todos los dispositivos, incluida la RPi, lo que modifico en cualquiera de ellos. Que cada cual se lo monte como mejor se adapte a sus necesidades.

También es posible compartir una carpeta concreta con varios amigos donde poner las fotos de un viaje o un evento, documentos de trabajo conjunto, prácticas de la universidad, música… todo lo que alcance la imaginación.

samba

Introducción

Antes de tener la Raspberry Pi probablemente tuvieras un ordenador donde almacenabas todo tu contenido multimedia. Ahora lo ideal sería transferir todo ese material al disco duro USB conectado a la RPi. Ya que tenemos SSH podríamos utilizar el protocolo SFTP para transferir los ficheros, pero también podemos tener una carpeta compartida en la red mediante samba y así transformar nuestra RasPi en un servidor NAS.

Instalar samba

Lo primero es instalar los dos paquetes necesarios para lo que queremos:

sudo apt-get install samba samba-common-bin

El primero es el samba en sí mismo y el segundo nos sirve para poder asignar una contraseña a nuestro usuario de samba. Hasta aquí fácil. Ahora viene lo más crítico, que es configurarlo apropiadamente. El 90% de los fallos vienen de aquí.

Configurar samba

Vamos a tocar lo básico, el fichero de configuración está muy bien comentado y explicado, por si te apetece toquetear y adaptarlo a tus necesidades, pero para el común de los mortales habrá que cambiar muy pocas cosas.

sudo nano /etc/samba/smb.conf

Toda línea que empiece por # (almohadilla) es un comentario y no tiene efecto en la configuración del samba. Nosotros nos tenemos que fijar en 2 parámetros fundamentalmente:

workgroup = WORKGROUP

wins support = yes

El primero es workgroup y da nombre al grupo de trabajo de tu red, por defecto viene el que le pone Windows de serie a sus redes. Normalmente no es necesario cambiarlo. El segundo, wins support, aparecerá comentado, con una almohadilla delante. Es muy importante que descomentes esa línea (quita la #). Da igual si vas a utilizarlo o no, eso ya lo decides tú poniendo yes o no, pero la configuración del samba debe leer ese parámetro para que todo funcione correctamente.

Compartir carpetas

Una vez puestos correctamente esos 2 parámetros del principio del fichero nos iremos al final del todo y en líneas nuevas escribiremos esto:

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

Donde la primera línea define el nombre que tendrá nuestra carpeta compartida en la red, en mi caso DiscoUSB. comment puede ser cualquier cosa que quieras que defina a la carpeta. path es la ruta de la carpeta que quieres compartir, como yo comparto todo el disco duro USB especifico dónde está montado. browseable para que se pueda navegar por los subdirectorios. writeable para poder leer y escribir. create mask y directory mask definen los permisos que se aplican a los ficheros y directorios nuevos. only guest permite acceder como usuario anónimo o no.

No creo que sea difícil de entender. Si quieres compartir más carpetas, debajo de estas líneas pondrías otras similares para cada carpeta, por ejemplo:

[MusicaRPi]
comment=Musica en la RPi
path=/media/discousb/musica
browseable=yes
writeable=yes
create mask=0775
directory mask=0775
only guest=no

[Torrents]
comment=Torrents para Transmission
path=/media/discousb/torrents
browseable=yes
writeable=yes
create mask=0775
directory mask=0775
only guest=no

Y así con todas y cada una de las carpetas que desees compartir en tu red. Yo prefiero compartir directamente el directorio donde está montado el disco duro USB y así tengo acceso a todo, pero cada uno que se lo monte como le convenga. Ahora guardamos y cerramos el fichero de configuración: Ctrl+O, Intro, Ctrl+X.

Establecer contraseña

Por último, vamos a darle una contraseña a nuestro usuario pi, la lógica diría que es la misma que para acceder al sistema, pero no, samba tiene su propia gestión de contraseñas así que hay asignarle una a cada usuario, puedes utilizar la misma para no liarte u otra diferente por seguridad:

sudo smbpasswd -a pi

Nos pide que pongamos una contraseña dos veces y fin. Esa será la contraseña que debemos poner cuando queramos acceder a alguna de las carpetas compartidas que definimos antes en el fichero de configuración.

Para terminar vamos a reiniciar el servicio para que todos los cambios surtan efecto:

sudo service samba restart

Fin

Ya podemos compartir ficheros entre la Raspberry Pi y cualquier otro dispositivo que tengamos en casa sin necesidad de utilizar un software de FTP, ya sea un PC con Windows o con Linux, un Mac o un dispositivo móvil. En Android yo utilizo ES File Explorer para acceder a mis carpetas compartidas por LAN. Cojo cosas de la RasPi y pongo cosas en ella sin problemas.

Y mañana explicaré como montar tu propia nube privada (algo para sustituir a Dropbox) de forma segura, con capacidad ilimitada y sin servidores de terceros gracias a la RPi y BitTorrent Sync (ownCloud lo dejaremos para más adelante).

Raspberry Pi. Paso 7: Backup de la microSD

Backup Raspberry Pi

Introducción

Ahora que tenemos nuestra Raspberry Pi perfectamente preparada para ser el centro multimedia total, lo que menos nos gustaría sería perder todo eso y tener que reinstalarlo y configurarlo desde cero. Por eso es muy importante hacer un backup completo cada vez que instalamos, actualizamos o modificamos algo y hemos comprobado que funciona correctamente, así, cuando queramos instalar o cambiar otra cosa, aunque lo hagamos mal, siempre podremos volver a estado anterior.

Es muy simple, pero no se puede hacer en caliente, es decir, hay que apagar la Raspberry Pi, sacar la tarjeta microSD y meterla en un ordenador. Después, es tan simple como seguir el paso 1 al revés: en vez de meter Raspbian en la microSD vamos a sacarlo. Como siempre, yo voy a explicar el proceso para un PC con Linux, si tienes Windows puedes utilizar Win32DiskImager.

Identificar la microSD en el sistema

Al igual que cuando instalamos Raspbian, vamos a ejecutar el comando:

df -h

Gracias a él veremos un listado de todos los dispositivos conectados al ordenador. Para identificar nuestra microSD podemos comparar el tamaño o, si no somos capaces con ésto, podemos ejecutar el comando con la tarjeta sacada y con ella metida, por diferencia sacamos la que queremos.

Como la tarjeta se particiona al instalar Raspbian veremos 2 particiones del mismo dispositivo, una de unos 56 MB y la otra del resto hasta el tamaño de nuestra tarjeta, deberías identificarlas como algo de este tipo:

/dev/sdc1
/dev/sdc2

Desmontar la tarjeta microSD

Una vez identificadas las particiones que componen nuestra microSD, tenemos que desmontarlas:

umount /dev/sdc1
umount /dev/sdc2

Copiar contenido de la microSD al PC

Por último, vamos a hacer una copia exacta de la microSD en nuestro PC, así cuando queramos recuperar el sistema a este punto, o instalarlo en otra tarjeta, podremos simplemente pasar la imagen que vamos a crear ahora a la microSD (tal y como lo hicimos en el paso 1, pero en vez de con la imagen original de Raspbian, con la nuestra) y todo funcionaría exactamente igual.

sudo dd if=/dev/sdc of=/ruta/2015-02-23-miraspbian.img bs=1M

Donde if es la ruta de nuestra microSD previamente desmontada, of es la ruta donde vamos a guardar la imagen exacta de nuestro Raspbian modificado (yo le pongo la fecha delante para ir almacenando los backups históricamente) y bs es el tamaño de los bloques a copiar. Como ya expliqué, con 4M suele funcionar, pero cuanto más pequeños sean los bloques menos errores se producen, a cambio, eso sí, de que tarde más en realizar la copia.

Repitiéndome de nuevo, este proceso puede tardar bastante y además el comando dd no muestra absolutamente ningún tipo de dato, ni barra de progreso, ni nada que nos invite a pensar que está funcionando, pero funciona. Tras varios minutos (unos 15 para 8 GB) aparecerá un mensaje de éxito con la cantidad de datos y la velocidad a la que los ha copiado.

Fin

Si la microSD es de 8 GB, piensa que el proceso tiene que copiar todo ese volumen de la tarjeta al PC, obviamente es un proceso largo y dependerá de la velocidad de la tarjeta, hay que tener paciencia, además, el fichero resultante también será de 8 GB, incluso aunque sólo estés utilizando 4 GB, por lo que es muy aconsejable comprimirlo tras finalizar la copia. Cada uno que utilice el software de compresión que más le guste, en Linux bastaría con ejecutar:

tar -czvf 2015-02-23-miraspbian.tar.gz /ruta/2015-02-23-miraspbian.img

Lo que comprimiría una tarjeta de 8 GB en poco más de giga y medio, eso sí, con este comando tampoco hay barra de progreso y el proceso tarda bastante, tendrás que esperar al menos otros 5 minutos con la consola totalmente inerte. Al menos para comprimir hay decenas de programas con intefaz gráfica que sí muestran los tiempos.

Hacer un backup de la microSD sería muy aconsejable cada vez que vayamos a modificar cualquier cosa, por ejemplo, al instalar Kodi, Transmission, ddclient, etc. Es difícil meter la pata pero más vale prevenir que empezar de cero. Además, a partir de ahora, todo lo que explique sobre la Raspberry Pi serán filigranas que a la mayoría no les interesará pero que, en caso de querer probarlas, habría que hacer siempre antes un backup para poder volver al estado de “centro multimedia” si el resultado de lo que vayamos a instalar no es el deseado (o nos cansamos de él).

DNS

Introducción

Si estás contento con tu Raspberry Pi pudiendo reproducir todo tipo de películas y series, descargando tus torrents sin descanso y compartiendo todo ello con cualquier dispositivo de tu red, vas a llorar de alegría cuando sepas que todo eso lo vas a poder gestionar desde fuera de tu casa como si tuvieras la RPi delante.

Simplemente poder conectarte vía SSH a tu RasPi ya te otorga control total sobre ella: instalar, actualizar, configurar o modificar cualquier cosa. Transferir ficheros por FTP. Conectarte al Transmission estés donde estés y poder poner a descargar torrents que se descargarán en casa. Las posibilidades son enormes.

La manera de poder conectarnos a nuestra Raspberry Pi desde cualquier lugar del mundo es teniendo una dirección fija a la que apuntar. Como en el 99% de los casos tenemos IP dinámica en casa, necesitamos un servicio que nos otorgue una URL que siempre esté apuntando a nuestra IP, aunque ésta cambie. ¡Brujería! No, simplemente una web nos proporciona la URL y un protocolo para que nuestra máquina le vaya diciendo cada X tiempo la IP que tiene en ese momento, así la URL siempre está apuntando a nuestra IP real.

Registrarse en DNSdynamic

Hay varias webs que nos proporcionan una dirección fija, yo utilizo DNSdynamic principalmente porque es de las pocas totalmente gratuitas y que funciona correctamente. Sin más palabrería regístrate en:

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

Sólo hay que proporcionar un email (no mandan absolutamente nada de spam) y una contraseña, que serán tus datos de acceso. Una vez registrado haces login y verás dos opciones: “Edit existing domain” y “Add a new domain”. Como supondrás pulsamos sobre “Add”. Ahora vamos a elegir un subdominio (lo que va antes del punto) y un dominio. Recomiendo que pongas algo que recuerdes bien porque va a ser la URL de tu Raspberry Pi. Imaginemos que registramos: mclarenx.wow64.net.

A partir de este momento, no hace falta volver a entrar en la web nunca más para absolutamente nada.

Instalar ddclient

Tan fácil como siempre:

sudo apt-get install ddclient

Tras la instalación te sale el típico configurador para ir metiendo los datos para el programa. Ni caso, si lo quieres rellenar vale, pero luego hay que modificar el fichero de configuración a mano.

Configurar ddclient

Abrimos el fichero de configuración:

sudo nano /etc/ddclient.conf

Y debemos dejarlo tal que así:

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

Donde las mayúsculas son tus datos de DNSdynamic: login (tu email), password y la URL que elegiste, en el ejemplo dijimos que sería mclarenx.wow64.net. Lo único que además puedes cambiar es el valor de daemon, es cada cuántos segundos le dices a DNSdynamic la IP pública que tienes. No es necesario que sea cada poco tiempo porque las IPs dinámicas cambian cada mucho, 300 incluso es poco pero a mi me funciona perfectamente así.

Salvamos el fichero y lo cerramos con Ctrl+O, Intro, Ctrl+X. Sería bueno reiniciar la Raspberry Pi también.

Fin

A partir de este momento tienes acceso a tu RasPi desde cualquier lugar del mundo como si la tuvieras delante. Pero para poder acceder a los servicios de la misma: SSH, Transmission, etc., debes redirigir los puertos de tu router hacia su IP interna, que como dijimos en el paso 2 sería 192.168.1.10. Aquí dejo una lista de los puertos principales que sería bueno que tuvieras apuntando a la Raspberry Pi en tu router:

  • 22: para poder acceder por SSH y SFTP
  • 9091: el puerto que le pusimos al Transmission en el paso 5

No voy a explicar cómo redirigir los puertos en cada marca y modelo de router del mercado, así que eso os lo dejo como tarea para investigar cada uno el suyo, aunque es realmente fácil de hacer.

Con este paso ya tendríamos todo instalado y configurado para tener la Raspberry Pi con lo necesario para ser el centro multimedia perfecto, así que mañana voy a explicar cómo hacer un backup de la microSD por si se nos rompe algo poder volver al estado actual en el que todo funciona a la perfección y tenemos todo lo que necesitamos.

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.

Raspberry Pi. Paso 4: Montar disco duro USB

Introducción

Partiendo de la base de que queremos la Raspberry Pi como centro multimedia, es evidente que con una tarjeta microSD no vamos a tener suficiente, por muy grande que sea. A día de hoy, cualquier película FullHD con sonido DTS 5.1 que se precie, viene ocupando unos 10-15 GB, así que nos va a hacer falta casi con total seguridad un disco duro USB de, mínimo, 500 GB. Habrá quien se pueda apañar con 128 GB, pero este tutorial sirve igual para discos duros como para pendrives de cualquier tamaño.

Elegir el tipo de disco duro USB

Es uno de los puntos más complicados porque todo tiene sus pros y sus contras. Podríamos catalogar las posibilidades en 3 grandes grupos: pendrive, disco duro USB de 2.5″ y disco duro USB de 3.5″. Dependiendo de dónde vayas a colocar todo el invento, te será de mayor o menor prioridad el tamaño físico del disco. Pero más allá de eso, que siempre puede ir detrás de la tele sin que se vea mucho, la clave es elegir entre alimentación externa (red eléctrica) o no (alimentado por el propio USB).

Un pendrive, por grande que sea, no consume tanta energía como para que la Raspberry Pi no pueda con él, así que es la opción más minimalista si la capacidad no es un problema (que lo acabará siendo). Sin embargo, si nos vamos a discos duros de más de 256 GB, nos empezamos a meter en el peligroso umbral de la autoalimentación. Generalmente un disco duro USB de 2.5″ no trae alimentación externa, coge la energía necesaria del ordenador al que está conectado. El problema es que la Raspberry Pi no es capaz de alimentarse a sí misma y a un disco duro de 500 GB con el cargador de 2A. La solución para este caso es comprar un HUB USB con alimentación externa. Con esto ganamos más puertos USB y además alimentación extra para dispositivos que la RPi no es capaz de mover con su propia energía.

Pero ya puestos a ocupar un enchufe más, yo prefiero un disco duro USB de 3.5″ con alimentación externa. Son más fiables, más duraderos y, normalmente, más baratos en igualdad de capacidad. La pega es que es bastante más grande (unas 4 veces la propia RasPi) y quizá en algún salón es realmente un estorbo. Además el HUB USB me parece excesivo ya que disponemos de 4 puertos USB de serie que, en general, son más que suficientes.

Elegir el sistema de ficheros

Sea cual sea tu elección, que es absolutamente personal y dependerá totalmente de las circunstancias de cada uno, sin que haya una única elección perfecta, el sistema de ficheros es la siguiente elección que has de hacer. Y recuerda que es reversible, pero con cada cambio de sistema de ficheros hay que formatear eliminando todo lo que haya.

Hay más, pero básicamente las opciones más lógicas que tienes son 3: FAT32, NTFS, ext3/4. De entrada descartaría FAT32, es el que suele venir por defecto en los pendrives pero tiene un defecto insalvable: no admite ficheros de más de 4 GB. Como ya dije antes, a día de hoy las películas en calidad decente ya ocupan más que eso así que no merece mucho la pena en nuestro caso.

Luego tenemos NTFS, es el sistema de ficheros por defecto de Windows y el que viene en casi todos los discos duros USB. Sólo lo aconsejaría si tenemos un PC con Windows al que pretendemos mover el disco duro más o menos habitualmente para transferir ficheros, aunque esto no debería pasar porque la Raspberry Pi debería ser el centro de todo sin necesidad de un ordenador externo para nada, además siempre podemos transferir los ficheros por la red. Y no lo aconsejo, sobre todo, porque como cualquier otro Linux, Raspbian no tiene soporte nativo para NTFS. Esto implica que tengamos que utilizar software adicional para leer y escribir en el disco, y no sería un problema si no fuera porque es un proceso que recarga bastante la Raspberry Pi tanto computacionalmente como a nivel de temperatura.

Y por último tenemos ext3/4. Vale, son dos opciones en realidad: ext3 y ext4, pero los pongo juntos porque la explicación para elegirlos es la misma: son los nativos de Linux. Más allá de que la fragmentación es menor que en NTFS o que la velocidad de lectura y escritura pueden ser mayores, la razón principal para elegir uno de los dos es que hace trabajar menos a la Raspberry Pi. Así que puestos a optimizar los recursos, mejor que sea ext3, que no se ha demostrado realmente que sea mucho peor que ext4 y encima consume menos, además tampoco vamos a notar especialmente la diferencia en los procesos que vamos a ejecutar en la RasPi.

Como ya he dicho para el tipo de disco, el sistema de ficheros también depende mucho de la situación de cada uno y no hay una elección perfecta en todos los casos.

Montar el disco duro USB

Vamos a lo importante, que todo lo anterior es palabrería que probablemente no necesites. Lo primero es ver el nombre que Raspbian le ha dado a nuestro dispositivo USB, ya sea un pendrive o un disco duro. Doy por hecho que tienes Raspbian, aunque realmente este proceso funciona igual en casi cualquier Linux que hayas puesto en la miscroSD. Para ello ejecutamos:

sudo fdisk -l

Obtenemos un listado de todos los discos y sus particiones. Primero aparecerá la microSD con sus dos particiones, y después los dispositivos USB que tengamos conectados. Es fácil detectar cuál es el que queremos montar porque da mucha información del mismo, pero lo definitivo son la capacidad y el sistema de ficheros. Tendrás un resultado parecido a esto:

fdisk

Como puedes ver, /dev/mmcblk0 es mi microSD de 8 GB, con sus dos particiones, y /dev/sda es mi disco duro USB de 3 TB con una única partición: /dev/sda1.

Ahora podemos formatear el disco para darle el sistema de ficheros que queramos si no lo hicimos antes de conectarlo a la Raspberry Pi. Recuerda que se perderán todos los datos:

sudo mkfs.ext3 /dev/sda1

Esto formatea completamente la partición que le hayamos indicado con el sistema de ficheros ext3, si prefieres ext4 sólo tienes que utilizar mkfs.ext4.

Para acceder a nuestro disco duro USB necesitamos crear un directorio donde montarlo. Puedes elegir casi cualquier sitio para crearlo, pero lo típico y recomendable es hacerlo en media:

sudo mkdir /media/discousb

Donde discousb es el nombre que yo le he puesto al directorio donde voy a montar mi disco duro USB, soy muy original, pero tú puedes poner lo que más te guste. Y ahora tendríamos que montar el disco en el nuevo directorio con el comando mount, pero en vez de eso, vamos a modificar la configuración inicial para que cada vez que se arranque la Raspbery Pi se monte automáticamente:

sudo nano /etc/fstab

Al final de este fichero vayamos a añadir la siguiente línea:

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

Lo primero es la partición de tu disco duro USB, lo segundo es dónde vamos a montarlo, lo tercero es el sistema de ficheros del disco (puede ser ext3, ext4, ntfs o vfat para FAT32) y el resto son las opciones por defecto para el montaje. Guardamos y cerramos el fichero con Ctrl+O, Intro, Ctrl+X.

Ahora cada vez que se inicie Raspbian tendremos el disco duro USB montado y listo para acceder a él. Si lo quieres empezar a utilizar ahora mismo sin tener que reiniciar puedes ejecutar:

sudo mount -a

Que monta todas la particiones que estén indicadas en el fichero /etc/fstab que acabamos de modificar.

Fin

Lo lógico es utilizar la tarjeta microSD para instalar los programas que vayamos a necesitar y utilizar el disco duro USB para almacenar todo el multimedia. Por eso yo, he organizado mi disco creando carpetas dentro de /media/discousb como Peliculas, Series, Musica, etc. Para poder tener acceso sin problemas tanto al disco como a todas las subcarpetas que queramos crear, lo mejor es poner que el propietario es el usuario pi, es decir, nosotros:

sudo chown pi /media/discousb

Eso es todo, mañana explicaré cómo instalar y configurar Transmission, un software para descargar torrents.

Raspberry Pi. Paso 3: Instalar Kodi o XBMC

kodi logo

Introducción

Kodi no es más que el nuevo nombre que tiene lo que antes era XBMC, en resumen, un centro multimedia. Es una forma gráfica de organizar tus películas, series, fotos, música y en general cualquier contenido multimedia. Además incluye todo lo necesario para no tener problemas de codecs de vídeo o audio. Y por último, obtiene de Internet todos los datos, carátulas, portadas, pósters, trailers, etc. y te muestra cada contenido bien organizado, bonito y fácilmente accesible. Yo no conozco ningún otro software mejor que haga más. Por eso es el punto más importante del tutorial y lo que hace que aprovechemos realmente la Raspberry Pi.

La manera de instalar Kodi es por consola, y para acceder a la consola de la RasPi puedes hacer dos cosas:

  1. Encenderla y esperar a que te pida usuario y contraseña (necesitas un teclado USB)
  2. Acceder por IP mediante un cliente SSH (con la RPi encendida, claro)

Lo normal es hacerlo mediante el segundo método aprovechando que tenemos la RPi con IP fija como vimos en el Paso 2 de este tutorial, porque además es más cómodo y no necesitamos estar delante de la televisión. Como ya dije las formas más típicas son escribiendo en una consola de Linux:

ssh pi@192.168.1.10

Con Putty desde Windows, con JuiceSSH desde Android o con cualquier otro cliente SSH desde Mac o iOS. Obviamente siempre estando conectados al mismo router que la RPi. De momento, más adelante veremos como instalar, actualizar o modificar cosas de la Raspberry Pi desde una red externa mediante ddclient.

Instalar Kodi

Necesitamos agregar un repositorio externo porque en los oficiales no están todas las dependencias que necesitamos para que Kodi funcione perfectamente. Es muy fácil, vamos a editar el fichero de repositorios:

sudo nano /etc/apt/sources.list

Agregamos la siguiente línea al final:

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

Guardamos y cerramos el fichero con Ctrl+O y Ctrl+X. Ahora vamos a agregar las firmas que nos permitan acceder al nuevo repositorio:

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

Ya sólo nos queda actualizar la lista de paquetes que vamos a poder instalar desde los repositorios que tenemos configurados:

sudo apt-get update

Y por último, vamos a instalar Kodi:

sudo apt-ge install kodi

Nos aparecerán un montón de paquetes que se van a instalar además de kodi, son las dependencias de las que hablábamos antes, así que decimos que sí, que lo instale todo, y esperamos a que termine.

Si por tu propia experiencia, porque te gusta más o porque te apetece, prefieres seguir utilizando la versión antigua de XBMC, la manera de instalarlo es exactamente la misma pero cambiando la palabra kodi por la palabra xbmc. Todo lo que viene ahora vale para ambos también sustituyendo una palabra por la otra.

Puesto que, como ya he dicho antes, Kodi va a ser el punto más importante de nuestra Raspberry Pi, vamos a hacer que se inicie automáticamente en cada arranque. Para ello debemos modificar el siguiente fichero:

sudo nano /etc/default/kodi

Y poner esto:

# Set this to 1 to enable startup
ENABLED=1

# The user to run Kodi as
USER=pi

# Adjust niceness of Kodi (decrease for higher priority)
NICE=-10

Donde ENABLED=1 indica que Kodi se iniciará al arrancar. USER=pi le dice que ejecute Kodi con nuestro usuario. NICE es la prioridad que tiene Kodi frente a otros programas, no es muy importante porque tampoco vamos a tener muchas cosas, así que como viene esta bien. Guardamos y cerramos el fichero con Ctrl+O y Ctrl+X.

Manejar Kodi

A partir de ahora cada vez que encendamos la Raspberry Pi, y tras un montón de comprobaciones en consola, se iniciará automáticamente Kodi que tendrá este aspecto:

kodi

Lo bueno es que puedes modificar absolutamente toda la interfaz así como la organización de todo. No es algo que quepa en este mismo tutorial así que ya haré otro al respecto, pero ya es algo muy personal de cada uno y bastante intuitivo de cambiar. Entra en Ajustes y toquetea.

Respecto a cómo moverte por Kodi hay 3 opciones:

  1. Teclado/ratón USB (los hay inalámbricos)
  2. App móvil: XBMC remote control o Yatse (entre otras)
  3. Mando a distancia de TV compatible con HDMI CEC

Sin lugar a dudas lo más cómodo es el mando a distancia, pero tu televisión debe ser compatible con HDMI CEC, prácticamente todas las SmartTV lo son, y muchas de las anteriores también. Si no, con el móvil conectado a la misma red que la Raspberry Pi puedes utilizar cualquiera de las apps que hacen de mando a distancia. La opción del teclado/ratón sin duda es la peor, sobre todo porque implica tener un aparato más en el salón.

Mañana iba a explicar como se instala Transmission para descargar torrents, pero mejor voy a contar como se monta un disco duro externo y las particularidades de los diferentes tipos que hay, así como cual sería el sistema de ficheros que deberíamos elegir.

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.