miércoles, 16 de enero de 2013

El Home Server Perfecto con una Raspberry Pi

Nivel de Dificultad: Alto


Como ya os he comentado, Santa Claus me regaló una Raspberry Pi estas Navidades. Así que tenía que ver que podía hacer con ella. Lo primero que se me ocurrió fue montar un Media Center, ya que, al ser completamente silenciosa, y al disponer de puerto HDMI, la RasPi podría ser una candidata perfecta para un XBMC. Sin embargo, me atraía más la idea de montar un Home Server, junto con un disco duro USB externo.

Tengo la suerte de vivir en una finca moderna totalmente cableada en cada estancia, como si de una oficina con tomas de red se tratara. En la finca tenemos, desde el 2003, una ADSL que compartimos vía ethernet y varias WiFis, con un PC (montado con piezas de retiro) con Linux actuando de Home Server, del que yo me encargo. Es algo así como una rolling distribution, pero en hardware; con el paso de los años lo he ido actualizando con piezas tal y como las retiraba de otros PCs y mi Frankenslinux sigue al pie del cañón. Sin embargo, la idea de sustituir una máquina que consume una media de 150W en electricidad por un dispositivo como la Raspberry Pi que consume unos 2 W + unos 10 o 15 W (del disco duro USB externo) se me hace golosa.

Lo que deseo instalar en mi Rapberry Pi es lo siguiente:

  1. Debian, ya que me ofrece un sistema estable y testado, con multitud de aplicaciones.
  2. Servidores DHCP y DNS (dnsmasq).
  3. Interfaz Gráfica de Usuario con acceso remoto (VNC y Fluxbox).
  4. Servidor VPN PPTP (Poptop).
  5. Servidor de Archivos Compartidos (Samba).
  6. Servidor DLNA (MiniDLNA).
  7. Descargas Torrent (Transmission Daemon).
  8. Servidor Ebooks (Calibre).
  9. Servidor Web (Apache).
  10. Servicio de replicación de archivos en la nube tipo Dropbox (ownCloud).
  11. Servidor de música en streaming (Jinzora, o Ampache).
  12. Copias de Seguridad de tu Home Server en la nube (CrashPlan).
Disponer de todos estos servicios en un dispositivo que sólo tiene un procesador ARM a 700MHz y 512 Mb de RAM parece dificil. Sin embargo, estas instrucciones te permitirán conseguirlo.





Estas instrucciones están preparadas para gente que sabe usar Linux y que sabe usar el terminal de Linux. Este documento no está pensado para gente que no tiene un ordenador con Linux y nunca lo ha usado. El capítulo más complicado es el segundo, en el que os explico como configurar vuestra LAN de manera correcta. Antes de hacer nada, asegúrate de que entiendes ese capítulo.

Existen varias distribuciones basadas en Debian para la Raspberry Pi: la principal es la oficial de Raspberry Pi, que está basada en Raspbian, aunque hay muchas otras. A Diciembre de 2012 yo recomiendo utilizar Moebius

Moebius es una distribución con la cantidad mínima de paquetes instalados, que sustituye el servidor de ssh openssh-server por dropbear, y que intenta que el consumo de recursos se reduzca al mínimo. Mi idea es ir añadiendo poco a poco únicamente los paquetes de software que necesitemos. Moebius está basada en la oficial de Raspberry Pi. Puedes descargar Moebius desde aquí.

Una vez descargado el archivo en tu ordenador, descomprímelo e instala la imágen en tu tarjeta SD (te recomiendo que tenga 4 GB como mínimo) con el siguiente comando:

dd bs=4M if=moebius.minimal.image.1.0.1 of=/dev/sdb

En mi caso, /dev/sdb es mi tarjeta SD. En otros ordenadores podría ser otro dispositivo. Usa el comando dmesg trás insertar tu tarjeta para recabar información sobre a donde apunta la tuya.

Una vez hayas transferido la imágen a tu tarjeta SD, ya puedes insertarla en tu Raspberry Pi e iniciar la máquina. Asegúrate que la has conectado con un cable de red a tu LAN. Así podrás acceder cómodamente desde tu ordenador a través de ssh sin tener que montarles un monitor y un teclado a la RasPi.

En cuestión de segundos ya podrás acceder vía ssh. Haz, desde un terminal:

ssh root@raspberrypi

Las credenciales por defecto son:

Usuario: root
Contraseña: raspi

Se puede dar el caso de que no tengas tu red bien configurada y que tus ordenadores no estén configurados con un servidor de DNS local, como puede ser tu router ADSL. En ese caso, el comando anterior no funcionará y deberás saber encontrar la IP de tu RasPi, ya sea entrando a la interfaz web de tu router, ya sea conectando tu RasPi a una pantalla y viendo su configuración de red... Esto, como en cada red será una historia diferente, no tengo más remedio que dejarlo a tu elección. Te comento que una vez tengas este Home Server configurado podrás disponer de un servidor DNS local.

Si el comando anterior no te funcionó y ya has averiguado la IP de tu RasPi, podrás entrar vía ssh con el siguiente comando, desde un terminal:

ssh root@1.2.3.4 donde 1.2.3.4 debe ser sustituido por la IP de tu RasPi.

Al entrar en la sesión te aparecerá la pantalla inicial de configuración de tu RasPi.



Pulsa Enter para acceder al menú principal del programa:


Ejecuta Autoresize. Esta utilidad permitirá reajustar el sistema de archivos de tu RasPi al tamaño de tu tarjeta. En mi caso, al tratarse de una tarjeta de 8GB, decidí darle 10 minutos antes de volver a entrar al sistema. Cierra tu ventana de terminal tranquilamente y, ¡a esperar!

Una vez pasados los 10 minutos, entra de nuevo vía ssh a tu RasPi. Vamos a confirmar que el reparticionamiento ha funcionado. Introduce el siguiente comando:

fdisk -l

Si tienes una tarjeta de 8GB, debería darte un resultado similar al siguiente:

root@raspberrypi:~# fdisk -l

Disk /dev/mmcblk0: 7742 MB, 7742685184 bytes
4 heads, 16 sectors/track, 236288 cylinders, total 15122432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000714e9

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    14145535     7011328   83  Linux
/dev/mmcblk0p3        14145536    15122431      488448   82  Linux swap / Solaris

Fíjate que la partición segunda es de apróximadamente 7 millones de bloques o, en este caso, 7 GB. Tienes también una partición swap de casi 500 MB. Un bug de esta distribución es que aunque la partición swap está declarada en /etc/fstab realmente no se activa. Así que la reformatearemos para activarla de nuevo. Escribe en el terminal:

mkswap /dev/mmcblk0p3

Debería darte un resultado similar al siguiente:

Setting up swapspace version 1, size = 488444 KiB
no label, UUID=837e0319-34fe-4835-96c0-528780e6244a

Escribe el siguiente comando a continuación:

swapon -a && swapon -s

Te saldrá un resultado como éste:

Filename Type Size Used Priority
/dev/mmcblk0p3                          partition 488444 0 -1

Ya tienes el swap activo. Reinicia la RasPi con el comando reboot, vuelve a entrar vía ssh y confirma con el comando swapon -s que swap funciona.

Una vez ya lo has confirmado, procede a actualizar el sistema operativo con los paquetes más recientes. Aunque Moebius es una variante reciente de Raspbian, bastantes cosas han cambiado en las Raspberry Pi, la más destacada el aumento de 256 a 512 MB de RAM, así que es necesario actualizar todos los paquetes disponibles, incluida la utilidad de configuración de la RasPi. Desde el terminal:

apt-get update && apt-get -y dist-upgrade

Este proceso será largo. Tómatelo con paciencia, ya que deberás estar cerca, porque el proceso de actualización te va a hacer un par de preguntas sobre las actualizaciones de los paquetes. A ambas ya contesté con la letra Y, o sea que me reemplazará el archivo en cuestión con la versión más moderna de la actualización. Aquí tienes, a modo de ejemplo, la primera de las preguntas:

Configuration file `/etc/issue'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** issue (Y/I/N/O/D/Z) [default=N] ? Y

Tal y como ya comenté, contesta a todas con la Y.

Una vez terminada la actualización, reinicia la máquina y vuelve a entrar vía ssh.


La actualización que has hecho anteriormente nos crea un arhivo swap de 100 MB que no estás utilizando. Ademas, ahora dispones de tu propia partición swap, como ya hemos visto anteriormente. Este archivo lo único que hace es ocupar lugar. El problema es que si no existe, es posible que trás hacer otra actualización, se vuelva a crear automáticamente. Así que lo que haremos es borrarlo, generar uno nuevo mucho más pequeño, de 1MB, y dejarlo ahí.

sudo rm -Rf /var/swap
sudo dd if=/dev/zero of=/var/swap bs=1024 count=1024
sudo chmod 600 /var/swap
sudo mkswap /var/swap


Otra de las cosas que cambia Moebius respecto a la distribución oficial de Raspbian por la Raspberry Pi Foundation es que activa el usuario root y desactiva el usuario pi, que es el que viene por defecto en la oficial, y que tiene poderes sudo. Yo personalmente prefiero, para la RasPi, reactivar pi, ya que algunos de los servicios que van a ejecutarse necesitaré que vayan ejecutados por este ususario, y así facilitar las cosas. Así que, vamos a reactivarlo.

Para ello, primero edita con nano o con vi el archivo /etc/default/useradd, y en la línea 8, sustituye:

SHELL=/bin/sh

por

SHELL=/bin/bash

Ahora reañade el usuario pi con el siguiente comando:

useradd pi && cat /etc/passwd | grep pi

Debería devolverte el siguiente resultado:

pi:x:1000:1000::/home/pi:/bin/bash


Asígnale una contraseña a pi:

passwd pi

Es muy importante que recuerdes esta contraseña, ya que vamos a desactivar la cuenta de root en unos instantes. Además, no uses una contraseña fácil. Búscate una complicada. En el capítulo 2 entenderás por qué. Una vez asginada la contraseña, abre otro terminal en tu ordenador y conecta con tu RasPi, pero usando el nuevo usario pi:

ssh pi@raspberrypi

Una vez que has entrado sin problemas, ejecuta el siguiente comando para confirmar que puedes obtener privilegios elevados usando el comando sudo:

sudo su

Debería salirte un encabezado en la línea de comandos como este:

root@raspberrypi:/home/pi#

Ahora, en el otro terminal, ejecuta el siguiente comando para desactivar la cuenta de root. Este paso no es necesario para el funcionamiento de tu RasPi. Yo prefiero hacerlo, y cuando necesite privilegios elevados usaré el comando sudo desde pi.

passwd -l root

Te devolverá el siguiente resultado:

passwd: password expiry information changed.

Ya puedes cerrar tu primer terminal, el que abriste con las credenciales de root. A partir de ahora ya solo usarás el usuario pi, y cuando necesites privilegios elevados, el comando sudo. Si algún día deseas volver a activar root, solo tienes que ejecutar sudo password root desde el terminal e introducir una nueva contraseña para root.

Moebius es una instalación muy básica, que entre otras cosas, no tiene instalado si quiera el soporte para teclados internacionales, lo cual es lógico ya que se supone que a esta máquina solo accederemos remotamente vía ssh. Aún así, no esta de más configurarlo por si alguna vez necesitamos entrar de manera local con un teclado USB y una pantalla HDMI. Ejecuta el siguiente comando para añadir soporte para otros teclados:

sudo apt-get install console-data

Sigue las instrucciones de instalación. Elige Select keymap from full list, y después busca la entrada pc / qwerty / Spanish / Standard / Standard tal y como aparece en la pantalla siguiente (o selecciona el tuyo si es diferente a éste):



Ejecuta el comando sudo raspi-config para abrir la utilidad de configuración de tu RasPi. Te saldrá una pantalla como ésta:

Las secciones que debes configurar son:
  • change_locale: asigna el español (u otro) como tu idioma preferido para el sistema.
  • change_timezone: asigna tu huso horario, en mi caso, Europa/Madrid.
  • memory_split: asigna la menor cantidad posible de RAM para la VGA, 16 MB, ya que esta RasPi va a ser un Home Server, sin necesidad de sacarle rendimiento a los gráficos.
Otra sección que es interesante, es la de overclock, que nos permite aumentar ligeramente el rendimiento de la máquina a base de subir de vueltas la CPU. Yo prefiero no cambiar esta configuración ya que puede provocar inestabilidad.

No voy a entrar en más detalles de como usar raspi-config, ya que es muy sencillo.

Cuando acabes de configurar tu RasPi con raspi-config es posible que te pida reiniciar.

Una vez entres de nuevo en tu RasPi vía ssh, ejecuta el comando:

env

Si te pasa igual que a mi, verás que aún cambiando el "locale", la variable LANG no ha sido declarada. No se por qué pasa, pero claramente esto es otro bug de Moebius. Para hacer que te salgan mensajes en español siempre que sea posible, ejecuta el siguiente comando para declarar la variable de internacionalización que asignaste anteriormente a tu perfil de usuario:

echo export LANG=es_ES.UTF-8 >> ~/.bashrc

Si elegiste otro valor para la variable LANG cámbialo. Si no sabes cual es el que elegiste, puedes averiguarlo con el siguiente comando:

cat /etc/default/locale

Si ahora sales y vuelves a entrar, y ejecutas el comando env, ya debería estar declarada la variable LANG, y por lo tanto, activado el soporte de tu idioma en tu RasPi. Puedes hacer la prueba ejecutando algún comando, por ejemplo, date. En mi RasPi, ahora ya me muestra el resultado en español:

pi@raspberrypi ~ $ date
sáb dic 29 21:43:38 CET 2012

Debes instalar ciertos paquetes de uso habitual que, en mi opinión, te vendrá bien tenerlos en tu Home Server:

sudo apt-get install chkconfig manpages-es man-db htop

Con este comando has instruido a tu máquina a que instale chkconfig, una utilidad para controlar la activación/desactivación de los servicios a instalar posteriormente, el soporte de páginas de instrucciones man, y la utilidad htop, similar a top, para medir los recursos de nuestro sistema. Esta última no es necesaria, pero no viene mal tenerla. La instalación de manpages-es y man-db será larga, así que ¡paciencia!

Ahora procederemos a añadir el disco duro externo al puerto USB de nuestra RasPi. Para que funcione bien, necesitas un disco duro externo que lleve su propia fuente de alimentación. No intentes conectar ni siquiera un disco duro de 2,5 pulgadas autoalimentado por USB, ya que el puerto USB de la RasPi sólo transmite 100mW, y eso es insuficiente para alimentar cualquier disco duro. Si lo haces, puedes acabar con:
  1. El disco duro roto.
  2. La RasPi que se te cuelgue continuamente, o incluso que se rompa también.
Lo ideal sería que formatearas tu disco duro externo desde tu ordenador, para ganar algo de tiempo. Puedes utilizar gparted, palimpsest, o fdisk y mkfs.ext4 para formatearlo. Yo te recomiendo utilizar el sistema de archivos ext4 ya que se ha convertido en el estándar de-facto de Linux.

Una vez lo tengas formateado, conéctalo a tu Raspberry Pi a través del puerto USB.

Tu disco duro será reconocido por la RasPi como /dev/sda, y probablemente solo tendrá una partición. Así que deberás editar el archivo /etc/fstab y añadirle, al final, la siguiente línea:

/dev/sda1       /mnt/usbdisk    ext4    defaults          0       0

Ahora, ejecuta los siguientes comandos:

sudo mkdir /mnt/usbdisk
sudo mount /mnt/usbdisk

Trás unos segundos, dependiendo de que tan grande sea tu disco duro, éste será montado. Compruébalo con el comando mount. Debería darte un resultado similar a éste:

/dev/root on / type ext4 (rw,noatime,user_xattr,barrier=1,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=248820k,nr_inodes=62205,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=49780k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=197240k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/sda1 on /mnt/usbdisk type ext4 (rw,relatime,user_xattr,barrier=1)

Fíjate en la última entrada, la que he dejado en negrita. Aquí se me indica el punto de montaje de mi disco externo. En tu caso, debería ser similar a ésta.

Ejecuta el siguiente comando con el disco duro externo montado, para permitir al usuario pi escribir en su raiz.

sudo chown pi:pi /mnt/usbdisk

Ahora, si lo deseas, reinicia, y así te aseguras de que el disco se monta automáticamente, sin problemas, al arrancar de nuevo tu Home Server.

Debes saber que algún día, cuando arranques tu Home Server, Debian querrá comprobar tu disco duro externo en busca de errores, ya sea por un mal apagado de tu Home Server (se fue la luz), o porque simplemente ya le toca hacer la comprobación. En ese caso, no te desesperes, ya que puede tardar bastante, y más dependiendo de la cantidad de archivos que tengas en el disco. En mi caso, con un disco de casi 1 TB, pero con no más de 150 GB en archivos, la RasPi tarda casi media hora en efectuar la comprobación.

Una vez ya tienes tu disco duro externo montado, es hora de crear una estructura de carpetas en el mismo. Obviamente tú puedes crear las que quieras, pero te voy a sugerir que crees, por ahora, un conjunto de carpetas básicas para tus contenidos multimedia. Ejecuta los siguientes comandos:

cd /mnt/usbdisk && mkdir Audio Video Fotos Descargas Incompletos && chmod 777 Descargas Incompletos && ls -la

El resultado de estos comandos será:

drwxr-xr-x 11 pi   pi     4096 nov 17 07:00 .
drwxr-xr-x  3 root root   4096 dic 29 22:23 ..
drwxr-xr-x  3 pi   pi     4096 oct 14 00:21 Audio
drwxrwxrwx  2 pi   pi     4096 nov 25 20:42 Descargas
drwxr-xr-x  2 pi   pi     4096 may  9  2012 Fotos
drwxrwxrwx  2 pi   pi     4096 nov 25 16:52 Incompletos
drwxr-xr-x  2 pi   pi    16384 may  9  2012 lost+found
drwxr-xr-x  2 pi   pi     4096 nov 25 21:07 Video

Ahora ya tienes una estructura básica con las carpetas que nos hacen falta. A las carpetas Descargas e Incompletos les hemos dado permisos de escritura total para que si algún programa ejecutándose con credenciales de otro usuario que no sea pi tiene que escribir en ellas, pueda hacerlo. La carpeta lost+found es una carpeta del sistema de archivos que no debes tocar. Se creó automáticamente cuando formateaste el disco y no debes borrarla.

Por último, y para acabar con la instalación de Debian, vamos a borrar las carpetas Desktop y python_games que tenemos en nuestro directorio personal, y que no nos sirven para nada. Ejecuta el siguiente comando:

cd && rm -Rf Desktop python_games


Aunque este capítulo alguién podría considerarlo opcional, tener una red muy bien configurada en la que todos los dispositivos conectados interactuen y se vean entre ellos sin dificultad es muy importante, sobre todo si vas a conectarte a los servicios que vamos a instalar en tu RasPi mediante otros dispositivos tales como portátiles, tabletas, teléfonos, o SmartTVs y Media Centers. Y es que un porcentaje altísimo de redes (tanto las domésticas como las de empresas) no están bien configuradas, sobre todo en lo que respecta a los servicios DHCP y DNS, porque sus routers tampoco lo están. Este capítulo es el más difícil. Si lo superas, lo demás es pan comido. Te recomiendo que, antes de hacer nada más, leas este capítulo por completo.

Lo que quiero que hagas es sustituir los servidores locales de DNS y DHCP (si es que existen) de tu router ADSL/Cable por los que vamos a instalar en la RasPi. Dnsmasq es un servidor de DHCP, TFTP y DNS, todo en uno, muy fácil de configurar, y que usa muy pocos recursos.

Lo que vamos a hacer es lo siguiente:
  1. Instalar dnsmasq en tu RasPi, configurarlo, decidir que rango de IPs  usarás a partir de ahora y asignar una IP a la RasPi
  2. Desactivar los servicios de DHCP y DNS en tu router (necesitarás acceso a tu router)
  3. Cambiar el rango de IPs de la red interna en el router.
  4. Reiniciar todo.
  5. Redireccionar puertos desde el router a la RasPi, o activar la IP de la RasPi como DMZ.
Instala dnsmasq y sus dependencias con el comando:

sudo apt-get install dnsmasq

Seguidamente, desactiva dnsmasq con el siguiente comando:

sudo service dnsmasq stop

Para configurar dnsmasq debes antes decidir que rango de IPs quieres usar, de ahora en adelante, para tu red. Normalmente, los routers domésticos tienen asignada la IP 192.168.1.1, y los equipos de la red usan IPs entre la 192.168.1.2 y la 192.168.1.254. Aunque cambiar el rango de IPs no es necesario, salvo que quieras instalar un servidor VPN en tu Raspberry Pi, daño no te va a hacer, y haciéndolo te asegurarás que todos tus dispositivos van a estar bien configurados en tu red. Yo voy a proponerte que cambies el rango de tu red a la 192.168.200.x, donde 192.168.200.1 va a ser tu router de ADSL, y tu RasPi va a estar en la 192.168.200.2. Desde la 192.168.200.101 hasta la 192.168.200.254 serán para asignaciones dinámicas a los dispositivos que se conecten a tu red.

Estos procesos son de los más complicados de todo este documento. Si hay algo que no entiendes, vuélvelo a leer, y si aún no lo entienes, pregunta, y si sigues sin entender, pregunta otra vez. Necesitarás saber como acceder a tu router para poder cambiar ciertos parámetros de configuración. No continues si no sabes/puedes entrar al interfaz web de configuración de tu router. Si tu router es de Telefónica o Movistar, lo normal es que el usuario sea 1234, al igual que la contraseña. Con otros proveedores o modelos de router las credenciales de acceso serán diferentes, casi seguro. Puedes buscarlas en Internet o llamar a tu proveedor de ADSL y que te las digan.

Reconfigura la conexión IP de tu RasPi. Para ello, necesitarás editar el archivo /etc/network/interfaces. En estos momentos tu archivo es tal y como sigue:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

Necesitas modificar la última línea y añadir unas cuantas más, para que el archivo quede así:

auto lo

iface lo inet loopback
#iface eth0 inet dhcp

auto eth0
iface eth0 inet static
address 192.168.200.2
netmask 255.255.255.0
gateway 192.168.200.1

Guarda el archivo. Por el momento no debes reiniciar los servicios de red ni tu RasPi ya que entonces se conectaría con la nueva configuración de red, y todavía no estamos listo para ello. Vamos ahora a editar la configuración de dnsmasq.

Primero edita el archivo /etc/dnsmasq.conf, y al final del mismo, encontrarás la línea que pone:

#conf-dir=/etc/dnsmasq.d

y la cambiarás para que quede así:

conf-dir=/etc/dnsmasq.d

Crea un archivo nuevo /etc/dnsmasq.d/opciones.conf con tu editor favorito y déjalo como te indico a continuación:

# Interfaz sobre la que trabaja dnsmasq
interface=eth0
# Rango de IPs que se asignarán dinamicamente
dhcp-range=192.168.200.101,192.168.200.254,12h
# Gateway (o sea, el router)
dhcp-option=3,192.168.200.1
# Archivo de DNS externas
resolv-file=/etc/dns_externo.conf

Ahora crea otro archivo nuevo /etc/dns_externo.conf en el que pondrás lo siguiente:

domain Home
search Home
nameserver 87.216.1.65
nameserver 87.216.1.66

Las IPs que ves junto a nameserver son la de mi proveedor de Internet (Jazztel). Sustituyelas por las que te ha facilitado tu proveedor, o pon algunas neutras, como las de Google, o las de OpenDNS. Por ejemplo, las de Google son 8.8.8.8 y 8.8.4.4 .

Ahora modifica el archivo /etc/resolv.conf para que quede como te muestro a continuación:

domain Home
search Home
nameserver 192.168.200.2

Con el archivo /etc/dns_externo.conf  le dices a dnsmasq que utilice los servidores de DNS de tu proveedor de Internet para hacer las consultas DNS externas. En el archivo /etc/resolv.conf  le dices a tu Home Server que, al igual que el resto de dispositivos que se conectan mediante DHCP, utilice dnsmasq en las consultas DNS que hagan desde la LAN.

Por último, asegúrate que en el archivo /etc/default/dnsmasq la línea que te pongo a continuación queda así:

ENABLED=1

Aunque nunca deberías ejecutar 2 servidores de DHCP en una misma LAN, arranca y apaga tu dnsmasq para comprobar que lo que has hecho no nos da ningún error:

sudo service dnsmasq start && sleep 10 && sudo service dnsmasq stop

Si no salió ningún mensaje de error, ya puedes apagar tu RasPi con el comando sudo poweroff

Ahora llega la parte que puede ser más complicada y en donde debes llevar mucho cuidado con lo que haces, porque puedes quedarte sin conectividad, ya que estas instrucciones van a modificar tu router. Asegurate de que sabes lo que haces, y si no, pide ayuda antes de hacer nada.

Entra en el interfaz web de configuración de tu router. La IP de router es, en el 99,9999% de los casos, la puerta de enlace o gateway de tu conexión. Si vives en España, casi seguro tendrás que ir a la URL http://192.168.1.1. En caso de que no puedas acceder a la página de acceso de tu configuración de tu router, deberás mirar en las instrucciones del mismo.

Una vez hayas entrado en el router, debes desactivar el servidor DHCP y cambiar la configuración IP de LAN de tu router, para que empiece a trabajar con los nuevos parámetros. Te paso una captura de pantalla de mi router, que es un Comtrend bastante popular,  para que veas como me queda a mi.

La dirección IP debe ser 192.168.200.1 (en la captura de pantalla hay otra, error mío)

Una vez le des al botón de Aceptar/Guardar/Reiniciar de tu router, ya no podrás acceder a él, porque su IP habrá cambiado, y como el servidor de DHCP ya no está en el router, sino en la RasPi que está apagada, pues aprovecha y apaga todos los dispositivos que tengas en tu red.

Reinicia tu router, y al cabo de 1 minuto, inicia tu RasPi, y 1 minuto después inicia tus otros dispositivos. Una vez estén en funcionamiento, deberían estar ya configurados con los nuevos parámetros de red que dnsmasq, a través de la RasPi, te ha ofrecido. Deberías poder acceder a Internet sin problemas y, si haces un ping desde tu ordenador a tu RasPi, debería responderte tal y como te aparece aquí:

mc@Pluto:~$ ping -c 4 raspberrypi
PING raspberrypi (192.168.200.2) 56(84) bytes of data.
64 bytes from raspberrypi (192.168.200.2): icmp_req=1 ttl=64 time=0.589 ms
64 bytes from raspberrypi (192.168.200.2): icmp_req=2 ttl=64 time=0.580 ms
64 bytes from raspberrypi (192.168.200.2): icmp_req=3 ttl=64 time=0.592 ms
64 bytes from raspberrypi (192.168.200.2): icmp_req=4 ttl=64 time=0.515 ms

--- raspberrypi ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.515/0.569/0.592/0.031 ms

Si todo ha ido bien, ahora dispones de una red con una configuración básica correcta, casi preparada para todos los servicios adicionales que puedes instalar, si lo deseas, en tu RasPi. Sin embargo, todavía nos queda hacer algo más:

Un par de cosas que debes tener en consideración en tu RasPi antes de continuar es:

1.- Que para sacarle el máximo partido a tu Home Server, deberás configurarlo para poder acceder a él desde el exterior. Por ejemplo, si deseas acceder desde fuera de tu casa a tu música, o a tus archivos vía ssh, a través de tu teléfono Android, iPhone, tableta, vas a ver que no es tan difícil conseguirlo.
2.- Que tu RasPi viene por defecto configurada con el nombre raspberrypi. Si lo deseas, puedes cambiar su nombre a algo más acorde a su función, tal y como HomeServer.

Para acceder a tu Home Server desde el exterior, deberás, primero, crear una cuenta en DynDNS.org (u otro servicio similar compatible con tu router), para que puedas saber a que dirección debes conectarte desde el exterior. No voy a explicar aquí como configurar un servicio de DNS Dinámicas ya que para cada router y cada servicio de DNS Dinámicas es una historia diferente. Si no lo sabes hacer, busca en Google, o pregúntame en la sección de comentarios, e intentaré ayudarte. Por otro lado, si tienes contratada una IP estática con tu proveedor de ADSL, puedes obviar ese paso, pero aún así con saberte tu IP no es suficiente. Deberías configurar tu (sub)dominio con tu IP estática (luego entenderás por qué). Deberás también asegurarte que la contraseña de tu cuenta pi en tu RasPi no es fácil de adivinar, ya que cualquier bot en Internet probando accesos aleatorios a servidores ssh podría dar con ella. Puedes cambiarla con el comando passwd pi más tarde, cuando vuelvas a arrancar la RasPi.

Por último, deberás configurar tu router para que redirija las conexiones externas entrantes no solicitadas a la IP 192.168.200.2, que es la de tu RasPi. 

Puedes redirigir todas las conexiones entrantes (no solicitadas desde tu LAN) desde tu router hacia tu RasPi fácilmente activando una zona DMZ en tu router. Aquí tienes una captura de pantalla de como se haría en el mío:

La dirección de la DMZ debe ser 192.168.200.2 y no la que sale en la captura de pantalla

La ventaja de usar este sistema es que todas las comunicaciones entrantes que no han recibido solicitud por parte de tus dispositivos en tu LAN se redirigirán a tu RasPi, y él ya decidirá que hacer con ellas. El inconveniente es que debes estar muy atento a como está tu RasPi configurada, que puertos tienes abiertos y desde donde se puede acceder a ellos, etc.

Por otro lado, también puedes, en vez de activar la DMZ, decidir que puertos deseas redirigir desde tu router a tu RasPi usando el interfaz web de configuración del router. Este proceso es más complicado, aunque mucho más seguro. Yo, en este documento, voy a considerar que únicamente has activado el redireccionamiento total a la DMZ, así que procuraré configurar los servicios de la forma más segura posible teniendo en cuenta que tu RasPi está en una DMZ.

Para cambiar el nombre de máquina de tu RasPi, que por defecto es raspberrypi, a, supongamos, HomeServer, primero ejecuta el siguiente comando:

sudo sh -c 'echo HomeServer > /etc/hostname'

Por último, modifica tu archivo /etc/hosts para que quede como lo que verás aquí abajo:

# RaspberryPI hosts configuration file
127.0.0.1       localhost HomeServer
192.168.200.2   HomeServer

Uno de los trucos más chulos de dnsmasq es que, por defecto, lee los contenidos del archivo /etc/hosts como si de una base de datos de dominios se tratara. Así, por ejemplo, si tu le pones a este archivo una entrada tal y como ésta

127.0.0.1       google.es www.google.es

el servidor de DNS de dnsmasq dirá a tus ordenadores, cuando quieran ir a Google y, por lo tanto, le consulten por la IP de google.es, que google.es está en 127.0.0.1. Esto es muy interesante para crear listados con dominios de servidores a los que no quieres acceder (como los de publicidad). Sin embargo, lo que nos interesa ahora de esta funcionalidad es poder declarar IPs internas específicas a tu (sub)dominio. Aquí tienes un ejemplo:

El subdominio adonde apunta tu IP de la ADSL es mihomeserver.midominio.com. Tu teléfono móvil usa varios programas, uno para escuchar la música de tu Home Server remotamente, otro para acceder vía ssh... También usas ownCloud en tu móvil para acceder a tu nube personal... Todos estos programas, cuando los configuras, les dices que se conecten a mihomeserver.midominio.com, que tiene una IP asignada por, digamos, Telefónica, que es la 11.12.13.14. Si tu haces ping mihomeserver.midominio.com te contesta que la IP es, como hemos dicho 11.12.13.14. Sin embargo, cuando estás en tu casa, conectado a la WiFi, ownCloud en tu teléfono intenta conectarse de nuevo a mihomeserver.midominio.com, en la IP 11.12.13.14, o sea, se conecta a tu router, y no a tu RasPi, que es donde tienes los contenidos. Solo las conexiones entrantes desde Internet se redirigen a la RasPi. Las de la LAN no se redirigen. Así pues, ownCloud en tu móvil fallará en su intento de conexión porque va al dispositivo equivocado. La solución a este problema es muy sencilla. Edita de nuevo /etc/hosts y déjalo tal y como verás a continuación:

# RaspberryPI hosts configuration file
127.0.0.1       localhost HomeServer
192.168.200.2   HomeServer  mihomeserver.midominio.com

Reinicia tu RasPi con el comando sudo reboot

Con este cambio lo que conseguirás es que, desde dentro de tu LAN, mihomeserver.midominio.com apunte siempre a 192.168.200.2, y cuando estés fuera de tu LAN, mihomeserver.midominio.com apuntará a 11.12.13.14 o, en definitiva, a la IP que te haya asignado tu proveedor de ADSL. Solo por esto vale la pena configurar dnsmasq en tu RasPi y aguantar todo el rollo que te he soltado en este capítulo, el más difícil, de mi manual.

Hasta ahora, disponemos de un sistema operativo Linux que consume prácticamente no CPU, y 12 MB de RAM.

3.- Interfaz Gráfica de Usuario con VNC y Fluxbox


No todo el mundo requiere disponer de una Interfaz Gráfica de Usuario en su servidor. Sin embargo, hay veces que, por el motivo que sea, nos puede ser útil. VNC es un protocolo de acceso remoto al escritorio. Fluxbox es un Window Manager rápido y que consume pocos recursos que nos permite disponer de un entorno gráfico sencillo y eficiente.

El servidor de libros electrónico (Calibre) que vamos a instalar más adelante requiere de un entorno gráfico. Si no deseas instalar Calibre y no necesitas un entorno gráfico remoto puedes pasar al siguiente capítulo. Para los que deseen instalarlo, lo primero que haremos es instalar los siguientes paquetes y sus dependencias con este comando:

sudo apt-get install xvfb fluxbox tightvncserver xterm xscreensaver

Una vez terminada la instalación de los paquetes, ejecuta el siguiente comando para crear una sesión de X virtual:

Xvfb -screen 0 1024x768x16 &

Saldrán varias líneas con mensajes que puedes ignorar. Ahora inicia el servidor de VNC por primera vez. Te generará una configuración genérica, y lo más importante, te preguntará por la contraseña con que desearás acceder de ahora en adelante al interfaz gráfico remotamente. El comando es el siguiente:

DISPLAY=:0 vncserver -depth 16 -geometry 1024x768 -alwaysshared

Y esto es lo que nos irá saliendo en pantalla. Fíjate en la línea que he puesto en negrita y la respuesta que he puesto. Es muy importante:

You will require a password to access your desktops.

Password: 
Verify:   
Would you like to enter a view-only password (y/n)? n
xauth:  file /home/pi/.Xauthority does not exist

New 'X' desktop is HomeServer:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/HomeServer:1.log

Ahora, mata los procesos de VNC y Xvfb con el siguiente comando:

killall Xtightvnc Xvfb

Edita el archivo ~/.vnc/xstartup y añádele la línea que he marcado en negrita:

#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
xscreensaver -nosplash &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession

Ahora, crea el siguiente archivo con credenciales elevadas. Yo uso vi, aunque puedes hacerlo con nano si te es más cómodo:

sudo vi /usr/local/bin/startxvnc.sh

Escribe estos contenidos dentro del archivo:

#!/bin/bash
Xvfb -screen 0 1024x768x16 &
DISPLAY=:0 vncserver -depth 16 -geometry 1024x768 -alwaysshared

Una vez guardado el archivo, hazlo ejecutable y que sea propietario de pi con el comando:

sudo chown pi:pi /usr/local/bin/startxvnc.sh
sudo chmod 700 /usr/local/bin/startxvnc.sh

Y por último, añade la siguiente línea al archivo /etc/rc.local, para que se ejecute el script que acabas de crear automáticamente cuando se inicie tu RasPi. Asegúrate de que lo que añades queda antes de la última línea del archivo, la que pone exit 0

/usr/local/bin/startxvnc.sh

En mi RasPi, el arhivo /etc/rc.local ha quedado así:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing

#Setup local clock with a remote NTP server
echo 'Setup clock with external NTP source'
/usr/sbin/ntpdate-debian & 2>&1 >/dev/null

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

su -c "/usr/local/bin/startxvnc.sh" pi &
exit 0

Ahora, reinicia tu RasPi y al cabo de 1 minuto intenta entrar en tu sesión remota. Puedes utilizar Remmina en tu ordenador para acceder. Esta es mi configuración en Remmina para acceder a mi RasPi. Recuerda cambiar mihomeserver.midominio.com por el nombre de tu dominio.



Aquí puedes ver una captura de pantalla de mi Home Server. Como puedes observar, el consumo de RAM de la máquina sigue muy bajito, en torno a los 30 MB, ya que Fluxbox no requiere muchos recursos.



Por último, inicia el configurador de xscreensaver. Por defecto, cuando se activa, xscreensaver inicia cualquier de los salvapantallas de que dispone de manera aleatoria. Algunos de ellos consumen muchísimos recursos, así que vamos a configurarlo para que únicamente use el salvapantallas "negro". Este salvapantallas no consume prácticamente ciclos de la CPU. Mira la captura de pantalla que encontrarás aquí abajo para ver como hacerlo:





4.- Servidor VPN PPTP con Poptop


El protocolo de comunicaciones PPTP te permite establecer comunicaciones cifradas, a través de redes privadas virtuales, o VPN, entre varios ordenadores o redes. Con Poptop puedes disponer en tu Home Server de un servidor PPTP para acceder desde fuera de tu LAN e interoperar con tu RasPi. Aunque con túneles SSH puedes conseguir resultados parecidos, es un poco farragoso. Además, si te dijera que con Poptop no solo podrías acceder únicamente a tu servidor de manera sencilla, sino a todos los dispositivos conectados a tu LAN, como por ejemplo, tus impresoras y tus archivos compartidos en tus ordenadores conectados, ¿verdad que te puede interesar?

Aunque PPTP no es un protocolo de VPN diseñado con la seguridad en mente, aporta el nivel suficiente en entornos domésticos, y es de los más sencillos y más soportados por una amplia gama de dispositivos (teléfonos, tablets, routers) y sistemas operativos (hasta Windows XP lo soporta nativamente)

Instalar y configurar Poptop es muy sencillo. Para instalarlo, usa el siguiente comando:

sudo apt-get install pptpd

Una vez instalado asegúrate de apagar el servicio para proceder a su configuración:

sudo service pptpd stop

Para configurarlo, debemos editar varios archivos. Empieza editando, con credenciales elevadas (sudo), el archivo /etc/ppp/chap-secrets para añadir un usuario. Puedes añadir tantos como quieras. Fíjate en el ejemplo que pongo aquí abajo:


# Secrets for authentication using CHAP
# client server secret IP addresses
pptpuser * micontraseñadeacceso *

Cambia el usuario (primer campo) y la contraseña (tercer campo)  y guárdalo.

Ahora edita, con credenciales elevadas, el archivo /etc/pptpd.conf  y añade, al final, estas 2 líneas:


localip 192.168.201.1
remoteip 192.168.201.2-13

La primera línea indica la IP que tendrá el servidor en su interfaz de VPN. Esta IP debe ser de un rango diferente a la IP principal de nuestro servidor (192.168.200.2). La segunda línea indica las IPs que se asignarán a los dispositivos que se conecten remotamente, en este caso, desde la 192.168.201.2 hasta la 192.168.201.13. Ajústalo a tu gusto, en base a la cantidad de dispositivos que piensas se conectarán a tu LAN desde fuera.

Ahora edita, también con credenciales elevadas, el archivo /etc/ppp/pptpd-options y añádele  al final, la siguiente línea:

ms-dns 192.168.200.2

Inicia el servidor PPTP con el siguiente comando:

sudo service pptpd start

Con estos simples pasos ya tienes tu servicio de VPN en marcha. Si además quisieras, al conectarte, poder acceder a los otros dispositivos de tu LAN desde el exterior, sólo tienes que añadir estas 2 líneas siguientes al archivo /etc/rc.local de tu Home Server (necesitarás hacerlo con credenciales elevadas):

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Configurar el acceso desde, por ejemplo, tu portátil con Ubuntu, no es complicado. Crea una nueva conexión VPN tipo PPTP en el menú de redes que tienes en la parte superior del escritorio y fíjate en las capturas de pantalla que te pongo a continuación:





Cómo configurar la conexión en Windows es también bastante sencillo. Puedes encontrar información al respecto en estos enlaces:


Me costaría mucho creer que hubieras llegado a este punto del manual (y todavía no estamos ni en la mitad), y no supieras lo que es Samba. Con Samba podemos compartir archivos e impresoras con ordenadores Windows (o con otros ordenadores con Samba, que son todos los que no son Windows). Más info aquí.
Para instalar Samba en tu RasPi, ejecuta el siguiente comando:

sudo apt-get install samba

Una vez instalado, ejecuta el siguiente comando para apagar el servicio de Samba mientras lo configuramos:

sudo service samba stop

Debemos ahora editar, con credenciales elevadas (sudo), el archivo /etc/samba/smb.conf y añádele al final del archivo lo siguiente:

[homeserver]
comment = Mi Home Server
path = /mnt/usbdisk
browseable = yes
read only = no
guest ok = yes
force user = pi
force group = pi
create mask = 0666
directory mask = 0777

En este mismo archivo, casi al principio, vas a encontrar la variable workgroup, que originalmente está así:

   workgroup = WORKGROUP

Si lo deseas, puedes cambiar el valor de la variable. Por ejemplo, si en tu red, los ordenadores están todos en el workgroup llamado GRUPO DE TRABAJO, pues ponle también ese valor a la variable.

Por último, indícale a Samba,  que solo puede recibir conexiones de ciertos rangos de IP. Asegúrate de añadir esta línea en la sección [Global]:

   interfaces = 192.168.200.0/23

Esta línea nos permitirá el acceso a Samba únicamente desde las IPs de nuestro red (192.168.200.x si estás en tu casa, y 192.168.201.x si estás fuera, a través de tu VPN)

Inicia Samba con el comando:

sudo service samba start

Ahora ya puedes acceder, añadir, modificar o eliminar archivos que se encuentren en tu disco duro USB desde cualquier ordenador (ya sea Windows, Linux, o Mac), tableta, o teléfono.


MiniDLNA es un servidor que envía archivos multimedia vía streaming a cualquier cliente que siga el estándar UPnP AV de la DLNA. Esto incluye programas para ordenador, para teléfonos y tabletas, (mini)cadenas de sonido, y lo más interesante, televisores modernos.

MiniDLNA gasta muy pocos recursos, soporta subtítulos en muchos dispositivos, al igual que varias pistas de audio, y en Linux, a diferencia del resto de servidores DLNA, soporta inotify. Inotify te informa, al instante, de cambios en el sistema de archivos. Esto, aplicado a MiniDLNA, significa que, en el momento que añades un archivo a cualquiera de los directorios que MiniDLNA indexa en su base de datos, éste archivo es detectado al instante y añadido a la base de datos de MiniDLNA, teniéndolo disponible inmediatamente desde cualquier dispositivo cliente DLNA. Esto es una gran ventaja respecto a otros servidores DLNA para Linux y otros sistemas operativos, los cuales sólo actualizan su base de datos cada cierto tiempo.

Puedes instalar MiniDLNA con el siguiente comando:

sudo apt-get install minidlna

Ahora debes parar la ejecución del programa, para editar sus archivos de configuración, con el siguiente comando:

sudo service minidlna stop

Debemos editar, con credenciales elevadas (sudo), el archivo /etc/minidlna.conf. Comenta la línea en la que aparece la variable media_dir de tal forma que quede así:

#media_dir=/var/lib/minidlna

Ves al final de archivo y añade las siguientes líneas:

media_dir=/mnt/usbdisk

friendly_name=Home Server

Me gusta ejecutar, en la medida de lo posible/conveniente, todos los programas de un Home Server, bajo un mismo usuario. Así que voy a sugerirte que MiniDLNA se ejecute con credenciales de pi. Esto es totalmente opcional. Si no deseas hacerlo ya solo te queda activar el servicio con el comando sudo service minidlna start, y pasar al siguiente capítulo. Si, por el contrario deseas hacerlo, primero, edita el archivo /etc/default/minidlna y añade las 2 siguientes líneas al final (necesitarás credenciales elevadas):

USER="pi"
GROUP="pi"

Por último, cambia el propietario de la carpeta /var/lib/minidlna y del archivo /var/log/minidlna/log con este comando,

sudo chown -R pi:pi /var/lib/minidlna /var/log/minidlna

e incia MiniDLNA con el siguiente comando:

sudo service minidlna start

Ahora, los contenidos multimedia que tengas en tu disco USB externo estarán disponibles a través de UPnP.

7.- Cliente de Descargas Torrent con Transmission Daemon


Si eres un usuario de Linux, seguro que conoces o has oido hablar de Transmission, un cliente de descargas para el protocolo BitTorrent, disponible para Unix (incluido MacOS), dispositivos embedidos, e incluso para Windows. Transmission también dispone de se versión headless, que puedes instalar en un servidor y controlar remotamente desde una interfaz web, o desde multitud de programas remotos.

Para instalar transmission-daemon en tu RasPi, ejecuta el siguiente comando:

sudo apt-get install transmission-daemon

Una vez instalado, ejecuta el siguiente comando para apagar el servicio y empezar con el proceso de configuración:

sudo service transmission-daemon stop

Con tu editor de textos favoritos, y con credenciales elevadas (sudo) modifica los siguientes parámetros de tu arvhivo /etc/transmission-daemon/settings.json


"download-dir": "/mnt/usbdisk/Descargas",
"incomplete-dir": "/mnt/usbdisk/Incompletos",
"incomplete-dir-enabled": true,
"rpc-password": "micontraseña",
"rpc-username": "minombredeusuario",
"rpc-whitelist-enabled": false,
"umask": 0,



Sustituye los valores de las variables rpc-password y rpc-username, que yo he escrito aquí de manera genérica con los que tu desees.

También te recomiendo que edites, con credenciales elevadas, el archivo /etc/default/transmission-daemon y modifiques la última línea para que quede así:

START_STOP_OPTIONS="--iosched idle --nicelevel 19"

Fíjate que la línea original está comentada, así que tienes que quitarle el símbolo # y cambiar el nicelevel de 10 a 19.

Una vez guardado el archivo, inicia de nuevo el servicio con el comando:

sudo service transmission-daemon start

Abre el navegador en tu ordenador, y ves a http://homeserver:9091, asumiento que homeserver es el nombre que asignaste, ya hace unos cuantos capítulos, a tu Raspi (desde fuera también podrías entrar sustituyendo homeserver por el nombre de tu (sub)dominio).Te saldrá una ventana en la que debes poner las credenciales que has puesto en el archivo de configuración de transmission-daemon. Una vez hayas accedido al interfaz web, podrás hacer más modificaciones a la configuración del programa pinchando sobre el icono de la llave inglesa, como puedes ver en la imagen siguiente:


Desde aquí podrás configurar a tu gusto ciertos parámetros restantes, de una manera más fácil, que editando el archivo de configuración "a pelo".

Transmission-daemon es un programa que puede usar muchos recursos, más incluso que los que te puede dar una RasPi, por lo que podrías llegar a "saturar" tu Home Server si no eres cuidadoso/conservador con los parámetros de la configuración de Transmission.

Por último, recordarte que puedes controlar tu transmission-daemon desde cualquier parte usando un navegador, tu teléfono o tableta Android, iOS (jailbroken), tu ordenador, e incluso a través de un plugin para Google Chrome.

8.- Servidor de E-Books con Calibre


Calibre es, probablemente, el mejor gestor de bibliotecas de libros electrónicos existente. Es de código abierto, está programado en Python, y tiene versiones para Linux, MacOS, y Windows. Con Calibre podrás identificar, gestionar, clasificar, y servir a dispositivos externos, tus libros electrónicos adquiridos sin Gestión de Restricciones Digitales (DRM).

Con Calibre lo que pretendo es, que dispongas de un programa que te sirva para gestionar tu colección de libros electrónicos, que te permita importar automáticamente libros a tu biblioteca, y, por último, que puedas añadir, desde tu dispositivo lector de libros electrónicos, cualquiera de los libros que tienes en Calibre, tanto desde tu LAN, como desde fuera, mediante el formato de catálogo OPDS.

Calibre, a diferencia de los otros programas que hemos instalado hasta ahora, necesita su propia GUI para ser utilizado en todo su potencial. Hay bastante información en Internet sobre como hacer funcionar su servidor de contenidos sin la GUI, pero, en mi opinión, esta opción suele dar problemas, y en todos los manuales que he leído  la importación automática de libros a Calibre no funcionaba. Además, pienso que es necesario disponer de la GUI para editar los metadatos de tus libros, efectuar conversiones de formato, generar scripts de descargas de noticias, etcétera, así que voy a proponerte que lo instales y lo ejecutes desde la interfaz gráfica que instalaste en el capítulo 3.

Para instalar calibre y todas sus dependencias, desde un terminal, ejecuta el siguiente comando:

sudo apt-get install calibre

Calibre, o más bien sus dependencias, ocupan casi 300MB en tu RasPi, así que la instalación te llevará bastantes minutos, ya que son muchos paquetes pequeños los que deben instalarse.

Una vez finalizada la instalación, edita el archivo ~/.vnc/xstartup y añade el siguiente comando justo antes de la línea que contiene el comando para iniciar xscreensaver:

calibre &

Guarda el archivo. Ahora, desde el terminal, crea dos carpetas en tu disco USB externo con el comando:

mkdir "/mnt/usbdisk/Biblioteca de Calibre" "/mnt/usbdisk/Añadir Libros a Calibre"

Reinicia ahora tu Raspi con el comando sudo reboot

Tras un par de minutos, entra en la interfaz gráfica de tu Home Server con tu cliente VNC habitual. Verás que Calibre ha arrancado y te presenta su Asistente de Bienvenida. Síguelo tal y como te incluyo en las capturas de pantalla siguiente:

Elije la carpeta para la biblioteca de Calibre 

Elije el tipo de lector de ebooks que tienes

Finalizado el asistente, expande el menú de iconos y ves a Preferencias

En Añadir Libros, elije la carpeta para activar la adición automática de libros

En Compartir por red, añade una contraseña, marca la casilla para que se ejecute el servicio automáticamente.

Ahora ya dispones de una configuración básica de Calibre con soporte para añadir libros de red automáticamente, dejándolos en la carpeta Añadir Libros a Calibre que tienes en tu disco externo USB, y con soporte, también, para descargar, desde tu dispositivo, cualquier libro que tengas en tu biblioteca de Calibre.


El servicio de descargas lo tienes disponible en http://mihomeserver.midominio.com:8080 (ya sabes, sustituyendo mihomeserver.midominio.com por el tuyo actual). Te pedirá el usuario y contraseña que hayas puesto en la configuración de Calibre. En mi caso, yo uso Stanza para leer libros electrónicos en mi iPhone:



Calibre es compatible con prácticamente cualquier dispositivo o software lector de libros electrónicos, incluido el Amazon Kindle.

Tras la instalación de Calibre, habrás notado que tu RasPi ha pasado de consumir aproximadamente 40MB de RAM, a 100MB. Aún así, si tienes una Raspberry Pi de finales de 2012, te quedan casi 400MB de RAM para utilizar en otros servicios :)

9.- Servidor Web con Apache httpd y PHP5


El servidor web más utilizado en Internet es Apache httpd. El lenguaje de programación web más utilizado en Internet es PHP. Para instalar el servidor web de Apache con los paquetes más comunes de PHP ejecuta el siguiente comando (es todo una línea):

sudo apt-get install apache2 php5 php5-common php5-gd php5-sqlite php5-curl php5-gd php5-cgi php-pear php5 libapache2-mod-php5 php-apc openssl-blacklist

Habrás notado, al instalar, que Apache se queja de que no puede determinar el nombre completo del servidor, así que lo pondremos nosotros. Para ello, crea, con credenciales elevadas, el archivo /etc/apache2/conf.d/ServerName y pon dentro de él lo siguiente:

ServerName HomeServer

Reinicia Apache con el siguiente comando:

sudo service apache2 restart

Si lo deseas, puedes ir a la página web principal de tu home server con la URL http://mihomeserver.midominio.com (sustituyendo mihomserver.midominio.com por el tuyo), o con la URL http://homeserver. Verás algo similar a esto:


Si quieres alojar tu web personal, puedes hacerlo poniendo los archivos de tu web en /var/www. En estos casos, a mi me gusta cambiar el propietario de esta carpeta a mi usuario normal, así no tengo que ir haciendo sudo cada dos por tres cuando quiero subir algún archivo:

sudo chown pi:pi /var/www


10.- OwnCloud


OwnCloud es un programa de código abierto similar en funcionalidad a Dropbox. OwnCloud te permite tener almacenados en la nube, en este caso, tu nube, archivos y carpetas, y mantenerlos sincronizados entre varios ordenadores. La gran ventaja de ownCloud respecto a Dropbox es que, si dispones de tu propio Home Server, el límite ya no son 2 GB, sino el tamaño de tu disco duro.

Para instalar ownCloud, primero modificaremos ciertos parámetros de Apache/PHP.

Deberas editar todos los archivos con privilegios elevados (sudo).

Edita /etc/php5/cgi/conf.d/20-apc.ini, para que quede así:

extension=apc.so
apc.enabled=1
apc.shm_size=30

Edita /etc/php5/apache2/php.ini y cambia los valores de las siguiente variables a los expuestos aquí:

upload_max_filesize = 512M
post_max_size = 512M

Edita /etc/apache2/sites-enabled/000-default y cambia todas las instancias en donde sale

AllowOverride None

a

AllowOverride All

Por último, activa los módulos mod_rewrite y mod_headers con los comandos:

sudo a2enmod rewrite
sudo a2enmod headers

Reinicia Apache con el comando:

sudo service apache2 restart

Crea los siguientes (sub)directorios, y cámbiale el propietario al último de ellos:

sudo mkdir -p /mnt/usbdisk/ownCloud/data
sudo chown www-data:www-data /mnt/usbdisk/ownCloud/data

Vamos a /tmp, donde descargarás la última versión de ownCloud (que a estas alturas es la 4.5.5), y desde donde trabajaremos. Ejecuta estos comandos:

cd /tmp
wget http://mirrors.owncloud.org/releases/owncloud-4.5.5.tar.bz2
cd /var/www
tar jxvf /tmp/owncloud-4.5.5.tar.bz2 && rm /tmp/owncloud-4.5.5.tar.bz2
sudo chown -R www-data:www-data owncloud

Desde tu ordenador, con tu navegador ves a la URL http://mihomeserver.midominio.com/owncloud donde mihomeserver.midominio.com debe ser sustituido por tu dominio. Te saldrá el asistente de instalación de ownCloud. Pon un nombre de usuario y una contraseña para el administrador de ownCloud. Asegúrate que cambias el directorio de almacenamiento a /mnt/usbdisk/ownCloud/data, y dale al botón Completar la instalación.




Una vez finalizada la instalación, automáticamente entrarás al interfaz web del usuario administrador. Desde ahí, y yendo al botón de Ajustes, que es esa rueda dentada situada en la parte inferior izquierda de la ventana, podrás crear más usuarios (te recomiendo que crees uno para tí, no gastes el usuario administrador), cambiar configuraciones, etc.

Ahora ya solo te queda instalar en tus ordenadores la aplicación cliente de ownCloud. La puedes encontrar en:



11.- Servicio de Música en Streaming


Existen probablemente 2 perfiles de usuario de un servicio de música en streaming:
  1. Usuario que escucha su música en el ordenador, y requiere un interfaz completo, y poco más.
  2. Usuario que usa el servicio de streaming para escuchar su amplia colección de música remotamente, y requiere, además de un interfaz completo, poder escuchar su música adonde quiera que vaya.

Existe también el usuario que únicamente quiere tener unas cuantas canciones y poder escucharlas remotamente en su teléfono cuando va haciendo jogging o en el coche vía bluetooth. Si éste es tu caso, no hace falta que instales nada más, ya que ownCloud dispone de un servicio básico de música en streaming. Cualquier aplicación compatible con el formato de Ampache debería poder conectarse a tu ownCloud y reproducir los archivos de música que tengas en tu nube. Fíjate en mi configuración de ownCloud, en el apartado Personal, al final de la página:



Pero, si, por el contrario, eres como yo (usuario del tipo 2), consumidor ávido de música, con una discoteca importante, que escuchas música en cualquier lado vía streaming, tanto a través de WiFi como con conexiones 3G, necesitas algo más potente que se ajuste mejor a tus necesidades.

Tras mucho tiempo probando distintos paquetes de software en streaming. y que tengan clientes que funcionen bien en dispositivos móviles, estos son mis resultados (nombre/puntuación del 1 al 5):

Software Google Android Apple iOS
Subsonic/5 Subsonic/4 iSub/5, Subsonic/3
Ampache/4 Just A Player/3 AmpacheX/1
Jinzora/3 Jinzora Mobile/3 Ninguno/0
MPD/3 MPDroid/4 MPoD/4

El mejor software de gestión de discoteca con streaming es, para mi, sin duda, Subsonic (es el que actualmente uso en mi Home Server AMD64). Tiene una interfaz web muy intuitiva, soporte para transcodificación a varios formatos, y clientes para Android y iOS que funcionan muy bien. El cliente Subsonic (solo en su versión para Android) y iSub te permiten, además, guardar en caché las canciones y así ahorrar ancho de banda al escucharlas de nuevo. El único pero es que el servidor Subsonic funciona bajo Java, y por lo tanto, en la RasPi, va muy justo de recursos.

Le sigue Ampache, de características similares (aunque no llegar a ser tan potente) a Subsonic.  Tiene también una interfaz bastante buena, soporta transcodificación (a mp3), tiene clientes para Android y iOS, y ambos permiten guardar las canciones escuchadas en caché. Desgraciadamente, para iOS solo hay un programa, AmpacheX, muy muy flojito, y además, es de pago. Por otro lado, Ampache requiere de un servidor MySQL para funcionar. Instalar MySQL en la RasPi, que solito, sin hacer nada, consume unos 32MB de RAM, solo por instalar una aplicación podría considerarse un poco excesivo, aunque por el momento parece ser que nos sobra RAM.

Continuamos con Jinzora, el más simple y ligero de los vistos hasta ahora. Tiene una interfaz web simplona, y no dispone de muchas opciones que los usuarios más exigentes querrían. Además, solo hay cliente para Android, también muy simplón, y no he encontrado ninguno para iOS.

Mención aparte merece MPD, ya que no se trata de un software de gestión de tu música, sino de un servicio para controlar la reproducción de tu música almacenada en tu servidor desde y hacia multitud de dispositivos, ya sean los altavoces de otro ordenador, un equipo de música compatible, o a través de streaming a tus dispositivos móviles  MPD no dispone de interfaz web, y su configuración es bastante sencilla. Sin embargo, para escuchar la música en dispositivos móviles no dispone de posibilidad de guardar canciones en la caché del cliente (ya que es únicamente un stream, como una radio por Internet), y requiere transcodificación en el Home Server, y eso es algo que, en la RasPi, debemos evitar. En otro tipo de ordenador, sólo para escuchar música remotamente, habría puesto a MPD solo por detrás de Subsonic. Sin embargo, en este caso me veo obligado a descartarlo.

Después de haber instalado los 4 en mi RasPi, muy a mi pesar tengo también que descartar Subsonic, ya que, al depender de Java, consume demasiados recursos. Así, tras los descartes, de los que quedan, definitivamente prefiero Ampache, pero también comprendo que habrá gente que con Jinzora tendría suficiente, así que intentaré explicar como instalar ambos en tu RasPi. La configuración de cada uno, una vez ya instalados, la dejaré en tus manos, ya que no es en absoluto complicada. Solo comentaros que no deberías activar la transcodificación, sino más bien procurar dejar los archivos de tu discoteca en el formato y bitrate adecuados, ya que transcodificar audio, aunque no le supone problema a la RasPi, deja al resto de servicios sin demasiada CPU disponible.

Antes de instalar alguno de estos programas, asegúrate que pones un par de tus discos en mp3 en la carpeta /mnt/usbdisk/Audio. Puedes usar la estructura de carpetas que tu quieras. A mi me gusta, dentro de /mnt/usbdisk/Audio crear varias subcarpetas, como Música y Podcasts.


Ampache


Instalar Ampache no es complicado. Ejecuta este comando:

sudo apt-get install ampache mysql-server

Al ejecutarse la instalación de paquetes, te saldrán dos pantallas para integrar Ampache con Apache, y otra para introducir la contraseña del usuario administrador (root) del servidor MySQL.

Contesta Si a la pregunta

Introduce la contraseña para el administrador de MySQL

Ahora debes modificar, con privilegios elevados, el archivo /etc/php5/apache2/php.ini. Busca y cambia el valor de la variable tal y como te pongo aquí abajo:

max_execution_time = 60



Una vez instalados los programas y sus dependencias, desde tu ordenador, navega a la URL http://mihomeserver.midominio.com/ampache (sutituye mihomserver.midominio.com adecuadamente), para empezar a configurar la instalación de Ampache. En la ventana de instalación, abajo te saldrá un mensaje de error como éste:

De momento, ignóralo, e inicia la configuración.

Introduce la contraseña del administrador de MySQL, y pincha en Insertar una base de datos

Escribe el nombre del administrador de MySQL (root) y su contraseña, y pincha en Bajar

Se habrá descargado un archivo denominado ampache.cfg.php a tu ordenador. Revísalo si quieres. Ahora debes copiarlo a tu RasPi y dejarlo en la carpeta /etc/ampache. Puedes copiarlo de varias maneras. La manera más fácil de hacerlo es copiar el archivo desde tu ordenador al disco duro compartido de tu Home Server, y desde ahí a su destino final con el comando

sudo cp ampache.cfg.php /etc/ampache && sudo chmod 640 /etc/ampache/ampache.cfg.php && sudo chown www-data:www-data /etc/ampache/ampache.cfg.php

Una vez copiado el archivo, pincha en Reheck Config y continua al paso 3:

Crea la cuenta de administrador de Ampache
Por último, es posible que Ampache haya detectado que existen actualizaciones disponibles. Te recomiendo que actualices.


Es posible que tengas que pinchar varias veces en el botón Update Now, que irá aplicando las actualizaciones una a una.

Ya tienes Ampache instalado y configurado. Ahora ya puedes usarlo. Recuerda que debes:
  1. Añadir un usuario no administrador
  2. Añadir tus carpetas de música
  3. Evitar usar transcodificación

Jinzora


Instalar Jinzora es un poquito más farragoso. Ejecuta los siguientes comandos (cada comando está separado por un salto de línea):

cd /tmp

wget 'http://downloads.sourceforge.net/project/jinzora/Jinzora%203.0/jinzora-3.0.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fjinzora%2F&ts=1356700663&use_mirror=heanet' -O jinzora-3.0.zip

unzip jinzora-3.0.zip

sudo mv jinzora-3.0 /var/www/jinzora

cd /var/www && sudo chown -R www-data:www-data jinzora

cd jinzora && sudo sh configure.sh

Desde tu ordenador, abre la siguiente URL http://mihomeserver.midominio.com/jinzora (sustituye el dominio adecuadamente) con tu navegador. Te saldrá una ventana como ésta:

Pincha en Proceed to Requirements

Aunque veas los parámetros así, puedes ir a Proceed to License

Acepta la licencia y pincha en Proceed to Install Type

Deja los parámetros tal y como vienen por defecto en esta ventana. Pincha en Proceed to Main Settings

Asegúrate de dejar los parámetros tal y como aparecen en la imágen. Pincha en Proceed to Backend Setup

Pincha en Proceed to Import Media

Añade tu carpeta de archivos de Audio al Media directory y deja que Jinzora analice e importe tu música

Tras la instalación pincha en Proceed to Launch Jinzora


Por último, selecciona No Thanks en la pregunta final, y pincha en Launch Jinzora. Te llevará a la página de inicio de Jinzora.


Como has visto, instalar Jinzora es bastante más farragoso que Ampache. Recuerda crear un usuario sin credenciales administrativas para escuchar tu música desde tu dispositivo compatible.


12.- CrashPlan


CrashPlan no es un programa de código abierto, aunque de uso libre (FreeWare). CrashPlan te permite hacer copias de seguridad entre varios ordenadores de manera gratuita, o, mediante contratos comerciales/de pago, a la nube. Si no dispones de una RasPi con 512 MB, no vale la pena que lo instales, ya que creo que no vas a disponer de suficientes recursos.

Vídeo promocional de CrashPlan en YouTube

Si tienes una RasPi funcionando como Home Server, y allí almacenas tus vídeos familiares, tu música, tus fotos, o incluso tus documentos, no creo que te haría mucha gracia pensar que todo eso se puede perder en un momento si te falla el disco duro. Hacer copias de seguridad manualmente es tedioso, y si estamos hablando de GigaBytes, además, copiando a través de la red, es lento. Con CrashPlan te olvidas del tema. Si deseas puedes copiar los archivos de tu Home Server a otro ordenador, incluso al de un amigo que use CrashPlan, y, si lo deseas, puedes contratar alguno de los planes de Backups que ofrece CrashPlan y copiar de manera desatendida los contenidos de tu Home Server a la nube. También podrías hacer copias de seguridad de tus otros ordenadores a tu Home Server. Sin embargo, debo advertirte que CrashPlan, trás recibir una copia de seguridad, la comprime. Eso gasta mucha CPU que tu RasPi no tiene, así que no te recomiendo que utilices tu RasPi con CrashPlan como servidor o receptor de copias de seguridad de tus otros dispositivos.

CrashPlan depende de Java. Por lo tanto, es un programa que usa bastantes recursos. Sabemos que tu RasPi no dispone de muchos, pero puedo decirte que en mis pruebas la RasPi me ha sorprendido gratamente. CrashPlan tiene dos componentes: un servidor o servicio, que es el que se encarga de efectuar o recibir las copias de seguridad, y un programa con entorno gráfico que es el que te permite configurar el servicio, contratar más opciones, y restaurar tus copias de seguridad. Los dos componentes de CrashPlan hablan entre si a través de TCP/IP. Además, CrashPlan se ha diseñado para que funcione a través de Java en procesadores Intel, y no en ARM, por lo que tendremos que sustituir unas librerías por otras compiladas para ARM. Por último, el componente gráfico no hay manera de hacerlo funcionar bajo ARM, así que no tendrás más remedio que instalar CrashPlan también en otro ordenador con procesador Intel, y cambiar los archivos de configuración para poder conectarte desde él con el CrashPlan instalado en tu RasPi.

Si después de leer todo esto, sigues interesado en instalar CrashPlan en tu Home Server, vamos allá.

Debo decirte que mucha de la información que incluyo en este capítulo está basada en este post del  blog de Jon Rogers que me ha ayudado muchísimo a entender la configuración de CrashPlan en una RasPi. Además, las librerías modificadas son suyas, así que hay que reconocerle su mérito.

Primero, debemos descargar CrashPlan. Ves a la página de descargas de su versión de Linux y descárgala a tu RasPi.

Descarga también, desde la web de Jon Rogers,  estas 2 liberías:
Si alguno de estos enlaces te fallara, tengo una copia de CrashPlan (3.4.1) y estas librerías en un archivo comprimido tgz. Descárgarlo aquí.

Pon los 3 archivos en el directorio /tmp de tu RasPi y descomprime el archivo tgz de CrashPlan con este comando:

tar zxvf CrashPlan_3.4.1_Linux.tgz

Te ha creado un nuevo directorio CrashPlan-install. Antes de instalar CrashPlan debemos de instalar Java. Ejecuta los siguientes comandos para instalar Java, y posteriormente CrashPlan, en tu RasPi:

sudo apt-get install openjdk-7-jre-headless
mkdir /mnt/usbdisk/CrashPlan
cd CrashPlan-install
sudo bash ./install.sh

Durante la instalación, CrashPlan te preguntará varias cosas. A todas menos una puedes dejar la respuesta vacía (que es lo mismo que aceptar los valores que te indica por defecto). La que si debes de cambiar tú, es la que te pregunta por la carpeta de almacenamiento de CrashPlan, como puedes ver en la siguiente captura de imagen de mi terminal:


Debes contestar escribiendo la carpeta /mnt/usbdisk/CrashPlan

Una vez instalado, ves al directorio donde tienes las 2 librerías compiladas por Jon Rogers, y que acabas de descargar, y sustitúyelas por las originales de CrashPlan para Intel:

cp libjtux.so libmd5.so /usr/local/crashplan

Ya puedes arrancar CrashPlan con el comando:

sudo /etc/init.d/crashplan start

Por algún motivo que no me he preocupado por investigar, aunque configures CrashPlan para que arranque automáticamente, no funciona, así que una manera rápida de solucionarlo es editar el archivo /etc/rc.local con credenciales elevadas y añadirle esto:

/etc/init.d/crashplan start

Tras unos minutos (si, unos minutos) en los que tu CPU estará al 100%, observarás que el servicio de CrashPlan ya está en funcionamiento. Pero como te he comentado antes, la interfaz gráfica no funciona en plataformas ARM, así que vas a tener que instalar CrashPlan en cualquier otro ordenador (da igual que sea Windows, Mac o Linux), para acceder y configurar el de tu RasPi. El único requisito que debe cumplir tu ordenador es que debe tener también ssh  instalado, para crear un túnel entre tu RasPi y tu ordenador. Voy a asumir que lo instalas en un ordenador con Linux.

Una vez lo tengas instalado en tu ordenador, asegúrate que tienes la interfaz gráfica apagada y que CrashPlan, en tu RasPi, si está funcionando. En tu ordenador, edita con credenciales elevadas el archivo /usr/local/crashplan/conf/ui.properties. Encontrarás una línea que pone:

#servicePort=4243

y cámbiala para que quede así:

servicePort=4200

Ahora, en un terminal de tu ordenador, escribe el siguiente comando:

ssh -L 4200:localhost:4243 pi@homeserver

Introduce tu contraseña. Ya tienes un túnel de ssh abierto que comunica el puerto 4243 de tu Home Server con el puerto 4200 de tu ordenador. Ahora ya deberías poder arrancar la interfaz gráfica de CrashPlan desde tu ordenador, darte de alta si todavía no eres usuario, y empezar a hacer tus copias de seguridad.


Conclusión

Mi Raspberry Pi con una carcasa transparente, junto a un disco compacto, lo que te da una idea del tamaño de este micro-ordenador.

La Raspberry Pi es una versión moderna de los ZX Spectrum, ordenadores MSX, o Commodore 64, aquellos primeros ordenadores personales de la era de las grandes computadoras y con los que muchos dimos nuestros primeros pasos en la informática. La Raspberry Pi ha nacido con un objetivo similar: introducir, a un coste muy bajo, la informática a niños y no tan niños con ganas de aprender a programar. Para mi, la Raspberry Pi me ha devuelto las ganas de trastear con los ordenadores, de intentar sacarles el máximo jugo, y todo por menos de 50€ y con un consumo de 2 o 3 W, ¡menos que una bombilla de bajo consumo!

La Raspberry Pi es una vuelta de tuerca al mundo de los procesadores potentes y grandes cantidades de RAM. Con un procesador ARM como el de tu smartphone, y 512 MB de RAM (originalmente se vendía con 256 MB, algo insuficiente en mi opinión), puedes disponer de un ordenador sencillo con funciones de ofimática, acceso a Internet, e incluso para escuchar música o ver vídeos. También, como ya has visto, puedes disponer de tu propio Home Server económico y de bajo consumo.

Si tienes hijos con ganas de aprender informática, programación, o si quieres dar tus primeros pasos en administración de sistemas, la RasPi es el juguete ideal.



Datos de consumo de CPU y RAM de mi RasPi tras instalarle todos los programas de este manual 

120 comentarios:

  1. Hola Ignacio.

    Estoy releyendo tu fantástico manual, creo que en el punto 6.- Servidor de dlna.

    Creo que no queda claro el siguiente párrafo que empieza por:

    :::
    Me gusta ejecutar, en la medida de lo posible/conveniente...

    Si no deseas hacerlo solo debes ya solo te queda activar el servicio con el comando sudo service minidlna start, y pasar al siguiente capítulo. Si, por el contrario deseas hacerlo, primero, edita el archivo /etc/default/minidlna y añade las 2 siguientes líneas al final (necesitarás credenciales elevadas):
    :::

    Un saludo.
    Angel Martín

    ResponderEliminar
    Respuestas
    1. Gracias. A veces uno escribe y no se da cuenta de que lo pone.

      Eliminar
  2. Genial desconocía MiniDLNA, lo instale en mi viejo NAS linksys NSLU2 y va de 100 fácil de configurar y muy liviano, ademas se complementa con avahi que poco a poco va ganado terreno. Muchas gracias ^__^

    ResponderEliminar
  3. Hola Ignacio

    Felicidades por este manual.

    Hace poco que estoy con raspberry pero hace ya bastante q toco Linux. Tengo una necesidad: minidlna+transmission+xbmc.
    Crees que se puede anadir xbmc al manual que has puesto?

    He probado las distros tipicas de xbmc, pero no me convencen con lo otro, y, ahora tengo raspbian pero cada dia se me cuelga el sistema con el error kevent 0 may been dropped y me quedo sin red. Y no encuentro nada de como solucionarlo.

    Un saludo

    Toni

    ResponderEliminar
    Respuestas
    1. Hola Toni. Hace ya un par de semanas estuve probando varias distribuciones dedicadas a XBMC para la Raspi. Ninguna me convenció demasiado, ya que, imagino que como tú, pienso que mientras no estoy usando XBMC, es una pena que la RasPi no haga nada más. Así que, tanto con Raspbmc como con Xbian estuve probando a instalar algunas cosas más.

      Hay que tener en cuenta que en estas distribuciones se desaconseja instalar/actualizar otros componentes de la distribución original, así que, efectivamente, me encontré con problemas al meterle más cosas.

      También hay que tener en cuenta que estas distribuciones le hacen *overclocking* a la RasPi, lo cual ya nos indica que la RasPi va muy justita de recursos para aguantar exclusivamente XBMC.

      Aún así, instalé XBMC en mi Home Server, y funcionaba bastante bien. Problemas:

      1.- En el momento que cualquier otro programa/servicio trabajaba, los vídeos en XBMC se enganchaban.

      2.- Tras apagar muchos de los servicios (solo dejé dnsmasq, samba, transmission-daemon, y xbmc, la cosa mejoraba bastante, pero al ver vídeo en HD con h264/AC3 todavía había parones en el vídeo, si mientras tanto copiaba archivos en Samba o descargaba en transmission.

      3.- XBMC tiene un bug por el cual estando en su menú principal gasta más CPU que viendo vídeos en HD. Incluso probando con ciertos hacks que encontré en Internet nunca pude solucionar el problema.

      4.- Cuando, desde el mando a distancia, apagas XBMC, se apaga el programa, no el home server. Esto es incluso casi mejor que sea así.

      Yo probé XBMC con su salida de video analógica. No he probado con HDMI. Quizás el resultado sea diferente.

      Dicho esto, si deseas instalar XBMC en tu Raspi, hay una persona que ha creado paquetes para Raspbian y los tiene en un respositorio. Aquí tienes las notas que guardé por si más adelante lo publicaba:

      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

      sudo usermod -a -G audio,video,input,dialout,plugdev pi

      pi@HomeServer ~ $ cat /etc/group | grep pi
      dialout:x:20:pi
      audio:x:29:pi
      video:x:44:pi
      plugdev:x:46:pi
      input:x:1001:pi
      pi:x:1000:


      edita /etc/default/xbmc con credenciales elevadas

      # Set this to 1 to enable startup
      ENABLED=1

      # The user to run XBMC as
      USER=pi

      # Adjust niceness of XBMC (decrease for higher priority)
      NICE=-5


      Teniendo XBMC no te hace falta minidlna, ya que XBMC tiene su propio servidor de DLNA, si no recuerdo mal.

      Si tienes alguna duda o problema, me lo dices. Ya me dirás como quedas.

      Eliminar
    2. Muchas gracias por tu respuesta Ignacio.

      la verdad es que el sistema que has propuesto me esta gustando mucho. Solo he puesto transmission + minidlna y va perfecto (por ahora :-) ). Con raspbian, iba bien 24h pero luego salian los errores de "dropped" y me anulaban la red.

      Necesito minidlna porque me permite ver con mi reproductor bluray Sony ficheros MKV (es la unica manera). Minidlna engaña al reproductor haciendole creer que es otro tipo de fichero.

      Necesito XBMC porque me permite enviar desde el ipad/iphone video y audio (hace de cliente airplay) y tambien porque los ficheros Avi con codec DivX, mi Sony ya no los reproduce. Y luego el tema de los subtitulos, que al sony tampoco le llegan.

      Conoces alguna alternativa a XBMC para hacer de cliente airplay para video y audio?

      Habia pensado en usar omxplayer y mediante apache acceder a la carpeta de videos y abrirlo remotamente, pero no me gusta mucho la idea ni creo que sea muy practico. Tambien habia pensado en recodificar los ficheros de DIVX a XVID, pero no se si tiraria la RPI.

      Tienes algun script post-descarga que trate los ficheros descargados? los descomprima, los mueva, los renombre, .....

      Muchas gracias, y disculpa tanta pregunta :-)

      Un Saludo

      Toni

      PD: Siguiendo tu consejo, he modificado un poco tu manual haciendo que Transmission se ejecute como pi en lugar de como debian-transmission.



      Eliminar
    3. Hola Toni. Si necesitas tener minidlna instalado, perfecto. Minidlna no te quitará muchos recursos, ya que es un programa muy ligerito.

      No conozco ninguna alternativa a XBMC como cliente de AirPlay que te muestre los videos directamente en la pantalla de la tele y que sea compatible con la RasPi.

      No uso ningún script post-descarga en transmission ya que me gusta revisar los contenidos que descargo antes de moverlos a la carpeta adecuada.

      Sobre recondificar/transcodificar video en la RasPi, yo no lo haría. La RasPi no está diseñada para efectuar esas tareas. Ten en cuenta que la descodificación de vídeo se hace mediante hardware, pero la condificación, no.

      Si tu TV Sony soporta H264/AC3, yo usaría un programa como HandBrake para recodificar tus vídeos DivX en tu ordenador. handbrake soporta contenedores mp4 y mkv. Yo no recodificaría a AVI+XVid.

      Eliminar
    4. Hola Ignacio.

      Antes de nada, felicitarte por el tutorial, porque la verdad me ha venido genial.
      Estoy en una situación parecida a la del compañero, intento instalar XBMC tras haber instalado dnsmasq, minidlna,pptpd y samba, y la verdad es que, o soy yo que no consigo hacerlo funcionar o XBMC no me aparece por ningún lado cuando conecto la raspi a la televisión. ¿Alguna idea de qué puedo estar haciendo mal?

      Un saludo!

      Eliminar
    5. barduk, no entiendo por qué no te funciona. ¿En la tele te sale solo la pantalla del terminal o está en negro? ¿Has probado a arrancarlo manualmente a ver que pasa? Prueba con el comando:

      /etc/init.d/xbmc start

      Eliminar
    6. La tele sigue en negro, he probado a reinstalar todo otra vez, ejecutando al final el comando que me has dicho, y nada, la televisión sigue en negro.
      Lo tengo conectado por hdmi, no se si el problema puede venir de ahí o no, pero yo juraría que la tele si detecta que tiene algo enchufado, pero todo negro.
      Decirte que no le instalé la interfaz gráfica que propones en tu tutorial, por si el problema puede venir de ahí.

      También, otro problema que me veo incapaz de resolver, es que no consigo acceder a la raspi desde fuera de la LAN. Es decir, si quiero acceder a ella para utilizarla como NAS, tiene que ser dentro de mi LAN, desde fuera, lo único que consigo, a pesar de que si uso no-ip para tener la ip con la que sale al exterior, es acceder desde el ordenador por ssh,eso si puedo hacerlo desde fuera, nada más. ¿Alguna idea de qué puedo hacer?

      Muchas gracias por todo!

      Eliminar
    7. Buenos dias!

      Me sale todo en negro, por lo que no se si es que o el programa no funciona, o no se. Si creo que la tele lo detecta, pero tampoco estoy seguro. He probado a con ese comando, a reinstalarlo todo de nuevo y demás, y nada, sigue negro todo. No instalé la interfaz gráfica que recomiendas en el tutorial, no se si eso puede influir.

      En otro orden de cosas, me ha sido imposible acceder a la raspi, al disco duro donde cree las carpetas que dices y demás, desde fuera de la LAN. Lo que si he conseguido es acceder mediando ssh, pero eso, para acceder a los archivos, me temo que no me sirve, o no se xD

      Eliminar
    8. barduk, que no hayas instalado la interfaz gráfica no es problema. Sin embargo, cuando arrancas la RasPi con una tele enchufada, debería de salirte el proceso de arranque, y el logo de Raspberry Pi, exactamente igual a cualquier Debian u otro Linux en un ordenador. Si la pantalla está siempre en negro, entonces tienes un problema en la visualización de los contenidos en tu pantalla. Se me pueden ocurrir varias cosas, la más común es que la autodetección del HDMI no funcione con tu tele, o que el cable no esté bien, la tele no soporte la resolución que tienes puesta.

      Aquí tienes un enlace a una página en donde te describen los problemas y posibles soluciones a las conexiones HDMI en la RasPi:

      http://blog.goshield.es/2013/03/problema-mi-raspberry-pi-no-saca-video.html

      Eliminar
    9. Muchas gracias por la respuesta. Problema 1 solucionado, ya se ve en la pantalla, era problema con el HDMI. Ya me sale el terminal, pero solo eso, por más que intento iniciar XBMC soy incapaz.

      Sobre lo de acceder desde fuera, ¿sabes cuál puede ser la razón? o, por el tutorial que has puesto,¿ no se puede hacer?

      Eliminar
  4. Hola.
    La verdad que es un tutorial fantastico. Lo lei antes de tener mi Raspberry, y ahora que ya la tengo, estoy metiendo mano.

    Ya heh trabajado con VNC, TightVNC, etc. Lo raro es que no puedo conectarme por VNC. Hasta ese punto llegue perfectamente (excepto el de la configuracion de la red que no lo he hecho)

    Puedo hacer ping por IP a la Raspi, pero no puedo hacer funcionar el VNC. El cliente me rechaza de forma sistematica "No se puede estlabecer uan conexion ya que el equipo de destino denego expresamente dicha conexion"

    alguna idea?

    GRacias!

    ResponderEliminar
  5. Kenny, gracias por el cumplido.

    Sobre tu problema, sería conveniente ver si realmente el programa está arrancando con el puerto correcto. En mi caso, al iniciar /usr/local/bin/startxvnc.sh me devuelve esto:

    pi@HomeServer ~ $ startxvnc.sh
    _XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
    _XSERVTransOpen: transport open failed for inet6/HomeServer:0
    _XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6
    [dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
    [dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
    [dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
    [dix] Could not init font path element /usr/share/fonts/X11/Type1, removing from list!
    [dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
    [dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
    [dix] Could not init font path element /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, removing from list!

    New 'X' desktop is HomeServer:1

    Starting applications specified in /home/pi/.vnc/xstartup
    Log file is /home/pi/.vnc/HomeServer:1.log


    Como puedes ver, en mi Raspi la conexión está disponible en HomeServer:1, que significa en el puerto tcp 5901. Haz un telnet a ese puerto desde tu ordenador a ver si contesta.

    Mira también el log, en mi caso, está en /home/pi/.vnc/HomeServer:1.log a ver si encuentras algún error.

    ResponderEliminar
  6. Gracias por tu pronta respuesta!

    Intenet "reejecutar" el script pero en vez de HomeServer, me devolvia

    New 'X' desktop is raspberry:1

    Esto fue anoche, por lo que no voy a poder probarlo hasta mas tarde por estar trabajando en este momento.

    Ademas el "1" me desconcierta. no le estamos diciendo que levante en el desktop 0? (DISPLAY=:0, etc...?)

    Gracias!

    ResponderEliminar
  7. Encontre parte del problema.
    Leugo de reinstalar todo, ahora el tema es que funciona el VNC, pero no se ejecuta al inicio, sino que lo tengo que ahcer manualmente.

    La linea que se agrega al rc.local es asi:

    su -c "/usr/local/bin/startxvnc.sh" pi &

    o asi:

    /usr/local/bin/startxvnc.sh


    Porque primero lo decis de una forma y luego se ve de otra.

    Probe ambas y no lo toma.
    Alguna sugerencia?

    Gracias!

    ResponderEliminar
    Respuestas
    1. su -c "/usr/local/bin/startxvnc.sh" pi & : Este es el comando a poner en /etc/rc.local. Este comando le indica a la RasPi que ejecuta startxvnc.sh como usuario pi. Haz "man su" para ver el manual del comando su

      /usr/local/bin/startxvnc.sh es el comando a ejecutar manualmente, como usuario pi, para probar que funciona. No deberías tener que ejecutarlo manualmente si has añadido el comando anterior a /etc/rc.local

      Eliminar
    2. El problema es que no me toma el script desde el inicio... mmhmhmh estoy haciendo todo tal cual lo dices.

      Hay algo que no se que es y me esta complicando la existencia.

      Voy empezar de 0 y rehacer todo.

      Gracias por el soporte!

      Eliminar
    3. Kenny, siento no haberte podido contestar antes. No se como habrás quedado, pero se me ocurren 2 cosas por las que no te esté funcionando es script:

      1.- El script no es ejecutable
      2.- La sintaxis no es correcta.

      Revísalo y si te sigue sin funcionar, dímelo.

      Eliminar
  8. Perdon te adjunto que me devuelve una vez que ejecuto el script a mano

    Fatal server error:
    Server is already active for display 0
    If this server is no longer running, remove /tmp/.X0-lock
    and start again.


    New 'X' desktop is raspberrypi:1

    Starting applications specified in /root/.vnc/xstartup
    Log file is /root/.vnc/raspberrypi:1.log

    ResponderEliminar
    Respuestas
    1. El error "Server is already active for display 0" significa que ya tienes el entorno gráfico funcionando, ya sea porque lo has activado para que se vea por la pantalla de tu RasPi, o porque has ejecutado Xvfb anteriormente.

      "New 'X' desktop is raspberrypi:1" significa que ya tienes la conexión VNC disponible en el puerto 5901.

      Eliminar
  9. Hola, vuelvo a la carga con otra consulta.
    Estoy teniendo problemas de escritura con Transmission. "Permission denied" a la hora de comenzar a bajar un nuevo torrent.

    Estuve leyendo mucho y la unica solucion coherente que encontre (que no vi varias) es que el script de transmission original dice que el owner de la carpeta donde va a guardar es root.

    En tu tutorial cambiamos el disco usb (en donde se guardarian los torrents) el owner a pi.

    Tendra eso algo que ver? Tenes alguna idea?

    en caso de que sea asi, sabes donde cambio ese parametro? en settings.json no esta

    Gracias!

    ResponderEliminar
    Respuestas
    1. Me respondo a mi mismo. Para que sirva como guia para el que lo lea.

      Finalmente no instale Moebius ya que habia muchas cosas con las cuales no podia dar con la tecla, por lo tanto realice GRAN parte de este tutorial con Raspian.

      Logre hacer funcionar el Transmission sin que diera error de escritura.

      Como Raspian monta automaticamente los discos y te deja escribir en ellos, no modifique el owner del HDDUSB, por lo tanto quedo como root.

      En el script:

      root@raspberrypi:/etc/init.d# nano transmission-daemon

      estan las lineas:

      NAME=transmission-daemon
      DAEMON=/usr/bin/$NAME
      USER=debian-transmission
      STOP_TIMEOUT=30


      En la linea USER modifique "debian-transmission" por "root" y funciono de mil maravillas.

      Espero que sea util

      Eliminar
    2. Ejecutar transmission-daemon como root no me parece una buena idea. De hecho, ejecutar cualquier programa como root no me parece buena idea.

      El motivo por el que yo prefería ejecutar transmission-daemon como usuario "pi" era precisamente para evitar los problemas de permiso denegado, ya que las carpetas adonde se iban a guardar los archivos eran del usuario "pi". Yo, en tu lugar, me replantearía lo de ejecutarlo como "root".

      Eliminar
  10. Entonces una solucion seria cambiarle el owner al disco y modificar el usuario de Transmission de root a pi?

    ResponderEliminar
    Respuestas
    1. Así es. Acabo de darme cuenta que en el capítulo 7 se me olvidó poner las instrucciones del cambio de usuario. Pensaba que si que estaba puesto. Te pido disculpas por toda la perdida de tiempo que esto te ha provocado. Nada más pueda lo añado.

      Eliminar
    2. No hay problema hombre! Ya demasiado has hecho con este enorme tutorial.
      Gracias!

      Eliminar
  11. Tengo una pregunta simple....

    Se podría modificar, para que conectándola a una toma de red al encenderla de un cablemodem, nos indicase la ip para poder acceder desde fuera?

    La idea es enchufarla en casa de mi novia (risitas) y luego acceder desde fuera.

    Un saludo.

    ResponderEliminar
    Respuestas
    1. Ruben, pone este comando (es todo una línea) en el archivo /etc/rc.local, antes del exit 0

      echo "Tu IP externa es: `wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//' `"

      Eliminar
  12. Hola,
    Lo primero enhorabuena por este pedazo tutorial. Se que lleva mucho tiempo hacerlo.

    Realmente se le puede dar muchas utilidades al raspi, y tu las has expuesto claramente.

    Me preguntaba si es posible descargar de algún lado una imágen de esta superinstalación, o una copia con todo configurado, a fín de ahorrar un poco de tiempo, ya que se tarda mucho en instalar todo.

    Un saludo y gracias,

    ResponderEliminar
    Respuestas
    1. Hola Endika. Si que pensé en algún momento en crear una imágen de la instalación completa. Sin embargo creo que, en la mayoría de los casos, la gente no necesita instalar *todo* lo que he puesto en el manual. Además, creo que iría en contra del espíritu raspbiano :)

      De todas formas, si vieras que tienes problemas o no te funcionan bien las instrucciones, dímelo y la preparo en unos días.

      Eliminar
  13. Hola soy un reciente usuario de Raspberry con escasos conocimientos de linux, he instalado el minidlna y añadido directorios que tengo en un pen conectado a la Raspberry y me funciona perfectamente, mi pregunta es como puedo añadir directorios que tengo en red por ejemplo en mi pc tengo una carpeta llamada llamada cine me gustaria añadirla al minidlna.
    Cuando estoy en modo grafico en la barra de direcciones de file manager este recurso me aparece como smb://omega/Ext/Cine

    Gracias

    ResponderEliminar
    Respuestas
    1. Primero tendrías que montar la unidad de red en una carpeta de tu ordenador con smbclient. De todas formas, no te recomiendo que sigas por este camino, ya que ionotify no es compatible con unidades de red. Además, sobrecargarás el tráfico de tu red ya que para servir contenidos a tu TV, por ejemplo, la RasPi tendrá que recoger bits de tu maquina omega para posteriormente servirlos a tu TV. ¿Por qué no pones un servidor DLNA en omega?

      Eliminar
  14. Hola gracias por el manual me gustaría saber si esto funciona para un dominio comprado

    ResponderEliminar
    Respuestas
    1. Claro. Si la IP de tu servicio de Internet es estática sólo tienes que añadir un registro A de subdominio apuntando a tu IP. Si la IP es dinámica, tendrás que ver con tu proveedor de DNS (que probablemente sea el mismo que el registrador de tu dominio), como configurar los servicios de DNS dinámicos

      Eliminar
  15. Muchas gracias por el manual tan currado, quería saber que pasos tendría que realizar para tener el ownCloud funcionado en el Raspi, y si se podría acceder al cloud desde otro pc ( distinta red ). Gracias de nuevo :D

    ResponderEliminar
    Respuestas
    1. Tienes que configurar tu RasPi y, tu red LAN, tal y como comento en los capítulos 1, y sobre todo, el 2. Luego instala Apache y ownCloud tal y como comento en los capítulos 9 y 10.

      Eliminar
  16. Antes de nada agradecerte semejante tutorial! No sabes las de horas y dolores de cabeza que me has ahorrado!

    Mi duda es la siguiente
    Tengo el mismo router comtrend que tú, salvo que pertenezco a movistar.
    Comparto WIFI con mis vecinos y me gustaría crear una subred propia para mí, para que ellos no puedan tocar en mis archivos. Inicialmente pensé en activar el modo "Guest" de la WIFI, pero para mi sorpresa, no se activa por mucho que marques la opcion (al parecer es un bug que no se molestaron en arreglar)

    Sería posible realizar varias subredes con dnsmasq en función de una lista de direcciones MAC??

    Gracias de antemano y enhorabuena por el tutorial

    ResponderEliminar
    Respuestas
    1. Lo que comentas de hacer varias subredes con dnsmasq en función de una lista de direccones MAC es tecnicamente factible, usando ethernets virtuales, con cada eth0.x asignada a una subred, pero es muy farragoso y complicado de mantener, sobre todo a nivel de seguridad. yo me inclinaría más por hacer lo siguiente:

      Comentas que el router Comtrend lo tienes tú. Entonces, puedes conectar con un cable al Comtrend. Si es así:
      1.- Comprarte un router Wifi neutro.
      2.- Crea una subred en tu nuevo router con un rango de IPs diferente al del de Movistar, por ejemplo, 192.168.100.x
      3.- Configura el router neutro con una IP de la LAN de tu router Movistar como WAN en tu router neutro. Por ejemplo, asignate la IP 192.168.1.32 y conecta el cable de red desde el comtrend al puerto WAN de tu nuevo router.
      4.- Mete dentro de la subred 192.168.100.x todas tus cosas como si ese router nuevo fuera tu router de ADSL.
      5.- Redirige puertos en ambos routers como consideres necesario.

      Eliminar
  17. Hola,

    He visto este manual y me ha parecido muy muy bien, por lo que he procedido a intentar seguirlo.

    Lo primero que hice fue bajarme la imagen de Moebius 1.0.1 y luego por supuesto, grabarla en la SD y arrancar la Raspberry PI type B que tengo.

    ¡Me ha sido totalmente imposible!!

    Lo que exactamente he intentado es lo siguiente:

    1. En Windows Xp y 7. Dos ordenadores diferentes.
    Descomprimi la imagen tar.gz con Winrar, y envie la imagen a la tarjeta SD con la utilidad 'Win 32 Disk Imager 0.7'.
    Cuando encendi la Raspberry PI no hizo nada, no arranco.

    2. En Linux Red Hat (virtualizado en VirtualBox)
    Descromprimi la imagen tar.gz con la utilidad tar, y la envie a la tarjeta SD con la utilidad 'dd'
    Cuando encendi la Raspberry PI no hizo nada, no arranco.

    (en ambos casos, inspeccionando la tarjeta, parecia tener una particion de unos 52megas con archivos)

    Lo que si me ha funcionado es lo siguiente:

    1. Para ver si la imagen era correcta, he instalado el virtualizados Qemu en mi Windows 7 y lo he arrancado con la imagen de Moebius 1.0.1.
    Ha funcionado sin problemas. Bueno, el unico problema es que no consigo configurarle la red adecuadamente, pero esto es otro problema.

    2. Para comprobar que la Raspberry Pi me funciona correctamente, me he bajado otras imagenes como Wheezy o Elec, y sin problemas. Han funcionado sin problemas en mi Raspberry Pi

    ¿Alguna idea? ¿ayuda? ¿que mas puedo probar? Es que no se me ocurre nada mas...

    Muchas gracias por cualquier ayuda!

    ResponderEliminar
    Respuestas
    1. Cuando estaba testeando diferentes variantes de Raspbian me encontré con una que me hizo lo mismo que a ti. Nunca supe por qué. Sin embargo, googleando he leido que sería conveniente bajarla de nuevo y volver a probar. Puedes probar también quitando la opcion *bs* en el comando dd.

      Prueba a borrar TODOS los contenidos de la SD con este comando antes de meterle moebius de nuevo:

      dd if=/dev/zero of=/dev/hda

      Siento no poder ser de más ayuda.

      Eliminar
    2. ¡Sustituye /dev/hda por tu dispositivo!

      Eliminar
    3. OK! Gracias!
      Voy a probarlo esta misma tarde. Ya os cuento

      Eliminar
  18. Buenas!

    He instalado el moebius en mi tarjeta, pero no aprece que la raspberry lo reconozca, solo enciende la luz roja de PWR, pero no parece que haga nada con la targeta SD.

    La he metido en mi ordenador, y si la reconoce con los archivos...

    ResponderEliminar
    Respuestas
    1. Hace un par de semanas estuve probando un par de distribuciones derivadas de Raspbian y me sucedió lo mismo en una de ellas. No se a que se debe. Lo que hice fue cambiar el parametro *bs* a 1M y me funcionó. No se si se debe a la tarjeta o a la transferencia de los datos. Prueba y ya nos comentas.

      Ignacio

      Eliminar
  19. Lo mismo me paso a mi. Yo no conseguí que funcionara en la Raspberry PI.

    ResponderEliminar
  20. Hola

    Primero felicitarte por el tutorial.

    A ver si me puedes echar una mano. Te cuento lo que me pasa cada vez que intento instalar un paquete me dice failed to fech y la direccion del paquete.
    La verdad es que no se mucho de linux, a ver si me puedes decir si soy yo el que esta haciendo algo mal o que, por que ya me tiene frito.
    Puntualizo ya me da ese error incluso al intentar instalar el paquete de idiomas.

    Un saludo y gracias de antemano

    ResponderEliminar
  21. hola Ignacio, estupendo tutorial, tengo el mismo router que tú, el comtrend. He realizado los pasos para tener una ip fija 192.168.1.124 para la raspeberry, no he cambiado la dnsmasq, he editado el /etc/network/interfaces. He abierto el puerto 22 en el router, páginas que te verificar si ese puerto está abierto, así me lo confirmaron. He creado una DNS en no-ip, pero no sé cómo usarla, ni donde ponerla en el comtrend. Puedo hacer VNC desde todos los dispoditivos de mi LAN (smartphone y PC) pero no consigo acceder a mi raspberry desde fuera de mi LAN. Abrí el puerto 80 y la página que me ratifica que el 22 está abierto, me dice que el 80 no lo está... necesitaba una mano con este tema, porque veo que me falta "un paso" pero no se cual es....Me puedes ayudar?
    Gracias

    ResponderEliminar
    Respuestas
    1. Si usas no-ip, esta gente tiene un script para gestionar tu DDNS desde Linux, en este caso desde tu RasPi. El router comtrend creo recordar (me lo cambiaron por otro diferente hace un mes porque finalmente se rompió) que solo soporta DDNS con dyndns.org

      http://www.noip.com/support/guides/update_clients/setting_up_linux_update_client.html

      Eliminar
  22. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
  23. ¿El rango DHCP no debería ser 192.168.200.201,192.168.200.254?

    ResponderEliminar
    Respuestas
    1. El rango puede ser el que quieras. Como puse al pie de las fotos, las capturas las hice con otro rango, pero el documento es consistente ent odo momento.

      Eliminar
  24. ¿En el rango de IPs del DHCP no quisiste poner 192.168.200.201,192.168.200.254 en ves de 192.168.200.101?

    Pregunto, igual es una errata.

    ResponderEliminar
    Respuestas
    1. Puedes poner la 101, la 201, o la 40, o la 3, mientras la mascara sea 255.255.255.0

      Eliminar
  25. Hola Ignacio. Perdón por la crítica, pero me parece que es importante aclarar que varias de las aplicaciones no son del todo compatibles si no se usa una partición ext4. Yo deseo tener la posibilidad de llevar el disco externo a la casa de un amigo si es necesario, y no la Raspi completa. Por este motivo, deje el disco con un formato más legible para el universo Windows (NTFS). Dado que todos los comandos chmod y chown no funcionan, tanto minidlna como ownCloud tienen problemas, sobre todo este último. Con NTFS y lo que pude leer por el momento, TODO el disco se monta con un único dueño y un único set de permisos (775,777,722) desde el mount. Me parece que es útil aclararlo, para que otros no pierdan tanto tiempo probando, o decidan desde un inicio utilizar ext4.
    Saludos y espero no tome a mal la crítica.

    ResponderEliminar
    Respuestas
    1. Mural, no necesitas disculparte. Sin embargo, debo comentar que lo que tú planteas es incompatible con la definición de Home Server, que es lo que yo he querido montar aquí. Un Home Server ya sabes que es un dispositivo para estar conectado 24h/dia, 365 días/año. Si vamos quitando el disco tenemos que apagar antes los servicios que dependen de él (Samba, Calibre, MiniDLNA, ownCloud, CrashPlan). Siendo así, ya no es un Home Server, sino más bien un ordenador cualquiera del que no puedes depender en cualquier momento, porque es posible que sus servicios no estén en marcha.

      De todas formas, cada cual hace con sus cosas lo que quiere, y no voy a ser yo quien te diga que hacer con tu RasPi. Sin embargo, dejame recomendarte que no uses NTFS en Linux, salvo casos de necesidad. Esto es porque el driver de NTFS, ntfs-3g, es bastante lento, consume bastantes recursos, y no dispone de una de utilidad de chequeo/recuperación del sistema de archivos fiable. Si Linux es tu plataforma principal, y necesitas acceder a archivos en tu disco de la RasPi desde una máquina con Windows, pegale un vistazo a estas webs, que es posible que te sirvan:

      http://www.fs-driver.org/
      http://sourceforge.net/projects/ext2fsd/


      Eliminar
    2. Es verdad, tu post no está pensado para que sea portable. Y mi intención con el disco no es ir paseandolo por todos lados, me gustaría tener la posibilidad de para algún evento o reunión, poder llevar un disco lleno de música y/o fotos de vacaciones/cumpleaños/etc. Voy a investigar los links, tal vez dejar una pequeña partición NTFS con los drivers, asi en cualquier lugar que lo lleve puedo accederla sea una solución.
      Por lo que lei recién estos drivers no llegan hasta ext4, solo ext2/3, pero voy a investigar un poco más sobre el asunto. Volveré con novedades!! Muchas gracias por el aporte!!

      Eliminar
  26. Para no ser solamente un critico no constructivo: Llegue a la siguiente combinación, que parece dar resltado:
    Monto el disco con la siguiente linea:
    /dev/sda1 /mnt/usbdisk ntfs-3g permissions,defaults,auto,uid=pi,gid=pi,dmask=007,fmask=133 0 0

    Que le otorga al grupo permisos completos, pero nada a "otros" para que owncloud no muestre error.
    Adicionalmente, agrego al grupo pi a los usuarios www-data y debian-transmission, para que owncloud y transmission torrent puedan leer y escribir.
    Suerte!

    ResponderEliminar
    Respuestas
    1. Este mensaje es interesante para quien quiera hacer que su RasPi funcione con un disco duro externo en formato NTFS. Yo no lo haría, por razones esgrimidas en mi respuesta anterior a ésta. Además, al igual que Mural ha modificado parámetros para ciertos programas, es posible que se deba hacer para otros también. Sin embargo, como dice el dicho, para gustos: colores. La información es valiosa y siempre puede haber alguien al que podría serle útil.

      Eliminar
  27. Hola Ignacio te cuento lo que he hecho:
    He seguido el punto 2 de tu tutorial, como ya tenía configurado el archivo /etc/network/interfaces con las ips 192.168.1.xxx no cambié de rango las IPs y todo lo puse así:

    /etc/network/interfaces


    auto lo

    iface lo inet loopback
    #iface eth0 inet dhcp

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

    /etc/dnsmasq.d/opciones.conf


    # Interfaz sobre la que trabaja dnsmasq
    interface=eth0
    # Rango de IPs que se asignarán dinamicamente
    dhcp-range=192.168.1.101,192.168.1.254,12h
    # Gateway (o sea, el router)
    dhcp-option=3,192.168.1.1
    # Archivo de DNS externas
    resolv-file=/etc/dns_externo.conf

    /etc/resolv.conf


    domain Home
    search Home
    nameserver 192.168.1.254

    En el router le pongo la ip addreess 192.168.1.1 y todo lo demás igual

    Cuando hago un ping a la raspberry (ping -c 4 raspberrypi) la ip que sale es 127.0.1.1 no la 192.168.1.254 que es la que entiendo que es la que ocupa la raspberry, al menos esa es la que uso para conectarme a ella por putty. ¿Estoy haciendo algo mal? el ping me lo hace correctamente pero con la ip que te digo, la 127.0.1.1

    Muchas gracias




    ResponderEliminar
    Respuestas
    1. Hola Blown. Muestrame tu archivo /etc/hosts, por favor

      Eliminar
  28. Una duda más Ignacio (gracias por tu paciencia) al final del apartado 2, cuando hablas de mihomeserver.midominio.com te refieres al dominio que tenga en dyndns u otro proveedor de dominios dns? (yo tengo uno en noip...)

    Ya me indicas.

    ResponderEliminar
    Respuestas
    1. Hola Blown. Si, sustituye mihomeserver.midominio.com por tu dominio en noip.

      Eliminar
  29. Hola Ignacio,
    He seguido los passos del capitulo 2 para configurar la Lan. Tengo internet y puedo hacer el ping a la Rasberrrypi pero no puedo conectar-me por wi-fi. Como lo puedo solucionar?
    Muchas gracias

    ResponderEliminar
  30. Imagino que cuando dices "no puedo conectarme por wi-fi" te refieres a que si que tienes acceso a Internet pero no puedes conectarte a la RasPi. Si este es el caso, es posible que tu router tenga activada la opción de "AP Isolation", que lo que hace es aislar los dispositivos conectados por wi-fi unos de otros, y también de la LAN. Desactiva esta opción de tu router.

    Ya me dirás como has quedado...

    Saludos

    Ignacio

    ResponderEliminar
  31. Hola Ignacio
    Excelente tutorial, muy completo, me parece muy bueno, para los que no sabemos mucho de linux, pero nos gusta explorar algo del sistema operativo. Tengo una raspi, y esta es la tercera vez que le instalo el sistema operativo. y es la segunda vez que se me cuelga, me deja sin red, no soy experto en linux, pero me gustaria que me dijeras por donde puedo comenzar a revisar que es lo que esta mal.

    Saludos

    ResponderEliminar
    Respuestas
    1. mundolinks, cuando hay cuelgues encontrar el orígen del problema puede ser complicado. Yo empezaría comprobando que no tengas la RasPi subida de vueltas (overclocking), y si ese no fuera el caso, sustituiría la tarjeta SD.

      Eliminar
  32. Hola Ignacio,

    Soy totalmente novato en el mundo Linux, por eso, para acercarme un poco me hice con una raspberry y empecé a experimentar.

    La duda que tengo seguro que es una tontería:

    Instalo moebius bien en la tarjeta, voy siguiendo paso a paso todo tal y como dices, pero al crear el usuario pi e intentar acceder a la raspberry con ese usuario no me lo permite (realmente lo que hace es cerrar la ventana de PuTTY, que es el programa que utilizo). La cosa, es que un poco antes, cuando edito el archivo /etc/default/useradd, ya tiene en la línea 8 el SHELL=/bin/bash (y no sh), así que no cambio nada. Luego creo el usuario pi (creo que bien) y le asigno su password.

    Si accedo directamente con teclado a la raspberry si que me deja loguearme con pi (y su password), pero me dice:

    No directoy, loggin in with HOME=/

    y el prompt es: pi@raspberrypi;/$

    Así si pongo sudo su, en la linea de comandos aparece root@raspberrypi:/#

    Como te decía antes, seguro que es una tontería, pero me he quedado ahí atrancado. ¿Puedes echarme una mano?

    Y gracias por el magnífico tutorial.

    ResponderEliminar
    Respuestas
    1. Haz echo $HOME a ver cual es tu carpeta de usuario. Mira a ver si esa carpeta existe y/o si tiene los permisos correctos.

      Después mira a ver si puedes acceder vía ssh. Si sigues sin poder mira a ver si el servidor de ssh está en marcha.

      Ya me dirás

      Eliminar
    2. Hola Ignacio,

      Siguiendo tus instrucciones he hecho el echo $HOME y me devuelve "/". También he buscado la carpeta del usuario "pi" en la carpeta home y no existe.

      Además, he probado a crear otro usuario distinto y nunca le crea su carpeta correspondiente en home (como ya te dije soy muy novato, pero esto he probado a hacerlo en un portátil que tengo con Ubuntu y si me funciona)

      Por otra parte, el servidor SSH si funciona porque puedo acceder a la raspi con el usuario root sin problemas.

      ¿Puedes darme alguna pista sobre donde puede estar el problema?

      Muchas gracias.

      Eliminar
    3. ¿Estás usando el comando useradd o el script adduser? Su funcionalidad es diferente.

      Eliminar
    4. Había utilizado el comando useradd, como indicas en el tutorial. Acabo de probar con el script adduser y ya me ha creado su carpeta en /home y puedo acceder por ssh con el usuario pi.

      Muchas gracias por la solución.

      Eliminar
    5. Buen dia podrian decirme como se agrega un usuario con el script adduser que mencionan

      Eliminar
  33. Estoy deseando poder llegar a casa y empezar a montar el servidor, gracias por el pedazo de tutorial!!

    ResponderEliminar
  34. Hola Ignacio, en primer lugar quería agradecerte el tiempo, el esfuerzo y la dedicación invertidos en realizar un tutorial tan bueno como este. Los principiantes como yo te lo agradecemos de corazón.
    Te escribo, además de agradecido, atormentado por un problema que tengo con mi Raspberry Pi, y es que no tengo manera alguna de conectar por SSH.

    He comprobado que el SSH está activado, y lo he intentado desde un Ubuntu virtualizado (fracaso), Kubuntu live (no me admite el password!) y desesperado lo he intentado desde Windows.
    Con Putty se abre la ventana de terminal, me pide usuario y password, y tal como los acepta se cierra sola la ventana.
    Con Bitvise SSH Client, me dice que autenticación completa, auto opening de SFTP session, auto opening de xterm terminal session, y acto seguido Closing SFTP session y closing xterm terminal session.

    En definitiva, que no puedo meterle mano a la RasPi desde SSH, y no consigo encontrar documentación al respecto. Lo único que encontré lo he probado, infructuosamente, que es añadir SSH: ALL en /etc/hosts.allow.

    ¿Se te ocurre algo que pueda ayudarme?

    Muchas gracias!

    ResponderEliminar
    Respuestas
    1. Bueno, resuelto. Por si a otro tan torpe como yo le pasa lo mismo...no estaba el directorio home creado para mi usuario. Una vez creado, ssh funciona perfectamente.

      Un saludo a todos!

      Eliminar
    2. Jesús, disculpa por el retraso. Las Fallas no me han dejado tiempo de mirar los posts. Me alegro que lo hayas podido solucionar por tu cuenta.

      Eliminar
    3. En absoluto Ignacio, gracias a tí por facilitarnos la vida a los que empezamos!

      Eliminar
  35. xbmc-standalone se ejecuta sobre el "framebuffer", sin servidor X.
    ¿Es posible acceder a esa pantalla remotamente?
    Es que VNC genera una nueva sesión.
    Gracias.

    ResponderEliminar
    Respuestas
    1. Yo creo que no, aunque nunca lo he probado, la verdad.

      Eliminar
  36. ¿No es mejor montar como nfs el disco usb de la rasp para acceder a él desde todas partes?

    ResponderEliminar
    Respuestas
    1. Si te refieres a configurar NFS en la RasPi para acceder al disco conectado al puerto USB, es una buena opción, pero no todos los dispositivos soportan NFS de manera nativa, por ejemplo, Windows. Así que prefiero usar SMB/CIFS. Pero lo dicho, para gusto, colores.

      Eliminar
  37. Quiero hacer el tutorial y además que ejecute el xbmc y manejarlo desde otra habitación. Me está resultando muy difícil.

    ResponderEliminar
    Respuestas
    1. XBMC usa demasiados recursos como para poder ejecutar lo demás con garantías. POr lo que cuesta una RasPi, yo usaría 2.

      Eliminar
  38. Lo que te decía del disco multimedia es que ya se quedaron desfasados. Tengo dos. Me entran ganas de romperlos y sacar los discos durso y ponerles una carcasa y punto. ¿Es lógico?

    ResponderEliminar
    Respuestas
    1. Si el disco multimedia tiene puerto USB para conectar a PC, no es muy lógico sacarlo para ponerlo en otra carcasa, ya que podrías aprovechar la misma

      Eliminar
  39. Sigo preguntándote. Barajo abrir los dos discos multimedia y metérselos a un nas synology (desembolso al canto) y conectarlo a la raspberry con xbmc y al enrutador y a la tele. Obviamente ya no haría tu estupendo tutorial.

    ResponderEliminar
    Respuestas
    1. Me parece una opción muy acecptable. Muchas de las cosas que pongo en este tutorial pueden hacerse con un buen NAS.

      Eliminar
  40. Hola Ignacio, yo apenas me estoy iniciando en el mundo de Linux, específicamente con Ubuntu, buscando algunas cosa sobre como configurar owncloud me encontré este excelente manual, a mi opinión el mejor que me he leído, como es obvio me lei todo y me entraron ganas de comprar una Raspberry mas que todo por lo económicas que son y por el poco consumo, pero siempre hay un pero jajajajaja me puse a buscar donde comprar la raspi y me encontré con una board similar desarrollada en China que se llama CubieBoard, esta me llamo la atención porque supera por el doble las especificaciones de la raspi, la cubieboard en su versión básica tiene 4GB de memoria NAND Flash, 1GB de RAM y procesador a 1Ghz, así como soporte para discos SATA, salida de video HDMI y VGA, en su ultima versión que la llaman CubieTruck tiene casi el mismo hardware pero ahora con 2GB de RAM y 8GB de NAND Flash, me imagino que ya has visto estas boards, ahora mi pregunta es la siguiente: Vale la pena pagar casi 50 dolares de diferencia con respecto a la Raspi? Si comprara la CubieTruck puedo implementar en ella las aplicaciones de este manual? Tu que opinas sobre estas Boards, comprarías una o te quedas con la Raspi?

    Espero me puedas ayudar con estas preguntas y te felicito por el manual, simplemente esta EXCELENTE, saludos desde Costa Rica.

    ResponderEliminar
    Respuestas
    1. No conozco el producto del que me hablas, pero te aconsejaría que antes de tomar una decisión vieras si existe una comunidad importante de gente que apoya y "trastea" el dispositivo, que hayan proyectos de distribuciones portadas al dispositivo, y, obviamente, que los drivers estén bien soportados.

      Eliminar
    2. Gracias por tu respuesta, aquí te dejo el link de la pagina de la CubieBord para que lo veas y me des tu opinión.

      http://cubieboard.org/

      Eliminar
    3. He estado mirando y parece un producto muy interesante para ser trasteado. Una de las cosas que más me ha gustado es el hecho de que puedas instalar el sistema operativo en un disco sata, y dejar de depender de la tarjeta SD. Soporta Ubuntu, y hay proyectos para otras distros de Linux, como Debian, Fedora y ArchLinux. Por el precio que tiene, me parece una opción muy muy interesante. Si al final te decides por la Cubieboard, házmelo saber, por favor, a ver si yo también me animo :)

      Eliminar
  41. enhorabuena por este estupendo tutorial. Lo he seguido todo y efectivamente tengo un auténtico homeserver en casa.
    ... Gracias.

    ResponderEliminar
  42. Mi problemilla era que mi televisión no acepta entrada hdmi por lo tanto he tenido que hacer una chapucilla y es utilizar la xbox 360 conectanda por ethernet a la raspi y al mismo tiempo conectada por wlan a mi red. De esa forma, también puedo jugar en xbox-live porque la raspi me proporciona el acceso a internet que necesito.
    ... Saludos.

    ResponderEliminar
  43. Estoy pensando en poner el DMZ, pero tengo una duda con lo siguiente:
    "La ventaja de usar este sistema es que todas las comunicaciones entrantes que no han recibido solicitud por parte de tus dispositivos en tu LAN se redirigirán a tu RasPi, y él ya decidirá que hacer con ellas."

    ¿Como decide que hacer con las conexiones? Yo tengo configurado iptables, ¿se configura de forma diferente con DMZ?

    ResponderEliminar
    Respuestas
    1. El DMZ es una configuración de tu router en la que rediriges conexiones entrantes a una máquina en tu red. ¿Dónde tienes configurado iptables?

      Eliminar
  44. Hola Ignacio, he seguido los pasos de tu blog y no he tenido muchos problemas, pero ahora intento conectar la raspberry a internet por medio de wifi y no lo consigo, por ethernet va bien, pero wifi no, ya la he tratado de configurar como indican muchas webs y nada. ¿alguna pista? ¿algo que he hecho siguiendo tu blog afecta a esto? al hacer lsusb aparece el adaptador usb compatible con raspberry que tengo (realteck)

    ResponderEliminar
  45. Buenas Ignacio, despues de configurar dnsmasq no consigo que los dispositivos wifi se conecten a la red por dhcp solo si les asigno ip fija manualmente tiene alguna solucion.
    Gracias

    ResponderEliminar
  46. Estupendo tutorial Ignacio,muy completo.
    Llevo en mente comprar una Raspberry Pi que pretendía que fuera un servidor de ficheros, de impresión y de películas para reproducir en la SmartTV, pero con este tutorial veo más posibilidades.
    La duda que tengo es si el polémico punto 2 lo podré realizar sobre el router de ONO Netgear CG3100D, ya que mi ADSL es de fibra y el router de ONO suele dar más problemas que otros para trastearlo.

    Un saludo, Luis

    ResponderEliminar
  47. Hola, tendras algo de reconocimiento facial con el raspberry, que pueda reconocer el rostro e identificarlos para validar contra una base de datos, o permitir identificar la persona y darle acceso a algo

    ResponderEliminar
  48. Estimado, primero que todo, felicidades, un tutorial muy completo. Se nota tu manejo y pericia.

    Hace tiempo quiero levantar cosas similares en mi lan de casa, con esto, facil y economico creo que lo haré.

    Mi pregunta es la siguiente: ¿Algún programa que funcione como proxy con portal cautivo que funcione sin problemas en esta distro?

    Esto es porque le doy internet a un par de vecinos y me gustaria restringir el acceso y controlar la taza de transferencia.


    Saludos y hasta pronto.

    ResponderEliminar
    Respuestas
    1. Nunca he encontrado uno que hiciera todo lo que yo quisiera. Si lo encuentras, házmelo saber.

      Gracias

      Eliminar
  49. Muchas gracias por el post Ignacio, gracias a el voy a pasar un long weekend divertido con mi raspberry.

    Una pregunta, ¿Hay posibilidad de que conectar dos unidades de disco USB y hacer un Raid 1 con ellas?

    Saludos

    ResponderEliminar
    Respuestas
    1. No veo por qué no. Sólo asegúrate de utilizar unos discos duros alimentados a la red eléctrica.

      Eliminar
  50. Siento no poder contestar a todos los mensajes en su debido tiempo. En algunos casos es debido a mi ignorancia, en otros a que no tengo mucho tiempo.

    ResponderEliminar
  51. Si, 256MBs no es suficiente, al menos para correr Crashplan despreocupadamente. Yo he intentado algo similar con un NAS de Synology nuevo pero muy ligero (256MBs RAM - Marvell Armada 370 800Mhz) y a pesar de que todo fue bien inicialmente, tras unos días el backup nunca conseguía correr, y era por las limitaciones de la RAM.

    Después de un mes peleándome a ratos libres, decidí abortar. Claro que casi tenía los 350GBs de datos copiados, pero una CPU al 100% y los topes de RAM no me daban muy buen rollo ;)

    Crashplan recomienda 1GB de ram ..... a partir de ahí ya pasé el backup a un viejo guindows XP y todo mejor, pero me gustaría ganar esta partida ... alguna idea ? ;)

    ResponderEliminar
    Respuestas
    1. Mi RasPi viene con 512MB, con lo cual si funciona relativamente bien. Es cierto que CrashPlan se ralentiza, incluso con mas de 1GB de RAM, si tienes muchos archivos. En mi caso, a mi me va decentemente para copiar mis archivos, documentos, fotos, algo de música y vídeo. Para hacer copias de mucho contenido quizás se quede corto, no solo en la RasPi, si no en cualquier ordenador viejuno (ten en cuenta que CrashPlan encripta las copias de seguridad). Por ejemplo, incluso con rsync sobre ssh he observado lentitud al hacer copias. Cualquier copia en las que intervenga encriptación vas a notar lentitud. Prueba a hacer copias con cualquier programa a través de Samba, NFS, o rsync sin tunel ssh.

      Eliminar
    2. Bueno, yo creo q 256MBs es ridículo para gestionar el sistema + un crashplan. Veo errores de segmentación de memoria por todas partes. La gracia es usar crashlan q para eso pagué el plan anual para la familia (hasta 10 dispisitivos, es un NAS de mi familia, lo mantengo en remoto). Yo ya tengo mi NAS DS1512+ con 2GBs de RAM y fucionando de mil maravillas.

      En fin, que pierto esta partida ! ;)

      Eliminar
  52. Hola Ignacio
    Una pregunta.
    Quiero hacer un servidor de musica unicamente. Que pueda ver las canciones de mi disco duro en un navegador web como safari y poder cambiar la cancion, atras, adelante, etc.
    La Pi es una buena alternativa o me recomendarias otra placa mas potente y cual?
    Muchas gracias

    ResponderEliminar
    Respuestas
    1. Unknown, yo uso Subsonic para estos menesteres. Además de su interfaz web, puedes usar terceras aplicaciones como iSub (iOS), D-Sub (Android), Jamstash (ChromeOS)... A menos que desees transcodificar con la Pi no tendrás problema.

      Eliminar
  53. Hola Ignacio

    Cuando voy a configurar calibre, al terminar la instalación trato de configurar el archivo ~/.vnc/xstartup y me sale un archivo de texto nuevo, no me sale ninguno que lleve configuración. Hago algo mal?

    Un saludo y gracias

    ResponderEliminar
  54. Hola Ignacio !! Muy interesante el tutorial y me da ganas de seguirlo completo pero dado que han pasado dos años

    desde su publicacion en enero del 2013 y que ademas ya ha salido la raspberry pi 2 com 4 nucleos y 1Gb de RAM ,

    tal vez sea necesario "aggiornar " el tutorial y las consideraciones en el software a instalar atento a las nuevas

    posibilidades que se ofrecen hoy y recogiendo la mejor experiencia que hayas tenido de estos dos años de uso...
    Ojala puedas publicar la version 2.0 de este impecable tutorial y nosotros tener la posibilidad de aprender algo

    muy util y explicado con buen criterio !!

    Desde ya muchas gracias por tu esfuerzo,
    pablou25@gmail.com

    ResponderEliminar
    Respuestas
    1. Gracias por tus comentarios. Desgraciadamente, o mejor debería decir, afortunadamente, mi vida profesional dió un giro tremendo en el 2013 y desde entonces no he podido seguir manteniendo el blog. En estos momentos no puedo dedicar ni una hora a la semana a Linux... Quizás más adelante...

      Eliminar
  55. Hola Ignacio muchas gracias por el tutorial la parte 2 es explicada es dificil de encontrar :)

    Me he quedado atascado en el punto en que se ha de modificar el archivo
    etc/resolv.conf

    me dice que este es inmutable y que no lo puedo alterar manualmente :(
    he estado buscando y he probado lo siguiente:

    chattr -i resolv.conf

    para quitarle esta inmutabilidad pero me sigue dando error

    He tratado de modificar el fichero de /etc/interfaces tal como sugería un foro añadiendo a
    este los nombres de dominio DNS pero tampoco da resultado.

    Sabe usted que puede estar pasando??

    Muchas gracias , un saludo

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. No entiendo por qué le está sucendiendo esto. En mi sistema, estos son los permisos de mi resolv.conf:

      ~$ ls -la /etc/resolv.conf
      -rw-r--r-- 1 root root 48 jul 26 21:04 /etc/resolv.conf

      ¿Qué le sale a Vd?

      Eliminar