Maemo SDK+ installation on Debian (AMD64)
The Maemo SDK+ package includes scratchbox 2 and Qt, but it will only install on 32-bit platforms. If you're running Debian with a 64-bit kernel, Maemo SDK+ can be installed into a chrooted 32-bit environment that sits on top of your 64-bit platform. This guide takes you through all the steps to the point of compilation and running the test.
Building the chrooted platform
All steps in this section are executed as root, directly on the host.
Using lenny (old, from the archives):
# aptitude install debootstrap # debootstrap --arch i386 lenny /srv/lenny-ia32 http://archive.debian.org/debian/ # echo "deb http://maemo-sdk.garage.maemo.org/download/host debian-lenny free" >> /srv/lenny-ia32/etc/apt/sources.list # aptitude install schroot
Or using sqeeze (current stable):
# aptitude install debootstrap # debootstrap --arch i386 squeeze /srv/lenny-ia32 http://ftp.debian.org/debian/ # echo "deb http://maemo-sdk.garage.maemo.org/download/host debian-squeeze free" >> /srv/lenny-ia32/etc/apt/sources.list # aptitude install schroot
You may want to adjust the /srv/lenny-ia32 directory, but then you'd have to adjust it in the rest of the instructions as well (together with any other lenny references if you like).
# cat >> /etc/schroot/schroot.conf <<EOF [lenny] description=Debian lenny type=directory location=/srv/lenny-ia32 priority=3 users=<YOUR_USERNAME_HERE!!> (A comma-separated list of users on the host which are allowed access to the chroot) groups=<YOUR_USER_GROUPNAME_HERE!!> (A comma-separated list of groups on the host which are allowed access to the chroot. probably "users") root-groups=root aliases=stable,default EOF# eval $(sed -rne '/^(FIRST|LAST)_.ID/p' /etc/adduser.conf) # USER_LIST=$(sed -e 's/ /,/' <<< $(awk -F: $FIRST_UID'<=$3 && $3<='$LAST_UID' {print $1}' /etc/passwd)) # GROUP_LIST=$(sed -e 's/ /,/' <<< $(awk -F: $FIRST_GID'<=$3 && $3<='$LAST_GID' {print $1}' /etc/passwd)) # echo -e "[lenny] description=Debian lenny type=directory directory=/srv/lenny-ia32 priority=3 users=$USER_LIST groups=$GROUP_LIST root-groups=root aliases=stable,default" >> /etc/schroot/schroot.conf # echo "export PS1='(lenny)\w \\$ '" >> /srv/lenny-ia32/root/.bashrc
Installing Maemo SDK+
While still logged in as root on the host:
# schroot -c lenny (lenny)~ #
or
# chroot /srv/lenny-ia32/ /bin/bash (lenny)/ #
You are now logged in as root in the chrooted environment as root.
(lenny)~ # aptitude update (lenny)~ # aptitude install maemo-sdk (lenny)~ $ maemo-sdk reload catalogue (lenny)~ # maemo-sdk list available tools etch etch-2008 lenny-2009-1
Install tools:
(lenny)~ # maemo-sdk --mirror http://archive.debian.org/debian/ install tools lenny-2009-1
(lenny)~ # maemo-sdk list available toolchains arm-2005q3 arm-2007q3 i386-2007q3
Install toolchain:
(lenny)~ # maemo-sdk install toolchain arm-2007q3
As the SDK needs to use sudo to gain root access later, we need to configure sudo:
(lenny)~ # visudo
You will be in an editor session now. Modify the file so that it looks like this (remove the comment sign in front of the last lign):
Defaults env_reset root ALL=(ALL) ALL %sudo ALL=NOPASSWD: ALL
Now, log out of the schroot section, log out of the root account, and as a normal user on the host, log in to the chroot:
(lenny)~ # logout # logout $ schroot -c lenny (lenny)~ $
You are now logged in as root in to the chrooted environment as a normal (non-root) user.
Now, choose a rootstrap to install:
(lenny)~ $ maemo-sdk list available rootstraps
You get a list of rootstraps
diablo4.1.2_armel diablo4.1.2_i386 diablo4.1.1_armel diablo4.1.1_i386 diablo4.1_armel diablo4.1_i386 fremantle5.0minimal_armel fremantle5.0minimal_i386 fremantle5.0beta1_armel fremantle5.0beta1_i386 scirocco2.2_armel scirocco2.2_i386 mistral2.0_armel
Now, install your desired rootstrap. For example
(lenny)~ $ maemo-sdk install rootstrap diablo4.1.2_armel (lenny)~ $ sb2 -eR apt-get update (lenny)~ $ sb2 -eR apt-get install maemo-sdk-runtime maemo-sdk-dev maemo-sdk-debug
Preparing host for target GUI
As root on the host:
# aptitude install xserver-xephyr
Building Maemopad to test the build environment
As a normal (non-root) user on the host:
$ schroot -c lenny
You are now logged in as root in to the chrooted environment as a normal (non-root) user.
(lenny)~ $ mkdir -p ~/src/mytest (lenny)~ $ cd ~/src/mytest (lenny)~/src/mytest $ sb2 -eR apt-get update (lenny)~/src/mytest $ sb2 apt-get -eR build-dep maemopad (lenny)~/src/mytest $ sb2 apt-get source maemopad (lenny)~/src/mytest $ cd maemopad-2.6 (lenny)~/src/mytest/maemopad-2.6 $ export SBOX_REDIRECT_FORCE=/usr/bin/perl (lenny)~/src/mytest/maemopad-2.6 $ sb2 dpkg-buildpackage -rfakeroot -d -b
Running Maemopad
As user on the host:
$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac & $ schroot -c lenny
You are now logged in as root in to the chrooted environment as a normal (non-root) user.
(lenny)~ $ export DISPLAY=:2 (lenny)~ $ cd ~/src/mytest/ (lenny)~/src/mytest $ sb2 -eR dpkg -i maemopad_2.6-3+0m5_armel.deb (lenny)~/src/mytest $ maemo-sdk start gui
Notice that Maemopad appears in the x11 window.
Now you can launch MaemoPad from the Extras menu in the Xephyr window.
(lenny)~/src/mytest $ maemo-sdk stop gui
Installing Qt
As root in the chrooted environment:
(lenny)~ # aptitude install qt4-dev-tools
Known Issues
The procedures above work quite well, other than the fact that the following scripts are missing from the chrooted environment:
* run-standalone.sh * af-sb-init.sh
They don't seem to be important.. just a cosmetic matter.
I have ~/.maemo-sdk/rootstraps/armel/diablo4.1.2_armel/usr/bin/run-standalone.sh and ~/.maemo-sdk/rootstraps/armel/diablo4.1.2_armel/usr/bin/af-sb-init.sh I'm not sure where I got them --SwaJime 22:50, 5 August 2010 (UTC)
Guides used as a source for this document
Parts of the following sites were used to compose this guide. These sites should be visited to get more detail on the process.
- https://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html
- http://www.debian-administration.org/articles/566
- http://nion.modprobe.de/blog/archives/539-Setting-up-build-chroots-on-Debian.html
- http://repository.maemo.org/stable/4.1.2/INSTALL.txt
- http://maemo-sdk.garage.maemo.org/install-debian.html
This page has been brought up to date.--SwaJime 23:03, 5 August 2010 (UTC)