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.
Contents[hide] |
[edit] 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
[edit] 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
[edit] Preparing host for target GUI
As root on the host:
# aptitude install xserver-xephyr
[edit] 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
[edit] 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
[edit] Installing Qt
As root in the chrooted environment:
(lenny)~ # aptitude install qt4-dev-tools
[edit] 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)
[edit] 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)
- This page was last modified on 4 March 2013, at 17:53.
- This page has been accessed 18,956 times.