Saltar al contenido
Pegar imágenes en el foro, mediante equipos móviles ×

Construyendo un sistema DLNA Basado en un Linksys NSLU2


Recommended Posts

Recien, encontré un poco tiempo para intentar armar un sistema DLNA en me
departamento. Pensé en compartir el logro con el foro.

El sistema consiste en lo siguientes componentes:

. Un punto de acceso TP-Link TL-WRD3600.

. un disco duro SimpleTech (prehistorico) externo USB de 500 GB formateado con NTFS que contiene la música, en flac y mp3.

. Dos adaptadores de powerline, que permite la creación de una red local usando el sistema eléctrico del depa.

.Un Linksys NSLU2 (que se llama con affección "The Slug" babosa porque con su CPU de 133 MHz se lo considera lenta).

El sistema de estereo consiste en un Cambridge Audio DacMagic (el modelo
desponible antes 2009), fuente de poder Pangea P100 (para el DacMagic), un
Musical Fidelity A5, parlantes Jamo S606 y un subwoofer Martin Logan Grotto.


En términos genrales, armando el sistema involucró los siguientes pasos.

 

1.  Preparar el punto de acceso.

Instalé la última versión del software OpenWRT (Chaos Calmer 15.05.1) en el
punto de acceso. OpenWRT es una distribución de Linux para despositivos embedded con poco memoría.  Es open source y totalmente gratis.

Luego, instalé los modulos de almacenaje USB y el modulo para el sistema de
archivos NTFS. También, instalé Samba para tener acceso el disco duro desde mi
notebook por Wi-Fi. La última cosa que instalé fue minidlna, un servidor de
media DLNA para distribuir la música a los renderers de media DLNA por la red
local.

Conecté el disco duro a un puerto USB en el punto de acceso y conecté el red LAN
a un adaptador powerline pr ethernet que es enchufado cerca del punto de acceso.

Por supuesto, fue necesario de configurar varios archivos por mano y casi todo hice por una connección ssh al punto de acceso.

 

2. El Linksys NSLU2.

Instalé la misma versión de OpenWRT en el NSLU2. el NSLU2 tiene muy poco memoria y la versión de OpenWRT para le NSLU2 está bien mínima.
Tuve que instalar el sistema completo de USB, despositivos para USB PCI, el sistema de audio alsa para Linux, y los controladores para tarjetas de sonido por USB.

Para el reproductor, tuve que usar mpd-mini, una versión minimal de mpd (Music
Player Daemon), porque el NSLU2 no tiene suficiente memoria flash para instalar
la versión completa. mpd-mini solo tiene codecs para descodificar 4 formatos: wav, flac, ogg y mp3. Al final, instalé umpdcli, un cliente para mpd que
puede comunicar con puntos de control DLNA y rendereres de media DLNA.

Despues esto, me queda con aprox. 250 KB en la partición flash para software.  ¡Acabé!

Luego, en el living conecté el DacMagic al NSLU2 por USB y enchufé otro adaptador powerline al puerto ethernet del NSLU2.

 

3. Funcionamiento.

Insstalé un punto de control en el iPhone. Para probar cosas, estoy usando el
app gratis de Linn que se llama Kinksky. Tienen un app nuevo que promocionan en
este momento, Kazoo, pero no lo he mirado todavía.

entonces, el app se permite navigar la música guardado en el disco duro.
También, se puede eligir el renderer en lo cual se quiere reproducir la música y
se puede controlar el renderer. El servidor de media DLNA en el punto de acceso
mando la música al renderer (upmpdcli) en el NSLU2. Luego, upmpdcli envia la
música a mpd que usa sus codecs para decodificar la música y mandar un flujo de
bits en formato pcm a la tarjeta de sonido USB, qu ees el DacMagic en el caso
mío.

encontré dos problemas grandes con el funcionamiento cuando intentar probar el sistema.

1. Cada vez que apagué el DacMagic, fue necesario de reiniciar el NSLU2. el
problema fue que mpd no estaba detectando y reconectando al DacMagic cuando lo
aprendí de nuevo. El NSLU2 consuma casi nada de luz, luego se puede dejarlo
funcionando siempre, pero es super lento para iniciarse. El requiere  un o dos
minutos para hacerlo. en contraste, el DacMagic no es eficiente para nada.
Entiendo que las etapas de buffer y amplificación despues el dac son puro clase
A y el equipo consume alrededor de 30W, luego prefiero apagarlo cuando no lo uso.

2. Pude escuchar unos pops (como un vanilo) cuando tocaba archivos flac. Casi no ocurrió con archivos mp3.


Me tomé una semana para solucionar estes problemas. Las soluciones fue

 

1. Escribir un escript para reiniciar mpd cuando el NSLU2 siente la conección de un periférico USB, y

 

2. Crecer el tamaño del buffer que ALSA usa para mando datos a la tarjeta de

sonido. Por defecto, ALSA usaba un buffer de 16539 bytes. Lo dije usar un buffer
de 32768 bytes y ahora tengo audio limpio sin artefactos.

 

Ahora, me gustaría ver como sería posible de tener la versión completa de mpd en el NSLU2 tal que puedo tocar archivos en alac y aac (m4a) y otros formatos.

 

Para terminar, aquí está un foto del NSLU2 a lado del DacMagic y su fuente de alimentación.

Creo que es demasiado grande para poner directamente en el foro, luego pongo un link donde se puede bajarlo si la interesa:

https://www.dropbox.com/s/14q7vwm5y8ipqi2/DacMagic%20Y%20NSLU2.JPG?dl=0

  • Upvote 2
Enlace al comentario
Compartir en otros sitios

Muy interesante, sobre todo por la capacidad de hacer una solución mínima.

Yo he experiemntado bastante con NAS y hace poco empecé a jugar con una berry para audio. Todo un mundo...

Sansui G-4700, Technics SU-V6X, Yamaha TX-950, Technics SL-D2 + Shure V15, Revox B77 2T y 4T, Technics RS-M45, Nordmende Tannhäuser FM stereo a tubos más uno que otro cachureo :)

Enlace al comentario
Compartir en otros sitios

Interesante proyecto.

Yo por mi parte, sigo ocupando mi router asus con un disco de 320 gigas fujitsu, sólo música (estoy en vías de mejorar el apartado audio en mi pieza, aprovechando unos parlantes vintage sony que suenan increíbles) También tengo un mini pc con placa mini itx con un procesador athlon como servidor, con xpenology, basado en synology dsm.

Enviado desde mi SM-G935F mediante Tapatalk

Enlace al comentario
Compartir en otros sitios

Aquí está el próximo episodio de esta aventura.

Despues del comentario de Herbert, decidí continuar en el modo minimalista.

 

Logré agregar un llave USB de 128MB.  Hice dos particiones en la llave,
una ext4 de 96MB y una swap de aprox. 27MB. Luego mude el sistema de archivos root a la llave y la reconfiguré a montarlo cuando el NSLU2 se inicia.

Despues tuve suficiente espacio para instalar la versión completa de mpd desponible para OpenWRT.

 

Sin embargo, todavía no pude tocar archivos en el formato alac (Apple lossless).
Despues de más investigación por medio de google, aprendí que mpd para OpenWRT no usa la versión
completa de libffmpeg, solo instala por defecto una versión mini que no incluye el decodificador para alac.
Luego, eliminé este paquete y instalé la versión completa.

 

Por fin, ¡éxito! Ahora, puedo tocar mp3, alac y flac y para hacer esto, necesité 20MB de espacio en vez de 4.3MB.

 

Lo que no puedo tocar son archivos de Apple con pérdida (aac). Bueno, tocan,
pero el sonido está totalmente interumpido. El problem es que libfaad2 está
compilado usando aritmética de punto flotante. El NSLU2 tiene CPU de ARM sin FPU
y su 133MHz no basta para correr el decodificador en tiempo real. Se requiere
una implementación que usa puro cálculos basados en enteros, como lo que usa los
iPods.
Quizás es posible compilar libfaad2 para usar cálculos de enteros, pero no sé como hacerlo.

 

Es todo para ahora.

Enlace al comentario
Compartir en otros sitios

6 hours ago, HDFAN said:

Interesante proyecto.

Yo por mi parte, sigo ocupando mi router asus con un disco de 320 gigas fujitsu, sólo música (estoy en vías de mejorar el apartado audio en mi pieza, aprovechando unos parlantes vintage sony que suenan increíbles) También tengo un mini pc con placa mini itx con un procesador athlon como servidor, con xpenology, basado en synology dsm.

Enviado desde mi SM-G935F mediante Tapatalk

 

De curiosidad ¿Tiene el disco duro conectado al router y compartido por Samba/NFS/otra técnica o está conectado al mini pc y compartido desde allí?

Enlace al comentario
Compartir en otros sitios

 

De curiosidad ¿Tiene el disco duro conectado al router y compartido por Samba/NFS/otra técnica o está conectado al mini pc y compartido desde allí?

El disco está directo al router asus, n66u. En el firmware tiene incluido el servidor samba, torrent, dnla

Enviado desde mi SM-T713 mediante Tapatalk

Enlace al comentario
Compartir en otros sitios

Buena honda tu router, HDFAN. Me perece que tiene la mayoría de lo que se quiere, con la ventaja que no fue necesario instalar todo si-mismo.

 

Bueno, averigué un poco más el tema de por qué no puedo tocar los archivos de Apple Lossy (m4a-aac). Me perece que libfaad2, que es la biblioteca responsable para decodificar este formato, ya está compilado para usar cáculos de punto fijo. Luego, no me queda claro en este momento cual es el problema.

 

Por lo menos, ahora puedo tocar wav, flac, mp3, orgg, alac, y probablemente otros formatos que están incluyedos en ffmpeg.

Enlace al comentario
Compartir en otros sitios

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder en este tema...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Crear Nuevo...