Instalando o Maemo-SDK no Debian (lenny)

A bastante tempo ouço e leio artigos e notícias a respeito da plataforma Maemo desenvolvida peloa Nokia para os seus tablets Nokia 770/N810/N800 e sempre tive vontade de fuçar um pouco, conhecer mais a plataforma. Eis que surgiu uma oportunidade, a partir de um grupo de pesquisa formado por alunos da Fucapi e (por enquanto eu) do Cefet-AM, montado com o intuito de pesquisar a plataforma aprender com ela e quem sabe desenvolver alguma coisa. Como apanhei um pouco pra colocar toda essa parafernalha pra funcionar aqui no meu debian(lenny/unstable), resolvi criar esse passo-a-passo a fim de facilitar, e encurtar o caminho pra quem deseja iniciar nessa jornada também. Boa sorte!

Nota: Este passo-a-passo não tem como objetivo substituir a documentação oficial de instalação.
Em caso de dúvidas ou para maiores informações acesse:

http://maemo.org/development/

Obs: Antes de começar, uma observação: O wordpress quebra as linhas, portanto, nos trechos de código, se não houver uma “\” significa que o comando se dá na mesma linha.

Começando:

Parte 1 – Instalando o Scratchbox

O que é o Scratchbox?

Scratchbox é um toolkit de cross-compilação desenvolvido para tornar o desenvolvimento de aplicações Linux embarcadas mais fácil. Ele também disponibiliza um completo conjunto de ferramentas para integrar e cross-compilar uma distribuição linux inteira. Para maiores informações acesse o site

http://scratchbox.org

Vamos começar adicionando o repositório do scratchbox ao sources.list:

~# echo "deb http://scratchbox.org/debian stable main" >> /etc/apt/sources.list

Em seguida atualizamos a lista de pacotes:

~# aptitude update

Após o update vamos instalar o scratchbox e alguns pacotes necessários:

~# aptitude install scratchbox-core \
scratchbox-libs \
scratchbox-devkit-cputransp \
scratchbox-devkit-debian \
scratchbox-devkit-doctools \
scratchbox-devkit-maemo3 \
scratchbox-devkit-perl \
scratchbox-toolchain-cs2005q3.2-glibc2.5-arm \
scratchbox-toolchain-cs2005q3.2-glibc2.5-i386 \

O próximo passo é adicionar o seu usuário ao grupo sbox (necessário para poder executar o binário scratchbox):

~# groupadd usuario sbox

Logo após adicionar o mesmo usuário como um usuário no scratchbox:

~# /scratchbox/sbin/sbox_adduser `whoami` yes

Podemos agora efetuar o logout para que o sistema reconheça que o usuário faz parte também do grupo sbox, ou podemos digitar o comando abaixo e já começar a brincadeira :)

~# su usuario

Aoós estes passos o Scratchbox está instalado. Ele criou um diretório /scratchbox (na raiz do sistema) onde será instalado o Maemo-SDK.
Você pode testar sua instalação do Scratchbox simplesmente digitando scratchbox (que é um link simbólico para /scratchbox/login).

Parte 2 – Instalando o Maemo-SDK

O meio mais simples de se instalar é usando o script disponibilzado na seção download do site do maemo. No nosso caso Maemo SDK 4 (Chinook), que pode ser obtido neste link direto: maemo-sdk-install_4.0.1.sh

Agora, uma vez que você baixou o script, como usuário normal do sistema, podemos executar o script de instalação do maemo-sdk:

~$ sh maemo-sdk-install_4.0.1.sh

Depois de fazer alguns testes e verificações é mostrada uma tela com as seguintes opções de instalação do SDK:

* Minimal Rootstrap only. Choose this only if you are going to
install all packages you need from repository.
* Runtime Environment. Use this to install and run software inside
Scratchbox. Cannot be used for building software.
* Runtime Environment + All Dev Packages. Choose this to get a full
development environment.
* Runtime Environment + All Dev and Dbg Packages. You will get a full
development environment plus debug symbols for many system components.

Eu escolhi a terceira que é a default. Nesse momento você irá aguardar o script fazer o download de alguns pacotes através do apt, essa etapa pode levar bastante tempo, dependendo da sua conexão.

Algumas horas depois… o.O

————————————————————————-
Installation was successful!
—————————-

IMPORTANT! Please read this.

You now have the maemo 4.0.1 chinook installed on your computer.
You can now start your maemo SDK session with /scratchbox/login and
then select your target with ‘sb-conf select CHINOOK_ARMEL’ for the
armel target or ‘sb-conf select CHINOOK_X86′ for the i386 target.

If you have any problems with targets’ package databases, you can try
running ‘fakeroot apt-get -f install’ on your scratchbox target.
This command will try to fix any problems with the package database.

Nokia EUSA binaries
——————-

The package maemo-explicit is a metapackage of Nokia EUSA licensed
binaries which can be installed to scratchbox targets. It is highly
recommended to install this package on both targets to ensure a fully
working system.

If you want to install these, login to scratchbox (see commands above)
and run the command ‘fakeroot apt-get install maemo-explicit’ for both
armel (CHINOOK_ARMEL) and i386 (CHINOOK_X86) targets.

Happy hacking!
————————————————————————-

Uhuuuuulllll!!!

Mas ainda não acabou! ahahahaha! Ainda falta instalar o Xephyr X11 server, ou você quer ficar no modo texto o.O?

Façamos (no Host e não no scratchbox):

~# aptitude install xserver-xephyr

E agora “startamos” o Xephyr:

~$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite

Agora logamos no Scratchbox:

~$ scratchbox

E já logado fazemos:

[sbox-CHINOOK_X86:~] > export DISPLAY=:2

Agora sim, como Xephyr rodando no sistema host podemos iniciar o Hildon Application Framework:

[sbox-CHINOOK_X86:~] > af-sb-init.sh start

Ahhhhh muleeeeeeeeque! Agora sim, HAPPY HACKING!!! >:)

Espero que esse passo-a-passo ajude os que estiverem encontrando dificuldades em proceder com a instalação.

E como uma imagem vale mais que mil palavras, não poderia deixar de ter ao menos uma screenshot, certo?

:wq!

5 Responses to “Instalando o Maemo-SDK no Debian (lenny)”

  1. Daniel Martins Says:

    Beleza! esse final de semana eu testo o passo-a-passo.! :-)

    Para os que desconhecem o significado de “cross-compilar” ou “cross-compile”, este processo é basicamente compilar um código fonte para diversas plataformas ou arquiteturas.

    Ou seja, o Scratchbox é uma ferramenta de desenvolvimento que ajuda a compilar um código fonte para a plataforma e arquitetura do maemo. O sistema operacional é OS2008 da nokia que roda na arquitetura ARM(do dispositivo) e o maemo é a plataforma de aplicações.

  2. Adorilson Says:

    Marcelo,

    eu apliquei isso aí no Ubuntu 8.04. E chegamos ao resultado final, nao meio do caminho saiu algumas mensagens, como:

    adorilson@dgti5:/media/sda1/downloads$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite &
    [1] 3079
    adorilson@dgti5:/media/sda1/downloads$ expected keysym, got XF86KbdLightOnOff: line 70 of pc
    expected keysym, got XF86KbdBrightnessDown: line 71 of pc
    expected keysym, got XF86KbdBrightnessUp: line 72 of pc
    expected keysym, got XF86KbdLightOnOff: line 70 of pc
    expected keysym, got XF86KbdBrightnessDown: line 71 of pc
    expected keysym, got XF86KbdBrightnessUp: line 72 of pc
    Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!

    [sbox-CHINOOK_ARMEL: ~] > af-sb-init.sh start
    Note: For remote X connections DISPLAY should contain hostname!
    Starting DBUS system bus
    Starting D-BUS session bus daemon
    Starting Maemo Launcher: maemo-launcher.
    defender: died my parent is not who he claims to be
    maemo-launcher: error rising the oom shield for pid=3217 status=2816
    Starting Sapwood image server
    Starting Matchbox window manager
    qemu: Unsupported syscall: 307
    qemu: Unsupported syscall: 305
    mbpixbuf: unable to use XShm. DISPLAY remote?
    qemu: Unsupported syscall: 306
    qemu: Unsupported syscall: 308
    Starting clipboard-manager
    sapwood-server[3234]: GLIB INFO default – server started
    Starting Keyboard
    maemo-launcher: invoking ‘/usr/bin/hildon-input-method.launch’
    Starting Hildon Desktop
    maemo-launcher: invoking ‘/usr/bin/hildon-desktop.launch’
    qemu: Unsupported syscall: 264
    qemu: Unsupported syscall: 264
    [sbox-CHINOOK_ARMEL: ~] > qemu: Unsupported syscall: 316
    hildon-desktop[3284]: GLIB WARNING ** gnome-vfs-modules – Could not initialize inotify
    /home/adorilson/.osso/current-gtk-key-theme:1: Unable to find include file: “keybindings.rc”
    hildon-desktop[3284]: GLIB WARNING ** default – unable to register TN callback for /usr/share/applications/hildon
    /home/adorilson/.osso/current-gtk-key-theme:1: Unable to find include file: “keybindings.rc”
    hildon-desktop[3284]: GLIB WARNING ** default – Plugin desktop file not found, ignoring plugin
    .
    .
    .

    Aí no Debian também deu isso ou não?

  3. Daniel Says:

    Adorilson,

    Não tive esse problema mesmo usando o ubuntu 8.04, tive sim outros problemas.

    Apesar de parecer que o seu problema está relacionado a instalação/configuração de softwares adicionais, você pode tentar:

    como root:
    echo 0 > /proc/sys/vm/vdso_enabled
    echo 4096 > /proc/sys/vm/mmap_min_addr

    cuja informação está neste link: http://www.internettablettalk.com/forums/showthread.php?p=175208

  4. André Loureiro Says:

    Muito bom Marcelo. Mas so pra aqueles que por ventura tiverem o mesmo problema que eu quando executar o comando $scratchbox e aparecer algo como: ERROR: ‘/scratchbox/sbin/chroot-uid’ is not suid ROOT.
    Executem o comando: $sudo chmod u+s /scratchbox/sbin/chroot-uid
    Depois disso vc terá o scratchbox funfante no seu debian.

  5. Éverton M. Arruda Jr (Notrev) Says:

    Cara, demora demais para instalar o scratchbox, haja paciência! =]

    Parabéns pelo tutorial, muito bem explicado!

    Abraço.

Leave a Reply