Archive for the 'tecnico' Category

Qemu/KVM y la opcion -nographic para una emulacion mas ligera a traves del puerto serie

Sunday, May 20th, 2007

Estaba yo preparando unas movidas y me vi en necesidad de emular un par de sistemas para hacer trapis de red y tal. El caso es que como conocia de antes qemu/kvm (son lo mismo as que a partir de ahora kvm) pense en emularlo con eso.

Bueno, a la chichilla, kvm tiene una opcion -nographic que he estado mirando, su ayuda dice lo siguiente:

-nographic disable graphical output and redirect serial I/Os to console
Ahora bien, esto hace exactamente lo que dice, ni te da una consola en el sistema ni nada por el estilo, te redirije la entrada/salida del puerto de serie a la terminal donde has ejecutado kvm.

Kvm por defecto te arranca una ventana con SDL y ahi ves el SO que estas emulando, en plan vmware pero con menos mariconeo de pantalla. De esta manera te saltas toda la parte grafica y obtienes una consola en el sistema guest gastando el minimo posible de recursos en la emulacion.

Ahora bien, como he comentado antes, no obtienes una consola magicamente, solo tienes puerto de serie redirigido a tu consola, para poder aprovecharlo debes poder acceder al sistema a traves de ese puerto de serie, y tienes que hacerlo a tres niveles.

  1. Grub: Para poder hablar con grub durante el arranque debe escuchar en el puerto serie
  2. Kernel: En teoria no deberia ser necesario, pero si lo configuras veras el arranque del kernel y posibles problemas
  3. SO: Alguien debe arrancar una consola escuchando el puerto serie no?

Grub

Teniendo un /boot/grub/menu.lst no hay mas que aniadir la siguiente linea y desactivar todos los temas de splash, splashimage y demas rollos graficos de arranque. Esto permite ver una version texto de la mitica pantalla de bienvenida de grub donde puedes seleccionar el kernel con el que arrancar.

serial unit=0 –speed=9600 –word=8 –parity=no –stop=1
terminal serial

Se pone esto antes de la definicion de los kernels a arrancar y ya esta.

Kernel

Para poder ver el arranque del kernel a traves del puerto de serie hay que tener el soporte de puerto de serie activado en el kernel (suele venir por defecto, al menos en debian) y pasarle como parametro al kernel el puerto por el que queremos sacar la consola, algo como esto:

title Debian GNU/Linux, kernel 2.6.18-4-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-4-686 root=/dev/hda1 ro console=tty0 console=ttyS0,9600n8
initrd /boot/initrd.img-2.6.18-4-686
savedefault
Las 2 ultimas opciones de la linea kernel son la clave, ahi va el puerto y la velocidad de comunicacion, a mi a 9600 me va de lujo. Con esto ya se veria todo el arranque del kernel y el sistema operativo casi hasta el final, en el momento en el que en una consola fisica tendriamos el prompt para user/password esto se para y no hay prompt.

SO

Por ultimo, la mas importante, de hecho yo creo que si no ponemos las otras, tarde o temprano, despues del timeout del grub y del arranque del kernel si tenemos esta acabariamos teniendo consola tambien.

Ahora hay que decirle al sistema operativo que tambien queremos usarlo desde el puerto de serie, que nos de una terminal ahi para que cuando nos conectemos podamos manejarlo. Esto se hace desde el fichero /etc/inittab este es el encargado de arrancar las ttys en linux, y por tanto debe arrancar tambien a la vez una tty en el puerto serie.

Esto se hace aniadiendo esta linea al final de /etc/inittab:

co:2345:respawn:/sbin/getty -L ttyS0 9600 vt100

NombreConsola:RunlevelsdeArranque:EjecutarDeNuevoSiMuere:Ejecutable+Opciones

Una vez aniadido esto y si lo hemos hecho todo bien podremos lanzar kvm con la opcion -nographic y tener un SO emulado sin necesidad de ventanas y pudiendo copiar/pegar y esas cosillas que tienen las consolas.

Para el que no se quiera rallar con todo esto he preparado una imagen de debian en formato qcow de kvm, esta virgen y se puede arrancar con -nographic, todo lo que no se sepa es “debian” (username,userpasswd,rootpaswd,hostname….), solo hay que gunzipearla y arrancarla tal que asi:

$kvm -nographic debian4.0-nographic.qcow
Esta disponible aqui: debian4.0-nographic.qcow.gz

Una de firefox

Wednesday, April 18th, 2007

Cansado de usar el ratón para navegar? Para ti no existe mas que UN editor?

Vimperator! ven y cuentalo.

Todas las combinaciones de teclas de vim en tu firefox, altamente recomendable. Hace tiempo que busqué una extensión así, pero entonces no existía, hace un par de dias llegue de rebote a esa web y desde entonces mi vida ha cambiado xDD.

Van por la versión 0.3 añadiendo funcionalidades rápidamente, es fácil sencillo y para toda la familia, aunque al principio cuesta hacerse.

Recuperando versiones de paquetes Debian

Friday, February 2nd, 2007

Harto de no encontrar aquella version de un paquete concreto que nunca salio como stable?

A mi me acaba de pasar, necesito una version concreta del paquete monotone para hacer unas cosillas y resulta que en testing esta la 0.31 y en stable la 0.18, de donde saco yo la 0.28 que necesito?

snapshot.debian.net

Los chicos de debian-es@freenode.org me han chivado esta url que llevan guardando versiones un monton de tiempo y de varias arquitecturas. Se sale.

A ver si acabo algunos posts mas que tengo a medio escribir….

Que grande es el amaroK

Saturday, August 19th, 2006

Resulta que estaba yo mas aburrido que una ostra estudiando Métodos (Métodos cuantitativos de la producción, si, en Ing. Informática, no me preguntéis que hace eso ahí) cuando me ha dado por mirar mi cuenta y la de mi hermano en last.fm.

Resulta que él llevaba registradas ya 5426 canciones oídas, y yo tan solo 5417, aha!! a este le cojo en un momento! es lo que he pensado y como me aburría tanto como para picarme con las canciones oídas se me ha ocurrido ponerme a oír canciones muy cortas para incrementar mucho el contador en poco tiempo.

Pues me he puesto y en un momento, nunca había usado las listas dinámicas del amaroK y no me ha costado nada, le he dicho que cumpla campo Duración menos de 60, Aceptar y arrastrar la lista a la zona de reproducción, y ya esta.

Fácil sencillo y para toda la familia. Que grande es el amaroK.

Para los que no habéis probado last.fm os recomiendo que lo probéis, esta muy bien, os hacéis un usuario y con la versión 1.4.1 de amaroK es automágico, ponéis el user y el pass en las preferencias y si tenéis los tags de las canciones bien puestos os va subiendo a last.fm los títulos de las canciones que estáis escuchando, y hace estadísticas, coteja usuarios con gustos similares y esas cosas.
Pero lo realmente guapo de last.fm es que os da una radio personalizada por internet , esto en amaroK ya viene integrado en “Lista de reproducción”->”Add last.fm stream”->”neighbour radio”. Pone por la radio canciones en base a tus gustos, y no canciones que hayáis oído antes o tengáis, no no, canciones que tienen ellos en su servidor imagino. Hay algún stream mas por ahí pero no lo he probado.

Lo de subir los títulos lo hacen versiones anteriores de amaroK pero coger el stream solo lo hace la ultima que la podéis conseguir los ubunteros en “deb http://kubuntu.org/packages/amarok-141 dapper main”.

Si quereis echar un vistazo a mi cuenta de last.fm para haceros una idea: http://www.last.fm/user/Saladino_/

Bueno, en lo que he tardado en escribir el post yo ya llevo 5434 canciones y mi hermano 5430, ya le he pasado, a ver si cojo un poco de ventaja… d:-m

Cómo añadir un micrófono interno a una Palm TX

Friday, August 18th, 2006

Hay que ver lo productivo que se pone uno en examenes.

Resulta que leí hace un par de días que un par de tipos habían conseguido integrar un micrófono en sus Palm TX sin demasiada dificultad, lo leí aquí:

1)http://www.dominik.chmaj.net/mic/index2.php

2)http://www.palminfocenter.com/forum/viewtopic.php?t=29941

Porque es esto posible?

Pues básicamente porque parece que los de palm le pusieron a la TX todo lo necesario para grabar excepto el micrófono en si, temas de marketing, o rollo de accesorios imagino, una gran tontería por otra parte.

No he hecho nada en especial aparte de lo de estos tipos, sencillamente he hecho lo mismo buscándome la vida con los ingredientes y documentándolo en castellano.

Agradecer a Halls y a Metis sus indicaciones porque sin ellas no hubiera hecho mucha ostia.

Ingredientes:

-Una Palm TX

-Soldador, cuanto más fino mejor, el mío era muy malo y he sudado para hacerlo(no es el tuyo Pablo, compré uno)

-Un micrófono

-Cablecitos, celo y cosas de esas

Más o menos todo reunido:

Ingredientes
La cosita redonda de al lado de los cables es el micrófono, no es el que he usado al final pero es muy parecido, ese lo saque de un reproductor mp3 estropeado que podía grabar.

La plasta de abajo a la derecha es una que tenía de estaño que intente fundir para sacar estaño, pero fue imposible, tuve que comprar al final.

La Palm es Jagger, mi memoria.

1 - Microfono que funcione:

Nos tenemos que asegurar de tener un micrófono que funcione, el mio lo saque de una placa integrada así que no tenia cables y le tuve que soldar unos, los micrófonos estos usan 2 cables, uno positivo y otro a tierra, normalmente el de tierra parece salir de la carcasa y el otro de dentro, una vez soldados los cables la mejor manera de probarlo es esta:

Cable con microfono

Es un cable como de auriculares o así, uno que acaba en un jack (idea de mr. Halls). Lleva 3 conexiones, dos cablecitos y una especie de malla que los cubre, hay que separar la malla, hacerla un churro y soldarla con la tierra del micrófono, los otros 2 cables se juntan y se sueldan con el positivo del micrófono.

Esto se prueba en el ordenador por ejemplo y es un micrófono valido, de hecho es bastante sensible.

Una vez que tenemos un micro que sabemos que funciona pasamos a la Palm.

2 - Destripando una Palm:

Lo primero es quitar los tornillos, en la foto inferior salen las posiciones en azul, son tornillos sencillos, salen fácil, después hay que abrir la carcasa, soltando unos clips internos, sus posiciones son más o menos las que están pintadas en rojo.

Hay que tener cuidado, la parte que se saca es la de detrás de la palm, hay una especie de parte delantera que parece para sacar, pero esa no es, las hendiduras están dentro de los canalones para el lápiz y para encajarla tapita de la palm, se introduce un destornillador plano por el canalón a la altura donde esta señalado y se apunta hacia la parte frontal, ahí esta la hendidura, se mete un poquito y se gira el destornillador hasta oír el clack, y con eso se abre solo, cuidado con la parte de abajo que rodea el conector, sacar hacia atrás.

Destripando la Palm

Total, que una vez abierta la Palm nos queda esto:

Palm abierta

3 - Al tema:

Veis el destornillador ahí colocado? esa es la parte que nos interesa.

Resulta que a estos aparatos se les puede poner un micro externo que usa el conector inferior, el tema es que usa los dos pines de mas a la izquierda, como positivo y tierra, el truco es usar estos pines desde dentro e integrar el micro dentro de la estructura.

Una vista mas detallada:

Vista detallada del conector

Ahi se ve como el destornillador separa el pin positivo del resto del conector.

Atención!! es un conector muy pequeño, es muy difícil soldar ahí porque los pines son muy pequeños y están muy juntos, por eso he puesto ahí el destornillador, porque soy muy zote soldando y no quería que se me juntara con el de al lado que es tierra.

Yo no he necesitado el cable de tierra del micrófono porque leí a uno de los que había hecho esto antes que los micrófonos suelen tener la carcasa a tierra y el metal de la palm donde va a ir el micrófono esta también a tierra, en ese caso basta con conectar el positivo al primer pin del conector.

4 - Paso final:

Pues una vez hecho lo fácil ya solo nos queda jugárnosla e intentar no romper nada. El mejor sitio para colocar el micro es en la esquina, hay que tener en cuenta que al cerrar la Palm la batería queda justo ahí y no deja demasiado espacio, pero si se apura a la esquina entra mas o menos bien. Se pega ahí con celo o lo que tengáis, se pega el cable por la carcasa y se suelda con muuuucho cuidado al conector mas a la izquierda, si vais a usar el cable de tierra tenéis que soldarlo en el segundo pin por la izquierda, a la derecha del positivo.

Va quedando así:

micro_palm lateral

micro_palm de frente

Detalle de la soldadura:

detalle soldadura

Pues con eso ya estaría todo funcionando.

Palm con SoundRecord

Para hacer las pruebas he usado el SoundRecord para PalmOS que se puede conseguir aquí:

http://www.infinityball.com/content/a3/soundrec107d.zip

La verdad es que se oye bastante bien, pero estoy pensando en taladrarle con una dremel o así un agujerito para que grabe mejor y mas alto.

Una muestra:

Grabacion palm

Pues ya esta, eso ha sido todo, se apreciaran dudas y correcciones.

Cifrando Backups

Wednesday, April 12th, 2006

Cuantas veces has perdido datos? Eso se acabo. Desde ahora haras backups de tus datos, veras que sencillo.

Yo decidi empezar a hacer backups de el home de mi portatil porque ya empezaba a tener muchas cosas personales que no queria perder nunca, cosas como fotos de viajes y eso.

El caso es que me compre un disco duro portatil de esos pequeños de 80G para hacer los backups, pero como me sobraba la mitad o asi decidi usar la mitad del disco para los backups y la otra mitad para llevar pelis y esas cosas. Como iba a andar llevando el disco duro por ahi y soy un poco conspiranoico decidi cifrar la particion de los backups por si perdia el disco.

Ingredientes

Disco duro, particion, directorio a backupear.

Disco duro donde guardar los backups.

Soporte para loop y cryptoloop en el kernel.

Modulo del kernel con el algoritmo de cifrado elegido(yo he usado twofish).

rdiff-backup(es el programa de backups, esta en apt).

Accion

Lo primero de todo es particionar el disco. Yo hice una particion al principio de 40G formateada en vfat parameter pelis y esas cosas y otra igual detras pero esta sin formatear.

Ahora al conectar el disco duro aparecen dos dispositivos, /dev/sda1 y /dev/sda2, aunque si conectamos en hd en windows solo vera un disco duro de 40 gigas(ooo particiones escondidaaas).

El truco que se hace es pasar a /dev/sda2 por cryptoloop para que nos haga el trabajo sucio y nos ofrezca una particion sin cifrar de una cifrada.

Zack:/home/saladino# losetup -e twofish /dev/loop0 /dev/sda2

Con ese conjuro ya nos vale. Lo que hace es una imagen de /dev/sda2 en /dev/loop0 pasando por un descifrador de twofish. Yo he usado twofish porque leyendo por ahi lo ponen de bastante seguro, aunque es bastante lento para backups esta bien, no creo que sirva mucho para un uso diario de una particion.
Este comando por supuesto nos pedira una contraseña.

Atencion: Como contraseña le podemos poner lo que queramos, pero introduzcamos lo que introduzcamos hay que ser conscientes de que lo unico que hace es aplicar el descifrado twofish con la contraseña sobre la particion, y esto funciona SIEMPRE, la diferencia es que si ponemos la contraseña que no es no obtendremos lo que teniamos antes(aunque todavia no tenemos nada). Obtendremos basura.

Una vez metemos una larga contraseña lo siguiente es dar formato a la particion.

Zack:/home/saladino# mkfs.ext3 /dev/loop0

Con este comando estamos dando formato de ext3 a la particion /dev/loop0 que es una imagen descifrada de /dev/sda2.

Ahora ya podemos montarla

Zack:/home/saladino# mount -t ext3  /dev/loop0 /mnt/secure/

Ya tenemos en /mnt/secure un sistema limpio y cifrado. Mientras este montado cualquiera con permisos puede acceder a el y leerlo.

Para desmontarlo se hace:

Zack:/home/saladino# umount /mnt/secure/
Zack:/home/saladino# losetup -d /dev/loop0

Y ya esta. Es muy importante recordar que si al volver a montar la particion, en el momento de hacer el losetup se mete una contraseña erronea no te daras cuenta hasta que intentes montar la particion y no reconozca el formato. Es normal, habra descifrado con una contraseña que no es y vete tu a saber lo que habra quedado.

Todo esto se puede automatizar en una linea de fstab:

Zack:/home/saladino# cat /etc/fstab |grep secure
/dev/sda2       /mnt/secure     ext3    noauto,user,loop=/dev/loop0,encryption=twofish  0       0

Solo hay que hacer un mount /mnt/secure e introducir la contraseña.
Y con esto ya tenemos nuestro super-sistema cifrado, a ver quien es el chulo que lo monta sin saber la contraseña.
Pues una vez hecho lo mas dificil ahora ya es todo meter un comando.

saladino@Zack:/mnt/secure$ rdiff-backup /home/saladino home_saladino

El rdiff-backup nos hara una copia exacta de el home y ademas introducira un directorio llamado rdiff-backup-data que sera el que en sucesivos backups mantendra diferencias incrementales y demas, el siguiente backup no me llevara mas de medio minuto, solo meter a las diferencias..

Pues eso, ya esta todo, ves que facil? Ahora ademas tengo 40 gigas ahi de vfat para meter peliculas o cosas que los windows y eso ven bien.

Mola.

Salutoj

PD: Casi toda la info que he necesitado la he sacado de la web de Bulma y su articulo de cryptoloop, gracias Bulma ;)

Como Sincronizar una Palm TX por bluetooth usando un “serial port” desde Debian Linux

Sunday, February 5th, 2006

Epa,

Cuantos articulos seguidos, como se nota que estamos en examenes. jejejejej.

Pues llevaba un millon de años, milenio arriba milenio abajo, mirando como sincronizar esta belleza sin usar un cable, he de decir que con el cable tampoco es que fuera facil.

Pues lo unico que habia visto era que todo el mundo se hace una red por bluetooth y sobre la red hace hotsync, pero yo sabia que habia una opcion(de hecho esta por defecto) para usar bluetooth directamente. Asi pues me he puesto a mirar cosas y a hablar de ello con Pablo y al final es la ostia de facil, y eso que habia visto pro ahi comentarios de que por serial port no se podia o noseque.

El tema es el siguiente. Yo solo he probado “pilot-xfer -b”, que es para hacer backups de todo. Lo primero que hay que hacer es registrar en el ordenador un puerto de bluetooth como servicio de Serial Port(SP). Para esto necesitaras tener aparte de el soporte bluetooth en el kernel las bluez-utils(apt powah!)
1: #sdptool add –channel=3(o el que quieras) SP

Despues hay que poner a alguien a escuchar en ese puerto

2: #rfcomm listen /dev/rfcomm0(o el que quieras, no existe ahora mismo) 3

Ojo!! Esta esperando pero nadie ha creado todavia ese /dev/rfcomm0.

Ahora es cuando pulsas el boton de hotsync despues de elegir conexion por bluetooth, si no tienes la conexion creada creala, es muy facil, eliges a PC y despues bluetooth y le pones el nombre que quieras.

3: Pulsamos el boton de hotsync

Y ahora ejecutamos el pilot-xfer, un problema con esto que me pasa a mi es que tengo que arrancar el pilot-xfer casi a la vez que aprieto el boton de hotsync, pero creo que es por algun cambio y solo afecta a la palm tx, si espero un poco mas a mi me peta.

4: pilot-xfer -p /dev/rfcomm0 -b backup

Y ya esta!

Como una rosa, mucho mas facil que hacer una red y la de cristo.

Cosas que no se deben hacer programando para Palm OS

Thursday, February 2nd, 2006

Pues nada, hay una cosa que me jodia mogollon de la palm, cada vez que mandabas via bluetooth algun fichero con extension desconocida por el SO te lo rechazaba, no habia manera de almacenarlo.

Asi que estuve mirando por ahi y vi una app que pillaba de todo, pero era de pago y solo te dejaba 15 dias de prueba y encima no era software libre (despues he visto otras app que lo hacian gratis pero no SL). Y entonces dije que coño! lo voy a hacer yo. Y me puse manos a la obra.

Vale, una vez que tengo cierto control ya sobre mi aplicacion empiezo a ver como decirle al sistema que me pase las llamadas cuando llegue un fichero. Me entero que eso se hace con el exchange manager y que tengo que registrar extension o mime de fichero y registrar si soy yo el default app para ese fichero en caso de que haya mas de una aplicacion registradas para ese tipo de ficheros.

Hago unas pruebas y fona, pero claro no voy a registrar una por una todas extensiones o mimetypes del mundo, podria llevarme eones. Asi que tonto de mi pruebo con *.

Ya esta digo. ya funcionara. le paso por bluetooth ficheros .sala y funciona, .ark y funciona. Excelente digo yo. Y un webo. Digo “voy a meter otra version de la app a ver si funciona lo que acabo de implementar”. La envio por bluetooth y va el OS y en vez de instalarla se la pasa a mi app!!! Claro *.

Total, que te quedas sin poder instalar nada ni modificar nada ni recibir nada ni ostias.

Asi que solucion: Hago un backup en windows, Hard-reseteo la palm y restauro el backup.

Y ya esta. Ahora funciona bien.

PD: Si alguien sabe como cojoños se arregla lo que le hace el cabrón del wordpress a mi post anterior que me comente que yo de gestores de contenido nooool

Programando para Palm OS sobre Debian

Wednesday, February 1st, 2006

Pues ya tenia yo ganas de empezar a meterle mano a la Palm TX que pille. Nada mejor que una epoca de examenes para estas cosas. Ya sabeis…
Vale, empezamos.
Hay que instalarse algunas cosillas para poder compilar c para PalmOS.
Las Palm llevan un procesador m68k(Motorola?) asi que no vale como si fuera para nuestro ordenador.
Hay que instalarse estas cosillas:

saladino@Zack:~/palm/dos$ dpkg -l |grep prc
ii  prc-tools                      2.3-1                         GCC, GDB, binutils, etc. for PDAs using the
ii  prc-tools-arm                  2.3-1                         Development toolchain for PalmOS (armlets)
ii  prc-tools-m68k                 2.3-1                         Development Toolchain for PDAs using the Pal
ii  prc-tools-utils                2.3-1                         Development toolchain for PDAs using the Pal

Luego hay que bajarse la SDK de PalmOS, tienes que meter un email y registrarte como “PalmOS Developer”(blablabla). Una vez has hecho esto ya te puedes bajar la SDK.
La pones en /usr/local/share/palmdev/ y ejecutas el comando palmdev-prep, este comando busca las SDKs que tengas instaladas y te las pone bien para que puedas incluir los .h que necesitas.
Vale, con esto ya casi esta, solo falta hacer tu programa.
Haces un MakeFile como este:

CC=m68k-palmos-gcc
SRCDIR=src/
SalaPalm.prc: src/main.c  src/Resources.rcp MainForm.o
$(CC) src/main.c -o SalaPalm MainForm.o         m68k-palmos-obj-res SalaPalm         pilrc -I src/ src/Resources.rcp         build-prc  SalaPalm.prc “SalaPalm” XXXX *.grc *.bin$(OUTPUTDIR)%.o: $(SRCDIR)%.c
$(CC) $(CFLAGS) -c $< -o $@clean:
rm -f *.bin         rm -f *.grc         rm -f *.prc         rm -f *.o         rm -f *.stamp

Una vez ya con esto solo tienes que hacer tu src/main.c que tiene que ser parecido a este:

#include

#include “ResourceDefines.h”

#include “MainForm.h”

//Le llamamos despues desde el bucle principal par

Errores de disco al arrancar

Sunday, January 29th, 2006

Es una movida cuando arrancas tu ordenador y ves que al de un rato de estar arrancando tu GNU/Linux te empieza a soltar un monton de frases que contienen cosas como “hda”, “ide0″ pero con “lost interrupt”, “reset master error” y demas cosillas acompañadas con numerillos en hexadecimal.
Bueno pues si las que te salen a ti se parecen a estas igual tienes suerte.
Las mias:
dma_intr: status=0×07f
ide0: reset: master: error (0×0a?)
y despues todo el rato:
hda: lost interrupt
y se quedaba ahi soltando esa frase cada 30 segundos o asi.
Acojonante no? pues no, abres tu caja, sacas el disco duro, le sueltas todo y lo agitas un poquito, limpias los conectores y los vuelves a conectar, esperas a que se enfrie y vuelves a arrancar. Ya funciona.
El mio por lo menos, no se cual de las acciones anteriores ha hecho que funcione, pero si le sirve a alguien ahi esta.
Llevo 3 arranques perfectos desde entonces, y el dma esta activado y todo. Si falla otra vez ya comentare