Linux en iPAQ h1930

meneame.net TRACK TOP
Publicado el 19th Noviembre, 2006 por KaRMaN. Archivado en Hardware, Linux.
Leido 12,905 veces. 3 comentarios archivados.

Hacía algún tiempo que venia buscando alguna forma de instalar linux en este Pocket PC para trastear un poco en las posibilidades de linux en dispositivos móviles, así que me puse a buscar y encontré el proyecto que por lo menos mas avanzado está.

Aun le queda un poco para acabar, pero con lo que ofrecen tendremos mas que suficiente para hacer nuestras pruebas.

Lo que haremos será construir un ‘disco duro’ con dos particiones, una para almacenar los archivos necesarios para arrancar y otra para el sistema de archivos del SO.

Las pegas que tiene actualmente el proyecto entre manos son el arranque de Linux y la gestión de energía. El primero de los problemas se solventa con un pequeño ejecutable que borra la RAM de la PDA y carga en ella el kernel de linux. Este ejecutable tiene que ejecutarse desde windows para pocket pc. El otro inconveniente no está solventado, por lo que no podemos apagar ni suspender la unidad, tan solo reiniciarla (tras lo cual restaurará windows ce en la RAM desde la ROM).

Comenzando con el particionado, si vamos a dedicar la tarjeta exclusivamente para linux, tenemos que crear la primera partición de la tarjeta SD con al menos 7 megas de espacio para los archivos de arranque y al menos 50 megas para la particion de Sistema. Este orden es obligado ya que la iPAQ solamente reconocerá y montará en windows ce la primera partición que encuentre en la tarjeta.

Para el ejemplo de particionado expodré mi caso, una tarjeta de 64 megas que me vino muy justa para hacer la instalación.

# fdisk -l /dev/mmcblk0
Disco /dev/mmcblk0: 62 MB, 62783488 bytes
1 cabezas, 16 sectores/pista, 7664 cilindros
Unidades = cilindros de 16 * 512 = 8192 bytes
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/mmcblk0p1   3  800  6384 1 FAT12
/dev/mmcblk0p2 801 7664 54912 83 Linux

Como puede verse la partición que emplearemos para arrancar ha de ser la primera y ha de ser forzosamente de tipo 1 (FAT12). La segunda, en la que he empleado el resto del disco, ha de ser de tipo Linux.

NOTA: mmcblk0 es el nombre del dispositivo tarjeta SD que mi tarjetero embenido en el portatil asigna para estas tarjetas. Si usas un lector externo, posiblemente tengas /dev/sdxz, donde x es el numero de dispositivo (a, b, c…) y z es el número de particion (ie: /dev/sda1, /dev/sda2).

Ahora que tenemos la tabla de particones adecuada tenemos que dar formato a las nuevas particiones adecuadamente:

# mkdosfs /dev/mmcblk0p1

# mke2fs /dev/mmcblk0p2

Comentar que forzosamente tienen que ser la primera de tipo dos y la segunda ext2.

Una vez hecho lo delicado, pasamos a lo facilon, la instalación de linux, que es tan sencilla como copiar los archivos necesarios en la tarjeta.

Empezamos descargando el nucleo (zImage) precompilado de la seccion de descargas de handheld y el HaRET, el programa que usaremos para arrancar linux y los copiaremos ambos en la primera particion de la tarjeta (la de arranque) descomprimiendo previamente haret.exe.

Por último hay que descargar el sistema de archivos con el entorno grafico, que pueden ser GPE o Opie. Yo prefiero GPE que se parece a Gnome. Para verlos y comparar cual os gusta mas, podeis verlos ambos aqui. Una vez descargado, descomprimirlo en la segunda partición y con esto ya habremos acabado de instalar nuestro linux experimental. Tan solo queda poner la informacion de arranque en la primera particion en un archivo llamado default.txt con el siguiente contenido:

set MTYPE 347 set KERNEL “zImage” set RAMADDR 0×30000000 set CMDLINE “root=/dev/mmcblk0p2 console=ttySAC2,115200n8 panic=30 rootdelay=5″ bootlinux

Notese de cambiar mmcblk0p2 por sdx2 o cualquiera que sea la partición en la que guardó el sistema de archivos.

Ahora ya podremos introducir la tarjeta preparada en la iPAQ y ejecutar haret.exe en la tarjeta SD y esperar que arranque el sistema.

Se puede encontrar el manual completo en ingles en la pagina original.

Cambios de codificaciones en perl

meneame.net TRACK TOP
Publicado el 19th Noviembre, 2006 por badblody. Archivado en Programación, Tips.
Leido 4,846 veces. Comments Off

Muchas veces nos habremos encontrado con que al estar haciendo un script para trabajar con el código de alguna web al tratar los carácteres no ascii estandar se nos ven mal al imprimirlos por pantalla o no los podemos usar bien porque no sabe representarlos.

Para que perl sepa reconocerlos de manera correcta, usaremos el modulo Encode (perl -MCPAN -e shell o cpan ( con active perl ) ; install Encode)

#!/usr/bin/perl

use Encode;

$limpia = decode(“windows-1250″, $varible_codificacion_windows-1250);
print $limpia . “\n”;

“windows-1250″ no tiene que ser necesariamente esa, puede ser cualquiera de las que tengamos. Para ver las posibles usariamos algo parecido a esto:

#/usr/bin/perl

use Encode;

@list = Encode->encodings();

Algo más sobre codificaciones

Si tienes dudas de qué encoding usa su editor, recomiendo que eches un
vistazo a cómo graba los caracteres tu editor. Si las tildes aparecen
como un único byte, seguramente sea ISO-8859-1. Si los caracteres sin
tilde aparecen como un byte y aquellos con tilde como dos, seguramente
sea UTF-8, y si todos los caracteres tienen dos bytes, entonces es
UTF-16 (poco habitual como opción por defecto). Puedes verlo usando
“hexdump -C nombre_fichero.xml”.

origen: la lista de hispalinux

Nuevo ataque contra RSA

meneame.net TRACK TOP
Publicado el 19th Noviembre, 2006 por KaRMaN. Archivado en Seguridad.
Leido 6,427 veces. 1 comentario archivado.

El ataque se basa en el módulo de predicción de los procesadores actuales, que en aras de aumentar la velocidad se diseñó tomando un atajo.

Debido a esta debilidad sería posible predecir una clave generada por un procesador mediante la ejecucion de un programa en el mismo rompiendo fácilmente cualquier sistema de cifrado basado en estas claves.

A modo de ejemplo, los autores afirman haber hallado al primer intento una clave de 512 bits utilizada en OpenSSL, en sólo varias milésimas de segundo.

La única solución a este fallo de seguridad reside en rediseñar por completo los procesadores reduciendo de esta manera su velocidad.

La noticia puede leerse en Kritopolis.

Sincronizacion de Hora

meneame.net TRACK TOP
Publicado el 19th Noviembre, 2006 por KaRMaN. Archivado en Linux.
Leido 7,232 veces. Comments Off

¿Alguna vez os habeis percatado de que se os va la hora en los relojes? Con el tiempo la falta de precisión hace que se nos adelante o retrase la hora. Tambien la falta de energía por agotamiento de una pila o el fin de la correa de un reloj pueden ser motivos de desincronización en un reloj.

Hace tiempo que me cansé de ello y decidí tener una hora maestra que se actualizase automaticamente a partir de la cual sincronizar el resto de relojes cada cierto tiempo.

Para ello he escogido mi servidor linux, ya que se trata de una máquina que no se apaga nunca. En cualquier caso no es necesario que sea una máquina 24 horas en pie.

Lo que básicamente necesitamos es un cliente del protocolo ntp. En debian lo podemos encontrar en el repositorio de apt:

# apt-get install ntpdate

Ahora el binario ntpdate se encuentra instalado en nuestro sistema. Para hacerlo funcionar basta con que ejecutemos

# ntpdate -u servidor.ntp

en donde servidor.ntp es un servidor que soprote el protocolo ntp. En mi caso yo utilizo ntp.upv.es.

Por último quise que se sincronizase la hora de forma automática cada domingo, para lo que añadí la siguiente entrada al archivo /etc/crontab:

#minute hour mday month wday who command

00 00 * * 1 root ntpdate -u ntp.upv.es

en donde el 1 es el día de la semana (domingo) que queremos que se ejecute la sincronización empezando por el domingo (1-7).

Sun Libera JAVA

meneame.net TRACK TOP
Publicado el 18th Noviembre, 2006 por KaRMaN. Archivado en Software Libre.
Leido 8,579 veces. Comments Off

A principios de semana Sun Microsystems anunciaba que facilitará el acceso libre y gratuito a las clases de su popular lenguaje de programación a lo largo del 2007, aunque este pasado lunes ya había acceso a una gran variedad de estos.

De este modo, Sun Microsystems contribuye una vez mas a la comunidad Open Source con el que ha contribuido tanto con su Open Office y Sun Solaris, una alternativa a M$ Office y Linux.