9 sept. 2007

Tutorial: Proyecto reproductor multimedia Reloaded

El reproductor multimedia basado en un Via C3 se quedó corto de potencia enseguida, por lo que estudié cambiarme a un C7 mucho más potente y orientado a multimedia, además de ser conservador en cuanto al consumo. Como sistema operativo elegí linux porque tienes el control absoluto de todo; es totalmente configurable (los PC clónicos ganaron la batalla por ser configurables y ampliables; si la historia se repite el futuro es sistemas como linux donde todo pueda ser a gusto del usuario). Entre los cientos de versiones de linux prefiero Kubuntu; aunque está menos pulido que Ubuntu (Ubuntu es más sencillo; hasta mi madre lo usa, pero menos configurable); versión 7.04 que trae Kde 3.5.6.

Primeros problemas: el sonido

Buscando en internet la mejor opción encontré la mini-itx en EE.UU de la marca Jetway, de lo que me he arrepentido en parte por la baja calidad de sus componentes (recibes lo que pagas); el chipset de sonido AC97 no aguanta si se le pone al máximo volumen (desconectándose automáticamente), por lo que tengo que procurar subir mucho los amplificadores para no tener que subir el volumen en el ordenador por encima del 80%.
Podría solucionarlo añadiendo una tarjeta de sonido pero al haber ocupado ya la única ranura PCI por una capturadora ya no era viable.


Cambiando el disipador por uno sin ventilador



Como se puede apreciar en la imagen es una placa con todos los componentes muy apretados. El procesador necesita ventilador, y le han colocado uno pequeño con un disipador un tanto ineficiente, ya que está orientada a poder utilizarse en sitios extremadamente pequeños (cabe hasta dentro de un reproductor de cinta de coche).
Sin embargo en la caja va a tener sitio de sobra (la caja admite hasta microATX), por lo que primero que voy a hacer es intentar eliminar todos los ventiladores posibles y le pondré un disipador que no estaba utilizando de mi anterior ordenador, un XP-90 de Thermalright.


Colocar el disipador me ha costado lo suyo, ya que el espacio es muy reducido (en la imagen se ve con el disipador original debajo, recortado y unido; el primer intento) por lo que tenía que elevarlo sobre el chip para evitar tocar los componentes de alrededor, asi que al final la opción que mejor transmitía el calor ha sido colocar un pedado de aluminio de 30x30 mm x 8 de espesor con pasta térmica en la zona de contacto con el procesador y cola epoxi alrededor para mantenerlo en su sitio (quedó descartado unirlo con los amarres originales). Esta operación ha sido delicada, y en el proceso he perdido la garantía (más me valía haberlo hecho más adelante, pero en fin, el modding me pierde).


A pesar de lo aparatoso del ventilador, no consigue eliminar suficientes calorías por sí mismo (queda parcialmente tapado), por lo que me he tenido que poner el mono de ingeniero de túnel de viento de McLaren (un guiño a los alonsistas por la victoria del 23-7-07 en Nürburgring), y con trozos de espuma y cinta de embalar he redirigido la circulación de aire de delante hacia atrás de forma que pase por las aletas del disipador. De esta forma con un único ventilador de 12 cm a 5V, con lo que consigo pocas r.p.m. (el silencio es primordial para mí), ventilo todos los componentes (el procesador alcanza máx. 70ºC con 23º ambientales). Es recomendable, cuando se ventila menos de lo necesario, activar la seguridad de la BIOS de forma que reduzca su velocidad o se apague cuando el procesador alcanza altas temperaturas.

La caja es una cube adquirida en Coolmod, con mucho espacio para lo que necesite. Estuve mirando cajas más pequeñas ya que quedan mejor en la salita, pero suelen ser demasiado pequeñas como para albergar componentes estándar, por lo que el desembolso puede ser mucho mayor.


El reproductor multimedia elegido: mplayer

Utilizo mplayer para ver todo tipo de videos (excepto los DVD's ya que se manejan mejor con el xine); y utilizo esta configuración en la asociación del Konqueror:

mplayer -quiet -fs -double -framedrop -vf pp=x1hdeblock:autoq/x1vdeblock:autoq/dering:autoq -autoq 6 -slang es,en


Significado de los parámetros:
-quiet: Se desactivan los mensajes de ejecución.
-fs: Se abre a pantalla completa.
-double: Se activa buffering doble; se procesan dos frames, almacenando uno en memoria.
-framedrop: Si no puede mostrar todas las imágenes se salta algunos automáticamente.
-vf pp: Se activa el filtrado de vídeo, en este caso se activan algoritmos para mejorar la calidad en caso de que haya tiempo de cpu disponible.
-slang es,en: Preferencia del lenguaje en subtítulos a español, o inglés, según disponible.




Características
Pinchar en las imágenes para verlas a tamaño original

Características de la placa base WE2G (Jetway):

cat /proc/cpuinfo: (powersave activado)
processor : 0
vendor_id : CentaurHauls
cpu family : 6
model : 10
model name : VIA Esther processor 2000MHz
stepping : 9
cpu MHz : 800.000 (velocidad sin carga; 2000 con carga)
cache size : 128 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge cmov pat clflush acpi mmx fxsr sse sse2 tm nx pni est tm2 rng rng_en ace ace_en ace2 ace2_en phe phe_en pmm pmm_en
bogomips : 1601.04
clflush size : 64

Vemos con cpuinfo que soporta mmx, sse, sse2 y sse3 (pni) (además de otras interesantes como aceleración de encriptación ace y ace2). Truecrypt no aprovecha esta aceleración por lo que sólo se consiguen 10 Mbytes por segundo de transferencia máxima con la versión 4.3a de Truecrypt.

glxgears:
4962 frames in 5.0 seconds = 992.267 FPS
4999 frames in 5.0 seconds = 999.798 FPS
4960 frames in 5.0 seconds = 991.861 FPS
4342 frames in 5.0 seconds = 868.306 FPS
4191 frames in 5.0 seconds = 838.129 FPS

Con el 3Dmark 2003 la puntuación (irrisoria) ha sido de 100 puntos.

david@Imanol-desktop:~/programas/Linux/gambas2-1.9.49$ lspci
00:00.0 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.1 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.2 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.3 Host bridge: VIA Technologies, Inc. PT890 Host Bridge
00:00.4 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.7 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
00:08.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)
00:0a.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)
00:0f.0 IDE interface: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
01:00.0 VGA compatible controller: VIA Technologies, Inc. UniChrome Pro IGP (rev 01)


Consumo
Consume bastante; unos 35W aunque no hagas nada, si contamos disco duro SATA 250; capturadora VTR-150, DVD-ROM y fuente alimentación y le metemos caña llega a picos de 85 W, 55W sin hacer nada (comprobado con un medidor de consumo con una exactitud del +-5%). Así que por consumo no está mal pero podría consumir menos en "idle".
Esto se ha comprobando usando un kernel 2.6.22 con soporte para el C7 y para el modo de ahorro "enhanced powersave" presente en el mismo (enhanced powersave del núcleo (kernel) es experimental, por lo que sólo activarlo para hacer pruebas. En cualquier caso el controlador de longhaul funciona igual de bien).
Es sorprendente que consuma tanto sin carga; el problema es que sólo los procesadores Via C7-M (utilizados en portátiles) soportan los "P-states" que permiten regular el consumo variando el voltaje y frecuencia (y no sólo la frecuencia como está pasando en este caso).

En esta página hay un completo tutorial de configuración de Linux para este tipo de miniITX (en inglés).

Alta Definición con el chipset CN700
Es bastante potente para vídeos HD (alta definición) aunque depende del codec utilizado; si utilizas vídeos en xvid 1.1 y sonido mp3 puede perfectamente con vídeos 720p (1280x720 puntos) aunque con los de mayor resolución 1080i (1920x1080 pixels 16:9) el vídeo se mueve a saltos con escenas de mucho movimiento. Esto se ha comprobado con el mplayer compilado especialmente para aprovechar todas las capacidades del procesador.
En cambio, si esperamos reproducir vídeos con el formato más novedoso, el x264 que consigue gran calidad de imagen con menos tamaño, hasta que no se optimice el decodificador de mplayer para este códec ya a 720p la imagen va a saltos en escenas con mínimo movimiento.
Por otro lado si queréis una aceleración mpeg2 como la del chipset CN400 os podéis olvidar; según las palabras de un desarrolador de Via:
Las buenas características del chipset CN400 han desaparecido, esto incluye:
- Capacidad AGP DMA del decodificador Mpeg2. Esto implica que el procesador debe esperar a que el descodificador de mpeg esté listo, no se puede encolar datos mpeg directamente al descodificador. El procesador estará más ocupado, en torno al 20%.
- Capacidades HD (Alta Definición) del decodificador Mpeg2. El decodificador hardware no es capaz de manejar nada por encima de 1024x1024. Tampoco ayuda mucho la descodificación por software utilizando un procesador Via.
Conviene añadir estas líneas a /etc/bash.bashrc para aprovechar mejor las capacidades del procesador:
export CHOST="i686-pc-linux-gnu"
export CFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer -mmmx -msse -msse2"
export CXXFLAGS="${CFLAGS}"

Algunas pruebas de velocidad (benchmarks)
Como se puede apreciar en las siguientes imágenes se han solucionado los problemas de potencia que tenía el Via C3, pero está bastante limitado si lo comparamos con los últimos procesadores Core Duo de Intel o Turion de AMD. Utilizando el Sisoftware Sandra LE, podemos comparar este procesador con otros que tengan resultados parecidos para tener una idea de su potencia.


(Imagen 1) Potencia multimedia
(Imagen 2) Potencia de cálculos ariméticos y de coma flotante
(Imagen 3) Velocidad de memoria (El sistema tiene DDR2 533 Mhz)

(Imagen 4) Este gráfico nos muestra la velocidad de la caché L1 y L2; ha mejorado con respecto a su predecesor C3 pero se queda por detrás del Celeron 2 Ghz.

Conclusión
Esta placa está pensada para montar pequeños equipos y que a la vez puedan correr las aplicaciones más exigentes; con los programas multimedia se defiende bastante bien si no somos demasiado exigentes pese a su bajo consumo y potencia, como un reproductor para el coche gracias a su pequeño tamaño cabe en el sitio de un radiocasete o en la guantera.

Si pretendes encriptar el disco duro y archivos, un reproductor de vídeo de hasta 1080x720 pixels (codecs xvid y mp3) o si necesitas que sea mini-itx por su tamaño, merece la pena esta placa base, que es ideal para tunear y crearte un mini-PC. Si usas linux tienes la ventaja de que el soporte es muy bueno debido a que Via ha convertido los controladores en código abierto, por lo que su desarrollo y mejora más allá del soporte que Via pueda dar es posible. Sin embargo el soporte 3D por parte del equipo Mesa es limitado y con errores a fecha de hoy 8-10-07, por lo que si utilizas aplicaciones 3D se colgará el equipo continuamente, a menos que instales los controladores de Via.

En otros casos es mejor coger una placa AMD con un Sempron con el que conseguirás menor consumo en idle (también disponibles en tamaño microATX con tarjeta gráfica incorporada) para conseguir mejor soporte 3D, aunque a día de hoy el único procesador que supera al C7 en unidades de trabajo por vatio consumido son los Core Duo de Intel.


Si has llegado hasta aquí, enhorabuena lector. Si ves alguna incorrección o quieres hacer una consulta puedes hacerlo dejando un comentario.



6 comentarios:

  1. ¡Excelente artículo! y, muchas gracias por la referencia :-)

    ResponderEliminar
  2. David, una preguntilla...

    Parece que la caja CUBE es ATX o Micro-ATX según las especificaciones del fabricante en: http://www.nox-xtreme.com

    Entonces ¿cómo atornillas la placa Mini-ITX? ¿Lleva los agujeros necesarios? ¿Los hiciste tú a mano con un taladro? ¿Has atornillado unos y dejas otros sin atornillar?

    Sabiendo lo manitas que eres, si me dices que has soldado las hembras de los tornillos al chasis o algo así, me lo creeré ;-)

    ResponderEliminar
  3. Gracias por la pregunta. Los agujeros coinciden con los de micro-ATX, sólo aprovechas la mitad de la base pero queda perfecto. No tuve que hacer ningún apaño, por eso ni lo comenté (de ahí mi comentario que vale hasta micro-ATX).

    Saludos

    ResponderEliminar
  4. ¡Gracias! ¡Entendido!

    Me he fijado mejor y por ejemplo, en esta foto de una placa Micro-ATX de la Wikipedia veo que los agujeros de dentro sí que deben de coincidir más o menos con los de una placa Mini-ITX.

    ¡Pues perfecto! Ya sé que puedo poner una Mini-ITX en prácticamente cualquier caja :-)

    Aunque en el whitepaper de VIA sobre Mini-ITX leo que:

    It can also be mounted in a standard FlexATX and MicroATX chasses in which modifications have been made to the chassis mounting hole positions.

    ¡No sé qué pensar! ¿Valdrán la mayoría de cajas ATX para poner una placa Mini-ITX?

    ResponderEliminar
  5. Super Coco, lo normal (si siguen el estándar) es que sí puedas montarla en cualquier caja.

    ResponderEliminar

Puede dejar su comentario. Los comentarios descalificativos o sin relación ninguna con el tema tratado serán eliminados sin previo aviso. Antes de plantear una duda, asegúrate de que la respuesta no está en otra entrada del tema visitando la etiqueta que hay al final del artículo para verlos todos; muchas veces lo que planteas puede haber sido corregido o comentado en otra entrada posterior.