Day: August 10, 2008

Compilando o kernel OpenEZX para o A1200

Para compilar o kernel para o Motorola A1200 voce deve primeiramente baixar o kernel mainline 2.6.21:

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.gz
$ tar zxvf linux-2.6.21.tar.gz

Crie um diretorio chamado patches dentro do kernel que vc acabou de descompactar
$ cd linux-2.6.21
$ mkdir patches

Baixe todos os arquivos de http://svn.openezx.org/trunk/src/kernel-2.6/patches/ para dentro de patches.

Baixe o toolchain para ARM:
http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2008q1-126-arm-none-linux-gnueabi.bin

Instale o toolchain em /opt/CodeSourcery/Sourcery_G++_Lite.

Entre dentro do diretorio do kernel 2.6.21 e execute o comando para aplicar os patches em serie:
$ quilt push -a

Mais informacoes sobre como o quilt funciona leia estas dicas:
http://www.wzdftpd.net/blog/index.php?2008/02/05/3-quilt-a-patch-management-system-how-to-survive-with-many-patches

Execute o comando para compilacao do kernel:
make -f patches/Makefile.OpenEZX CROSS_COMPILE=/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-

Ao final da instalacao serao gerados varios arquivos de imagem, mas o que nos interessa e’ apenas o zImage-a1200.

Para rodar este kernel no seu celular voce precisara’ do programa boot_usb. Este programa permite enviar a imagem do kernel para a memoria RAM usando o bootloader do celular. Se voce nao quiser compilar o boot_usb pode baixa-lo daqui.

Este processo nao ira’ apagar o firmware original do seu celular, apenas ira’ enviar a imagem para RAM, entao fique tranquilo, nao precisa ter medo de testa-lo.

Entao vamos ao que interessa: desligue o celular, em seguida mantenha pressionado o botao VR (reconhecimento de voz) e pressione o botao PowerOn, devera’ aparecer a tela vermelha do bootloader. Ligue o cabo de dados no celular e no PC.

Para enviar o kernel para a memoria RAM do seu celular execute:
# boot_usb zImage.a1200

Voce vera’ a inicializacao do kernel em pequenas letras verdes. Infelizmente receberemos um kernel panic, pois ainda nao temos um root file system configurado. Este e’ o proximo passo.