Gentoo Wiki ArchivesGentoo Wiki

Scratchbox

This article is still a Stub. You can help Gentoo-Wiki by expanding it.

Contents

preface

This howto attempts to build Maemo for the Nokia 770, using the SDK.

Once you have Scratchbox installed on your Gentoo host, you should take a look at the already written Installation Documents which are more thorough than this HowTo..

kernel compatibility

enable VDSO in your kernel .config.

CONFIG_COMPAT_VDSO=y
Linux Kernel Configuration: Processor type and features
   [*] Compat VDSO support

If you made this change to your kernel, it is now time to recompile, and reboot.

If you boot a kernel without VDSO support and attempt to login to the Scratchbox environment you will recieve the following error.

Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!

emerging scratchbox

add sunrise overlay

# Use layman to add the Project Sunrise overlay.
sudo layman -a sunrise

prepare package.keywords

you will need to add a few lines to your package.keywords.

File: /etc/portage/package.keywords
sys-devel/scratchbox
sys-devel/scratchbox-devkit-debian
sys-devel/scratchbox-devkit-cputransp
sys-devel/scratchbox-devkit-perl
sys-devel/scratchbox-devkit-doctools
sys-devel/scratchbox-toolchain-cs2005q3_2-glibc

prepare package.use

File: /etc/portage/package.use
sys-devel/scratchbox-toolchain-cs2005q3_2-glibc         arm i386

emerge

sudo emerge -tav scratchbox scratchbox-devkit-debian scratchbox-devkit-perl scratchbox-devkit-cputransp scratchbox-devkit-doctools scratchbox-toolchain-cs2005q3_2-glibc 

Scratchbox permissions

Per the ebuild you will need to exec the following emerge command.

emerge --config =sys-devel/scratchbox-1.0.7

Xephyr support

Rebuild your xorg-server with the kdrive USE flag and then restart xorg.

testing Xephyr

Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &
export DISPLAY=localhost:2
xterm

Maemo

You will need to download the appropriate SDK files from the repository.

Maemo_Dev_Platform_v2.2_i386-rootstrap.tgz


maemo 2.2 'gregale' for Nokia 770 development

Copy over the Maemo Dev Platform rootstraps, and rootfs sudo cp Maemo_Dev_Platform_* /opt/scratchbox/packages/

Check Scratchbox configuration

This step is Optional, but good to know about if something breaks. su to root, and run /opt/scratchbox/run_me_first.sh run_me_first.sh example output.

This script has already been run (/opt/scratchbox/.run_me_first_done exists)

Would you like to continue anyway? [yes/no] (no): yes
Do you want to use sudo mode? [yes/no] (no): no
Give the name of the scratchbox group (sbox): 
Stopping Scratchbox: umount, binfmt_misc.
Starting Scratchbox: binfmt_misc, mount.

Starting/Stopping Scratchbox environment

The Scratchbox emerge should have installed /etc/init.d/scratchbox Please use rc-update to dictate how the Scratchbox Environment is controlled.

Manually Controlling Scratchbox Environment sudo /opt/scratchbox/sbin/sbox_ctl start

sudo /opt/scratchbox/sbin/sbox_ctl stop

OPTIONAL: Start/Stop the environment on boot.

sudo su
echo "/opt/scratchbox/sbox_ctl start">> /etc/conf.d/local.start
echo "/opt/scratchbox/sbox_ctl stop">> /etc/conf.d/local.stop
exit


Create a Scratchbox user

You will need to be sure the user account you create already has an account on your system. /opt/scratchbox/sbin/sbox_adduser user

Login to Scratchbox

/opt/scratchbox/login

creating your target scratchbox

Follow the Scratchbox installation instructions on how to use sb-menu and HowTo create a cross-compilation target for ARM and i386 When prompted use the fill-in-the-blank-rootstrap. Maemo_Dev_Platform_v2.2_i386-rootstrap.tgz

Fetch the generate virtuals script into your /opt/scratchbox/packages and rename it to maemo-sdk-virtual.sh and then sudo chmod +x /opt/scratchbox/packages/maemo-sdk-virtual.sh

You will also want to download the Debian equivs package to the /packages directory.

Login to your scratchbox using /opt/scratchbox/login and perform;

# manually install the equivs Debian package
fakeroot dpkg --ignore-depends=perl \
--ignore-depends=debhelper --ignore-depends=make \
--ignore-depends=dpkg-dev --ignore-depends=devscripts \
-i /scratchbox/packages/equivs_2.0.7_all.deb

# this script will take a few minutes to complete it's operation.
/scratchbox/packages/maemo-sdk-virtual.sh
# install the created Debian packages.
fakeroot dpkg -i tmp/*.deb 

apt-get update

apt-get -f upgrade

testing your Scratchbox target

Test Scratchbox

starting Maemo system

For this to work, you will need to start Xephyr as shown above.

export DISPLAY=localhost:2

af-sb-init.sh start

screenshot of Xephyr and Maemo

links and reference

http://lists.maemo.org/pipermail/maemo-developers/2007-February/008387.html http://lists.maemo.org/pipermail/maemo-developers/2007-February/008391.html

Retrieved from "http://www.gentoo-wiki.info/Scratchbox"

Last modified: Mon, 08 Sep 2008 17:19:00 +1000 Hits: 9,325

Created by NickStallman.net, Luxury Homes Australia
Real estate agents should list their apartments, townhouses and units in Australia.