Maemo SDK+ installation on Debian (AMD64)
m (→Building the chrooted platform) |
(→Installing Maemo SDK+) |
||
Line 39: | Line 39: | ||
===Installing Maemo SDK+=== | ===Installing Maemo SDK+=== | ||
- | + | While still logged in as root on the host: | |
# schroot -c lenny | # schroot -c lenny | ||
+ | (lenny)~ # | ||
or | or | ||
# chroot /srv/lenny-ia32/ /bin/bash | # chroot /srv/lenny-ia32/ /bin/bash | ||
+ | (lenny)/ # | ||
You are now logged in as root in the chrooted environment as ''root''. | You are now logged in as root in the chrooted environment as ''root''. | ||
- | # aptitude update | + | (lenny)~ # aptitude update |
- | # aptitude install maemo-sdk | + | (lenny)~ # aptitude install maemo-sdk |
- | # maemo-sdk install tools lenny-2009-1 | + | (lenny)~ # maemo-sdk install tools lenny-2009-1 |
As the SDK needs to use sudo to gain root access later, we need to configure sudo: | As the SDK needs to use sudo to gain root access later, we need to configure sudo: | ||
- | # visudo | + | (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): | 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 | Defaults env_reset | ||
Line 54: | Line 56: | ||
%sudo ALL=NOPASSWD: ALL | %sudo ALL=NOPASSWD: ALL | ||
- | + | Now, log out of the schroot section, log out of the root account, and log in as a normal user on the host: | |
+ | (lenny)~ #logout | ||
+ | # logout | ||
$ schroot -c lenny | $ schroot -c lenny | ||
- | You are now logged in as root in the chrooted environment as a | + | (lenny)~ $ |
+ | You are now logged in <s>as root in</s> to the chrooted environment as a ''normal (non-root) user''. | ||
Now, choose a rootstrap to install: | Now, choose a rootstrap to install: | ||
- | $ maemo-sdk list available rootstraps | + | (lenny)~ $ maemo-sdk list available rootstraps |
You get a list of 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 | Now, install your desired rootstrap. For example | ||
- | $ maemo-sdk install rootstrap '''''fremantle5.0beta1_armel''''' | + | (lenny)~ $ maemo-sdk install rootstrap '''''fremantle5.0beta1_armel''''' |
- | $ sb2 -eR apt-get update | + | (lenny)~ $ sb2 -eR apt-get update |
- | $ sb2 -eR apt-get install maemo-sdk-runtime maemo-sdk-dev maemo-sdk-dbg | + | (lenny)~ $ sb2 -eR apt-get install maemo-sdk-runtime maemo-sdk-dev maemo-sdk-dbg |
===Preparing host for target GUI=== | ===Preparing host for target GUI=== |
Revision as of 20:43, 5 August 2010
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 xxx # cat >> /etc/schroot/schroot.conf <<EOF xxx [lenny] xxx description=Debian lenny xxx type=directory xxx location=/srv/lenny-ia32 xxx priority=3 xxx users=<YOUR_USERNAME_HERE!!> (A comma-separated list of users on the host which are allowed access to the chroot) xxx groups=<YOUR_USER_GROUPNAME_HERE!!> (A comma-separated list of groups on the host which are allowed access to the chroot. probably "users") xxx root-groups=root xxx aliases=stable,default xxx 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='[SDK+]\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 install tools lenny-2009-1
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 log in as a normal user on the host:
(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 fremantle5.0beta1_armel (lenny)~ $ sb2 -eR apt-get update (lenny)~ $ 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