Month: October 2006

Gravando nova image no iPaq

Após instalar o ”bootldr” no iPaq (usando o próprio WinCE) reinicie o iPaq selecione a opção Serial Bootloader Console.

Entre no minicom (configurado previamente com a porta serial que você está usando e com o baudrate 115200 e 8N1) deverá aparecer o prompt:

boot>

Então entre com o comando: ”load root” este comando irá copiar a imagem do gpe para o partição ”root” da memória flash.

Em seguida digite a sequência CTRL+A+Z e escolha ”Send File” e use o padrão ”ymodem” para enviar a imagem para o iPaq. Selecione a imagem que deseja enviar, no caso gpe.bin, precise a barra de espaço para selecionar o arquivo e enter para iniciar a transferência.

Instalador Multiplataforma (Linux, Windows, etc)

Tanto Linux quanto Windows tem seus próprios instaladores, mas e ai? como criar aplicações multiplataforma (em Java, Python, etc) e instalá-las corretamente nos dois sistemas operacionais?

Após procurar e testar vários instaladores encontrei a jóia da coroa, sem dúvida o melhor instalador entre as soluções comerciais e livres testadas, chama-se InstallJammer.

E o melhor: é totalmente livre. Curiosamente escrito em tcl/tk o instalador gera instalação gráfica semelhante ao InstallShield e InstallAnyware (produto comercial, com bons recursos, mas muito caro ~ $3.000).

Para conferir acessem:
http://www.installjammer.com

Criando um initramfs

O initramfs é um substitudo do initrd usado no kernel 2.6.
A vantagem do initramfs sobre o initrd é principalmente o fato que ele aloca memória conforme sua necessidade, ou seja, você não precisa criar um ramdisk maior que sua necessidade para evitar problema de espaço.

Para criar um initramfs entre no diretório onde está a sua árvore que será usada como FS e execute o comando:

find . | cpio -H newc –create –verbose | gzip -9 > /root/ramfs.img

A função do_header() no arquivo init/initramfs.c procura pelo código “070701” (magic number) que é definido pelo formato ‘newc’.

Dicas para compilar o Matchbox com a uClibc

Compile a libpng do buildroot.
Copie a libpng12.so para /xc/exports/lib e o png.h para /xc/exports/include

Compilar libmatchbox, alterar Makefile:
MB_EXTRA_CFLAGS = -I/xc/exports/include
AM_CFLAGS = -g -Wall -fno-strict-aliasing -I/xc/exports/include -DDATADIR=\”$(datadir)\”
libmb_la_LIBADD = -L/xc/exports/lib -lX11 -lXext -lpng12

Compilar matchbox-window-manager:
LIBMB_CFLAGS = -g -Wall -fno-strict-aliasing -I/xc/exports/include -I/libs/include
LIBMB_LIBS = -L/xc/exports/lib -L/libs/lib -lmb -lX11 -lXext -lpng12

Compilar o rxvt com o toolchain do buildroot

env AR=i686-linux-uclibc-ar CC=i686-linux-uclibc-gcc CPP=i686-linux-uclibc-cpp CXX=i686-linux-uclibc-g++ RANLIB=i686-linux-uclibc-ranlib LD=i686-linux-uclibc-ld ./configure –target=i686-linux –host=i686-linux –x-libraries=/xc/exports/lib –x-includes=/xc/exports/include 2>&1 | tee configure.log