Reproductor multimedia con Linux: emtec n200

July 22nd, 2009

Recientemente he adquirido un reproductor multimedia para ver todo tipo de ficheros en la Television, el cacharro ha sido un Emtec n200, el cacharro es como un disaco duro multimedia, pero sin tener disco duro incorporado, por lo que puede leer discos usb conectados, o lo que es mas interesante montado recursos compartidos de otro ordenador. Pues bien urgando un poco mas resulta que esta montado con Linux y Emtec ha liberado la modificaciones opensource que han realizado MovieCube_SourceCode. Por ahora no se han desarrollado firmware alternativos, pero todo hace pensar que iran apareciendo cosas, mientras tanto le he pasado un nmap al cacharro y me he encontrado con el puerto 80 y el 23 abiertos:

n200


nmap 192.168.1.100

Starting Nmap 4.62 ( http://nmap.org ) at 2009-07-22 17:09 CEST
Interesting ports on 192.168.1.100:
Not shown: 1713 closed ports
PORT STATE SERVICE
23/tcp open telnet
80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 8.995 seconds

Accediendo por web aparece un cgi que suma de ejemplo, ¡Que cutre! Como sacan eso en el producto definitivo, pero esperen no se vayan todavia, si hacemos un telnet….


telnet 192.168.1.100
Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
Venus login: root
warning: cannot change to home directory

BusyBox v1.1.3 (2009.05.11-02:44+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

/ #

Si ponemos root, y no ponemos password, estamos dentro…. y podemos ver un poco las cosas por dentro


# uname -a
Linux Venus 2.6.12.6-VENUS #1 Mon May 11 10:42:33 CST 2009 mips unknown

# ps ax
PID Uid VmSize Stat Command
1 root 364 S init
2 root SWN [ksoftirqd/0]
3 root SW< [events/0]
4 root SW< [khelper]
5 root SW< [kthread]
6 root SW< [kblockd/0]
7 root SW [khubd]
8 root SW [pdflush]
9 root SW [pdflush]
11 root SW< [aio/0]
12 root SW< [cifsoplockd]
13 root SW< [cifsdnotifyd]
10 root SW [kswapd0]
14 root SW [eth0]
15 root SW [mtdblockd]
27 root 368 S init
28 root 368 S init
31 root 368 S init
34 root 368 S init
55 root SW< [sata_eh/0]
60 root 404 S inetd
65 root SW [scsi_eh_0]
66 root SW [scsi_eh_1]
82 root 168 S ./RootApp DvdPlayer
83 root 168 S ./RootApp DvdPlayer
86 root 8764 S < DvdPlayer
87 root 168 S ./RootApp DvdPlayer
94 root 8764 S DvdPlayer
[...]
146 root 8764 S DvdPlayer
147 root 8764 S DvdPlayer
148 root 8764 S DvdPlayer
149 root 8764 S DvdPlayer
156 root SW [scsi_eh_2]
157 root SW [usb-storage]
173 root 360 S /sbin/udhcpc -p /var/lock/udhcpc_eth0.pid -t 15 -b -s
1197 root SW [cifsd]
1207 root 8764 S DvdPlayer
1208 root 8764 S DvdPlayer
1211 root 8764 S DvdPlayer
1259 root 8764 S DvdPlayer
1285 root 308 S telnetd
1286 root 488 S -sh
1301 root 352 R ps ax

# mount
/dev/root on / type yaffs2 (ro,noatime)
none on /dev type devfs (rw)
none on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
none on /sys type sysfs (rw)
/dev/mtdblock/2 on /usr/local/etc type yaffs2 (rw,noatime)
none on /tmp type ramfs (rw)
/dev/rd/0 on /mnt/rd type vfat (rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
//192.168.1.22/OPT2 on /tmp/netb/mnt/My_Shortcuts/SAMPLESERVER:damia/OPT2 type cifs (rw,nodiratime,recovery,unc=\\192.168.1.22\OPT2,username=sample,domain=SAMPLE.NET,rsize=32768,wsize=57344)

# cat /proc/cpuinfo
system type : Realtek Venus
processor : 0
cpu model : MIPS 24K V7.8
BogoMIPS : 269.51
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes
ASEs implemented : mips16
VCED exceptions : not available
VCEI exceptions : not available

# cat /proc/meminfo
MemTotal: 121856 kB
MemFree: 29672 kB
Buffers: 60 kB
Cached: 6800 kB
SwapCached: 0 kB
Active: 10788 kB
Inactive: 1448 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 121856 kB
LowFree: 29672 kB
SwapTotal: 32 kB
SwapFree: 32 kB
Dirty: 0 kB
Writeback: 0 kB
Mapped: 10028 kB
Slab: 4392 kB
CommitLimit: 60960 kB
Committed_AS: 10640 kB
PageTables: 388 kB
VmallocTotal: 1048548 kB
VmallocUsed: 1012 kB
VmallocChunk: 1047176 kB

Mirando el /etc


# ls -l /etc
-rw-r--r-- 1 1010 1013 341 May 11 2009 fstab
lrwxrwxrwx 1 1010 1013 22 Jun 4 2009 group -> ../usr/local/etc/group
-rw-r--r-- 1 1010 1013 6 May 11 2009 hostname
-rw-r--r-- 1 1010 1013 20 May 11 2009 hosts
-rw-r--r-- 1 1010 1013 385 May 11 2009 httpd.conf
-rw-r--r-- 1 1010 1013 460 May 11 2009 inetd.conf
drwxr-xr-x 1 1010 1013 2048 May 11 2009 init.d
lrwxrwxrwx 1 1010 1013 28 Jun 4 2009 ld.so.cache -> ../usr/local/etc/ld.so.cache
lrwxrwxrwx 1 1010 1013 27 Jun 4 2009 ld.so.conf -> ../usr/local/etc/ld.so.conf
lrwxrwxrwx 1 1010 1013 14 Jun 4 2009 mtab -> ../proc/mounts
lrwxrwxrwx 1 1010 1013 23 Jun 4 2009 passwd -> ../usr/local/etc/passwd
lrwxrwxrwx 1 1010 1013 24 Jun 4 2009 passwd- -> ../usr/local/etc/passwd-
lrwxrwxrwx 1 1010 1013 24 Jun 4 2009 profile -> ../usr/local/etc/profile
drwxr-xr-x 1 1010 1013 2048 May 11 2009 reexec_init
lrwxrwxrwx 1 1010 1013 26 Jun 4 2009 resolv.conf -> /usr/local/etc/resolv.conf
-rw-r--r-- 1 1010 1013 20373 May 11 2009 services
-rw-r--r-- 1 1010 1013 7 May 11 2009 system_svn_version
-rwxr-xr-x 1 1010 1013 1893 May 11 2009 udhcpc.script

Seguro que alguien mas como yo ya lo esta mirando para hackearlo, y hacer cosas nuevas con el.

PD: Por lo visto no es tan facil meterle mano, ya que lo que es el core que reproducr, accede al video, etc.. esta metido en un binario que no es GPL. Mas info aqui

¿Cuantas licencias OpenSource diferentes son necesarias?

March 14th, 2009

La verdad es que escribo realmente poco en mi blog, y me propuse que mis entradas fueran siempre creación propia y no meras referencias a otras noticias o contenidos, pues bien esta entrada es precisamente lo que no queria hacer realidad una referencia a otra noticia/articulo, pero en fin me ha parecido que es uno de esos articulos clarificadores que hay que referenciar.

Como sabeis desde el punto de vista de negocio/legal, existe una definición que define si una licencia es Opensource o no es opensource, dicha definición fue creada por Bruce Perens, y es la misma que utilizaba Debian para decidir si acepta o no un determinado software en la definición, no me voy a extender mas en esto podeis consultarlo en www.opensource.org.

Aunque ya mas o menos era de uso comun decir que una licencia era “parecida” a BSD, o parecid a GPL, etc.. Bruce Perens en un recienter articulo ha definido que son realmente cuatro las licencias que en realidad son diferentes y las cuales deberiamos considerar/utilizar, si bien comenta amargamente como cada empresa tiene sus propios abogados y van a seguir haciendo cada uno sus licencias particuales.

Resumiendo las cuatro licencias consideradas son:

-Licencia regalo: Lo menos restrictiva posible, te permite utilizar el código con otro software opensource o con software propietario. (Estilo BSD o Apache).
-Licencia compartir con reglas: Esta la que obliga a compartir de manera que si la empresa de la competencia usa tu código y lo modifica/mejora, entonces lo tendrá que compartir. (licencia GPL 3 p.e.).
-Licencia intermedia: Intermedia a las otras dos licencias, basicamente destinada a que el producto de alguna manera si que se pueda integrar con software propietario, esto es muy utilizado para librerias compartidas (licencia LGPL 3).
-Licencia que considera el saas (software as a service): Esta licencia protege el código Opensource de ser utilizado para obtener beneficio pero no vendiendo productos software sino ofreciendolos como servicio. Esta licencia segun comenta Bruce Perens esta diseñada para evitar que Google utilice software OpenSource lo modifique/mejore y lo use para dar sus servicios, sin aportar estas modificaciones a la comunidad. (El ejemplo de licencia es Affero GPL3).

El articulo original lo podeis ver en:

-Slashdot
-itmanagement

What is my DNS?

December 11th, 2008

Famosa y conocida es la página a la que te conectas y te dice cual es la IP desde la que te conectas (What is my ip?), en realidad es mucha la información que se puede obtener de un usuario, su IP, el navegador el sistema operativo y muchas otras cosas, tambien se puede conocer cual el DNS que tiene configurado el cliente.

He desarrollado una pequeña pagina que lo muestra en pantalla, lo podeis probar en el siguiente enlace,

What is my DNS?

Servicios bajo demanda de impresión

October 12th, 2008

Recientemente han llamado mi atención un par de servicios que ofrecen productos bajo demanda, uno es cafepress que te permite vender e imprimir tus propias camisetas y otros productos de mechandaising, de manera que tu generas la imagen y ellos se cocupan de todo lo demas, fabricar, imprimir, cobrar, etc.. permitiendo que te lleves una comisión, así pues el ser “creador de camisetas” y el venderlas, no puede ser mas sencilo.

El otro es LULU que te permite el editar tus propios libros, ellos los imprimen y venden bajo demanda, lejos queda cuando alguien queria editar un libro y necesitaba disponer de una minimo de volumen, convencer a un editor, etc… El creador escribe el libro, lo envia a Lulu y estos lo venden impreso, permitiendo al creador, obtener una comisión por venta a decidir por este creador.

Sin duda son dos ejemplos de venta virtual bajo demanda de los que veremos muchos en los proximos tiempos, llegara algun dia en el que no existan librerias tal y como las conocemos, y los libros seran impresos al momento bajo demanda, eso sino desaparecen antes los libros, si los libros digitales llegan a despegar.

Cinturon trasero central peligroso en Toyota Corolla Verso

September 29th, 2008

Tengo un Toyota Corolla Verso 1.8 Sol con la silla de bebe también Toyota grupo 1, hace ya un tiempo sufrí un “accidente” a mi entender por culpa del diseño del propio coche que paso a describir. Para el que no conozca el coche, es un monovolumen en principio orientado a un uso familiar.

El accidente es un accidente de uso de los elementos internos del vehículo, en concreto EL CINTURÓN DE SEGURIDAD DEL ASIENTO CENTRO TRASERO ES UN PELIGRO. Si se desabrocha apretando el botón, sale disparada a toda velocidad, golpeando con violencia al asiento derecho, en mi caso he tenido la desgracia de que le ha dado a mi hijo de 11 meses, en pleno ojo produciendole una herida externa e interna en el propio ojo. Con lo que lo he tenido que llevar al hospital, para que lo atienda el oftamologo de urgencia. El niño tenia una herida sangrante en la la parte blanca del ojo, finalmente tras el tratamiento, el niño se ha recuperado bien.

Si bien el pasajero podría haber desabrochado el cinturón de manera cuidadosa llevándolo a su posición de descanso no produciendose ningun daño, puede haber otras veces en la que no se así, considero que el problema es de DISEÑO del vehículo, siendo inaceptable. He hecho diversas pruebas sentándome y soltando el cinturón y os aseguro que sale disparado como un látigo, con el problema de al ser central, golpea de manera violenta al pasajero derecho, y en el caso de llevar un bebe en una sillita le golpea en la parte de la cabeza.

Así pues TENED MUCHO CUIDADO con ese cinturón central, a ser posible situar la sillita del bebe en el asiento izquierdo.

Como muestra del problema os pongo un video demostrativo.



¡¡CUIDADO CON LOS HEBILLAZOS EN LA CARA!!

En el pasado el TOYOTA ya ha tenido otros problemas de seguridad, que también afectaban a la seguridad de las sillas infantiles, en concreto, el interruptor de desconexión de AIRBAG no funcionaba, teneis mas información en este foro de usuarios de Toyota y tambien podeis ver una copia de la carta de Toyota.

Ya puestos a hablar cosas malas del coche, es habitual que en todos los Toyota Corolla Verso que se rayen los discos de freno a los pocos Km de sacarlo de concesionario.

He tratado de ponerme en contacto con Toyota, incluso le he enviado un burofax, y he obtenido la callada por respuesta, no se han dignado ni en contestar. Luego que vengan con milongas que la calidad y la seguridad es lo mas importante que el trato con los clientes es lo primero.

Podeis ver otros comentarios al respecto del asunto en el fantástico foro de usuarios de Corolla Verso.

Instalar Samba en voyage Linux

July 4th, 2008

Hace ya varios meses que no meto nada en el blog, tal vez porque no tenia nada que decir, bueno, os cuento mis ultimo avances del pequeño Linux empotrado con microplaca Alix.

Como sabreis, el sistema no lleva disco duro sino que utiliza en su lugar una tarjeta Compact flash, que hace las funciones de disco duro, en mi caso he adquirido una de 8Gb, donde tengo espacio de sobra para poner todo lo que quiera :-)
La principla desventaja de las memeria flash es que no puede rescribirse de manera indefinida, sino que “solo” pueden sobreescribirse unos miles de veces, segun dicen desde 300.000 hasta varios millones de veces, es por ello que el el sistema, la voyage Linux, monta el disco en modo solo lectura, si bien permite con la simple orden “remountrw” montar con permisos de escritura, y con “remountro” volver a montar solo lectura.

Por ello debemos de pensar que si las apliaciones necesitan escribir en disco vamos a tener que tenerlo en cuenta.

Directorio escribibles en RAM

Como muchas aplicaciones necesitan escribir para funcionar, la voyage Linux, monta un partición en memoria, donde si que se pude escribir, si bien esta limitada por la RAM a unos pocos megas, y ademas no es persistente ya que cuando se reinicie el aparato se perdera toda la información.
El truco que hace es el siguiente, existe una directorio llamado /ro donde esta la información que se copiara en el arranque al directorio “volatil” y escribible el /rw, el scritpt que copia dicho directorio es /etc/init.d/mountall la ultima linea hace la copia mediante tar , en concreto tar -C /ro -cf - . | tar -C /rw -xf - > /dev/null 2>&1

Y luego desde el sistema de fichero cuando se requiere que un fichero o directorio sea escribible, lo que se hace es un link simbolico al directorio /rw, lo podemos ver por ejemplo en el directorio /var


/var# ls -l
total 28
drwxr-xr-x 2 root root 4096 Jul 3 06:25 backups
drwxr-xr-x 6 root root 4096 Jun 26 16:34 cache
drwxr-xr-x 2 root root 4096 Jun 26 23:20 ccxstream
drwxr-xr-x 14 root root 4096 Jun 28 18:57 lib
drwxrwsr-x 2 root staff 4096 Oct 28 2006 local
lrwxrwxrwx 1 root root 12 Apr 15 00:28 lock -> /rw/var/lock
lrwxrwxrwx 1 root root 11 Apr 15 00:28 log -> /rw/var/log
lrwxrwxrwx 1 root root 12 Apr 15 00:28 mail -> /rw/var/mail
drwxr-xr-x 2 root root 4096 Feb 17 01:22 opt
lrwxrwxrwx 1 root root 11 Apr 15 00:28 run -> /rw/var/run
lrwxrwxrwx 1 root root 13 Apr 15 00:28 spool -> /rw/var/spool
lrwxrwxrwx 1 root root 11 Apr 15 00:28 tmp -> /rw/var/tmp
drwxr-xr-x 3 root root 4096 Jun 30 23:27 www

Como instalar SAMBA

Una de la funciones interesantes que puede desempeñar nuestro pequeño linux empotrado es el de compartir ficheros en la red, así puede compartir directorios de la memoria compact flash, y de dispositivos conectado por USB.

El camino que segui para hacerlo funcionar fue el siguiente:


#remountrw
#apt-get install samba
#remountro

Vale hasta aqui seria todo perfecto, pero el problema es que cuando tiras a arrancar el samba se queja que no puede escribir (o abrir en modo escritura) los fichero que se encuentran en /var/lib/samba, sin embargo si que funciona perfectamente si ejecutas remountrw, así pues debemos de convertir esos fichero en escribibles.

INSTRUCCIONES para hacer un directorio escribible y que funcione samba

0.- Habilitamos la escritura e instalamos samba
#remountrw
apt-get install samba

1.- Copiar el directorio /var/lib/samba a /ro/var/lib/samba
tar -C /var/lib/samba -cf - . | tar -C /ro/var/lib/samba -xf -
2.- Hacer un link de /rw/var/lib/samba a /var/lib/samba

mv /var/lib/samba /var/lib/samba.ori
ln -s /rw/var/lib/samba a /var/lib/samba

3.- Crear un script para reescribir los ficheros si modificamos algo que queremos que persista.

echo "tar -C /rw/var/lib/samba -cf - . | tar -C /ro/var/lib/samba -xf -" >/usr/local/bin/recopysambafiles
chmod +x /usr/local/bin/recopysambafile

4.- Reiniciamos el servidor
reboot
5.-Creamos un usuario para acceder

adduser nasuser
smbpasswd -a nasuser
remountrw
/usr/local/bin/recopysambafile
remountro
/etc/init.d/samba restart

Y probamos, deberia de funcionar :-) La proxima entrada será como hacer funcionar el amule, el lector avanzado podra intuir que es basicamente lo mismo pero con los directorio que necesite escribir, y así efectivamente es.

Linux en sistema empotrado

March 15th, 2008

Recientemente he adquirido una placa ALIX de Pc Engines, un pequeño ordenador con arquitectura i386, funcionando con una AMD Geode. La idea es tener un pequeño servidor que me pueda hacer de router, de firewall de servidor de ficheros conectandole un disco externo USB, incluso de maquina de P2P.
El aparato en si, no tiene disco duro, sino que funciona mediante una tarjeta Compact Flash, y tiene un consumo bajisimo solo 4W.

alix

En cuanto al sistema que se le puede instalar, pues hay varios, pasando por BSD, openBSD y Linux. La que estoy probando es un linux basado en debian (acepta repositorio de etch), que se llama VOYAGE LINUX.

Material de YacomTV

January 22nd, 2008

Desde hace unos pocos meses, y tras la adquisición de ya.com por parte de Orange todos los usuarios de YACOMTV, nos hemos quedado sin servicio, el servicio de Television ha dejado de funcionar, una lastima, ya que funcionaba de una manera y a un precio razonable.

En un primer momento parecia que nos ibamos a poder quedar con el equipamiento, o sea el decodificador que es un cacharro interesante para investigar, pero en principio inutil, y dos modem PLCs.

El decodificador, es un aparato de IPTV, X300T, de la marca KISS, que tiene un disco duro con capacidad de grabar, tiene sintonizadores de Tdt, y salidad HDMI para alta definción, desgraciadamente solo funciona conectado a la red, bajo el servicio de suscripción, pero quien sabe si en un futuro habrian aparecido metodos o maneras de hacerlo funcionar.

Pues me acaba de llegar un correo en el que me dicen que vendran a recoger el equipamiento, tanto el decodificador, como los routers PLCs.

EL decodificador se lo voy a devolver, pero los PLCs ME LOS QUEDO, ya que segun ponia en los tripticos son un regalo, y asi que “santa rita, santa rita lo que se da ya no se quita”.

Os pongo una foto escaneada del triptico.

Yacomtv regala PLCs

Pone “regalamos”, así que muchas gracias por el regalo.

Teneis algunos comentarios sobre el tema en:

-BandaAncha
-ADSLZone

Como balancear Internet con 4 cable modems

January 19th, 2008

Introducción

Casi todos los años acudo y colaboro en aspectos tecnicos en la benaguasil party, relacionados con la conectividad a Internet, cada año el escenario es diferente, un año tenemos un ADSL, otros Cable Modems, incluso algun año se ha hecho a través de Wifi conectandonos a una empresa cercana colaboradora. En todas las

Finalemente el fichero de configurarión de la red: /etc/network/interfaces quedó:

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback
# automatically added when upgrading
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.0.0
##
auto eth1
iface eth1 inet dhcp
##
auto eth2
iface eth2 inet dhcp
##
auto eth3
iface eth3 inet dhcp
##
auto eth4
iface eth4 inet dhcp

Reiniciando la red, las asignaciones de IP eran las siguientes:
<

Interface IP Netmask default_gateway
eth0 192.168.1.1 255.255.0.0
eth1 81.203.149.126 255.255.224.0 81.203.144.1
eth2 81.203.144.81 255.255.224.0 81.203.144.1
eth3 81.203.128.69 255.255.224.0 81.203.128.1
eth4 81.203.144.88 255.255.224.0 81.203.144.1

Para ver la ruta por defecto usamos netstat -nrv , en ella podemos ver que tenemos dos gateways diferentes, aunque ademas de ello tenemos interfaces diferentes para el mismo gateway (esto es algo un poco lioso pero es asi).

Entonces ahora es donde viene la mágia con dos scripts hacemos que funcione el balanceo.
Primero borramos las rutas por defecto, ya que no consideran el interfaz, ademas tenemos que usar las opciones de balanceo.

route del default
route del default
route del default
route del default
ip route add default equalize scope global \
nexthop via 81.203.144.1 dev eth1 weight 1 \
nexthop via 81.203.144.1 dev eth2 weight 1 \
nexthop via 81.203.128.1 dev eth3 weight 1 \
nexthop via 81.203.144.1 dev eth4 weight 1

Para comprobar las rutas, netstat -nrv ya no nos es util, y hay que utilizar ip route list.

Con lo hecho hasta ahora el servidor ya accede de manera balanceada, pero tenemos que activar el NAT, para ello:


IPTABLES=/sbin/iptables

$IPTABLES -t nat -A POSTROUTING -o $EXTIF1 -j SNAT --to-source 81.203.149.126
$IPTABLES -t nat -A POSTROUTING -o $EXTIF2 -j SNAT --to-source 81.203.144.81
$IPTABLES -t nat -A POSTROUTING -o $EXTIF3 -j SNAT --to-source 81.203.128.69
$IPTABLES -t nat -A POSTROUTING -o $EXTIF4 -j SNAT --to-source 81.203.144.88

Y ya esta... 4 CM balanceando el trafico de una LAN. Para ver como va todo lo mejor es utilizar iptraf.

Problemas y cosas pendientes

-Queda pendiente el hacer un script que lo haga todo automatico, en concreto capaz de ver que gateway se asignan por DHCP, y que se capaz de lanzar los scripts de manera automatica.

-Queda pendiente ver si se peude ajustar el balanceo de alguna manera, en nuestro caso los 4 Cable Modems eran iguales, ¿Puede enviarse mas por uno que por otro?

Nota: Este documento es una traducción de mi propio documento en ingles. Podeis verlo en ingles aquí. Howto ISP Balance with Linux

Cartel Oferta

January 12th, 2008

oferta hipercor de 19,95 a 19,90

Foto tomada en Noviembre 2007 en el hipercor de Valencia. Hay que ver, que lo que se presenta como oferta, no siempre lo es, y seguro que pusieron el cartel y se quedaron tan tranquilos.