Maemo SDK+ installation on Debian (AMD64)
This article is out-of-date, and needs to be updated. Please see the talk page for discussion. |
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.
Contents |
Building the chrooted platform
All steps in this section are executed as root, directly on the host.
# aptitude install debootstrap # debootstrap --arch i386 lenny /srv/lenny-ia32 http://ftp.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 # cat >> /etc/schroot/schroot.conf <<EOF [lenny] description=Debian lenny type=directory location=/srv/lenny-ia32 priority=3 users=<YOUR_USERNAME_HERE!!> groups=<YOUR_USER_GROUPNAME_HERE!! (probably "users")> root-groups=root run-setup-scripts=true run-exec-scripts=true aliases=stable,default EOF
Installing Maemo SDK+
As root on the host:
# schroot -c lenny
or
# chroot /srv/lenny-ia32/ /bin/bash
You are now logged in as root in the chrooted environment as root.
# echo "deb http://maemo-sdk.garage.maemo.org/download/host debian-lenny free" >> /etc/apt/sources.list # aptitude update # aptitude install maemo-sdk # maemo-sdk install tools lenny-2009-1
As the SDK needs to use sudo to gain root access later, we need to configure sudo:
# 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
As user on the host:
$ schroot -c lenny
You are now logged in as root in the chrooted environment as a user.
Now, choose a rootstrap to install:
$ 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
$ maemo-sdk install rootstrap fremantle5.0beta1_armel $ sb2 -eR apt-get update $ sb2 -eR apt-get install maemo-sdk-runtime maemo-sdk-dev maemo-sdk-dbg
Preparing host for target GUI
As root on the host:
$ aptitude install xserver-xephyr
Building Maemopad to test the build environment
As user on the host:
$ schroot -c lenny
You are now logged in as root in the chrooted environment as a user.
$ mkdir -p ~/src/mytest $ cd ~/src/mytest $ sb2 -eR apt-get update $ sb2 apt-get source maemopad $ cd maemopad-2.4 $ export SBOX_REDIRECT_FORCE=/usr/bin/perl $ sb2 dpkg-buildpackage -rfakeroot -d -b
Running Maemopad
As user on the host:
$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb $ schroot -c lenny
You are now logged in as root in the chrooted environment as a user.
$ export DISPLAY=:2 $ sb2 -eR dpkg -i maemopad_2.4_armel.deb $ maemo-sdk start gui
Notice that Maemopad appears in the x11 window.
$ maemo-sdk stop gui
Installing Qt
As root in the chrooted environment:
$ 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.
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