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
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!
May 15th, 2008 at 7:13 pm
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.
May 27th, 2008 at 10:55 am
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?
May 30th, 2008 at 3:58 pm
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
June 24th, 2008 at 12:40 pm
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.
September 2nd, 2008 at 7:57 pm
Cara, demora demais para instalar o scratchbox, haja paciência! =]
Parabéns pelo tutorial, muito bem explicado!
Abraço.