Objetivo
En mi caso estoy buscando compartir algunos videos, música y libros digitales utilizando un servidor web y dlna. Además usaré este tipo de instalación como base para el desarrollo de nuestra plataforma para IoT (Internet of Things).
Lista de materiales
- Cubieboard A10
- Disco duro SATA de espacio a elegir (yo estoy usando 1TB)
- Cable SATA + 5V breakout
- Adaptador o fuente de alimentación de 5V a 2A
- Wifi DWA-131E1 marca D-Link
Instalando la plataforma
Descarga la imagen
Primero hay que descargar la imagen. La que estoy utilizando y me funcionó muy bien es la Cubian-nano-x1-a10-hdmi.img. Aquí el torrent para descargarlo.
Si no tienes 7z, lo puedes descargar en ubuntu así:
sudo apt-get install p7zip
Una vez descargado, puedes descomprimir el archivo así:
7zr x Cubian-nano-x1-a10-hdmi.img.7z
Copia la imagen a la memoria uSD
Coloca tu memoria sd en el lector y copia la imagen a la misma. Yo estoy usando micro sd’s de 8GB y me han funcionando muy bien.
sudo dd if=Cubian-nano-x1-a10-hdmi.img of=/dev/mmcblk0
Nota que en mi caso la memoria sd se detecta como /dev/mmcblk0 y así como aparece lo uso. NUNCA uses la partición /dev/mmcblk0p1.
Configurando el sistema
Inicia el sistema
Arranca tu sistema conectando un monitor y un teclado. Sigue el wizard para realizar la configuración inicial y reinicia el sistema.
Actualiza el sistema
Actualiza los paquetes y el sistema para tener la última versión.
sudo su -
apt-get install aptitude
aptitude update
aptitude upgrade
Wifi
Instalando el módulo
Estoy usando una tarjeta DWA-131E1 de D-Link, su módulo no está incluido en la distribución, así que lo voy a compilar. Es relativamente fácil encontrar este hardware en México y también es económico, por eso lo incorporé al diseño.
aptitude install usbutils
aptitude install firmware-realtek firmware-linux
aptitude install build-essential git
aptitude install linux-headers
aptitude install linux-headers-3.4.79-sun4i
git clone https://github.com/romcyncynatus/rtl8192eu.git
Ya que tenemos todos los paquetes necesarios, ahora sí lo compilaremos.
cd rtl8192eu
Comenta la siguiente línea en el archivo Makefile anteponiendo el numeral #
#EXTRA_CFLAGS += -Wno-error=date-time
Guarda el archivo y comienza la compilación, posteriormente instala los binarios
make ARCH=arm KVER=3.4.79-sun4i
make ARCH=arm KVER=3.4.79-sun4i install
Agrega las opciones del módulo, no estoy muy claro si las debería de llevar o no, si alguien ha hecho más pruebas, me vendrían muy bien sus comentarios.
Crea el archivo /etc/modprobe.d/8192eu.conf
options 8192eu rtw_power_mgnt=0 rtw_enusbss=0
Edita el archivo que carga los módulos al arranque para que esté presente cuando inicies la cubieboard. /etc/modules
#wifi
8192eu
Reinicia y prueba que se cargue el módulo correctamente. Una forma sencilla es ejecutar el comando:
lsmod | grep 8192eu
Configurando el SSID
Ejecuta el siguiente comando, reemplazando Mi_SSID por el nombre de tu red.
wpa_passphrase Mi_SSID
La salida será parecida a esto:
network={
ssid="Mi_SSID"
#psk="my_very_secret_passphrase"
psk=ee80f3ecd6496a956e76f7c0332960326951f8edee80f3ecd6496a956e76f7c0332960326951f8ed
}
Para que se configure al inicio del sistema tenemos que editar /etc/network/interfaces.
auto wlan0
iface wlan0 inet dhcp
wpa-ssid Mi_SSID
wpa-psk ee80f3ecd6496a956e76f7c0332960326951f8edee80f3ecd6496a956e76f7c0332960326951f8ed
Prueba que funcione levantando la interface y revisando que se haya configurado correctamente con ifconfig.
ifup wlan0 && ifconfig wlan0
Almacenamiento
Preparar el almacenamiento
Apaga el sistema y conecta el disco duro de 2.5″, seguramente el sistema le asignará el descriptor /dev/sda1, lo puedes checar con un dmesg.
Formatea con ext4
mkfs.ext4 -I 256 /dev/sda1
Móntalo permanentemente
Edita el archivo /etc/fstab, es el lugar en donde el sistema guarda la tabla para montar sistemas de archivos automáticamente. Agrega al final la siguiente línea.
/dev/sda1 /archivos ext4 noatime,dealloc 0 0
Arregla los locales
Encontrarás errores sobre los locales si cambiaste el idioma de inglés a español. Aquí algunos tips de como arreglarlo:
locale-gen
dpgk-reconfigure locales
Instalando el miniDLNA
Ahora configuraremos el servidor miniDLNA que nos ayudará a compartir la música y los videos con smartTVs y consolas.
aptitude install minidlna
Edita el archivo /etc/minidlna.conf y cambia las siguientes líneas:
media_dir=/mi_ruta
presentation_url=http://mi_ip:8200
Cambia /mi_ruta por el directorio en donde están tus archivos a compartir, también cambia mi_ip por la IP que tu sistema usará. (también sería recomendable configurar tu interface wlan0 con una dirección estática para que nunca cambie).
Instalando el servidor web
Un servidor web muy ligero y rápido es nginx, en lo personal lo prefiero a apache para aplicaciones pequeñas. No viene preeinstalado en el sistema, así que hay que instalarlo y configurarlo.
aptitude install nginx
Edita el archivo /etc/nginx/sites-enable/default, encuentra la sección que comienza con «location /» y agrega esto entre las llaves:
autoindex on;
La línea anterior te permitirá ver todos los archivos y navegar entre ellos.
Aquí puedes agregar un sistema sencillo de autenticación como un htaccess o similar.
Happy sharing!!