Differences between revisions 21 and 23 (spanning 2 versions)
Revision 21 as of 2006-04-18 21:24:16
Size: 2317
Comment:
Revision 23 as of 2008-01-18 12:56:19
Size: 2337
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Gentoo On iPaq =
Line 7: Line 9:
[[GoogleAd()]] <<GoogleAd>>
Line 27: Line 29:
If this fails complaining kernel headers are too old, do the following quick hack (see [http://forums.gentoo.org/viewtopic-t-452498.html this forum] for more info... If this fails complaining kernel headers are too old, do the following quick hack (see [[http://forums.gentoo.org/viewtopic-t-452498.html|this forum]] for more info...
Line 70: Line 72:
[[GoogleAd()]] <<GoogleAd>>

Gentoo On iPaq

The idea

Use only as little space as necessary. This includes no portage nor gcc install on target system (ipaq). The idea is to fully cross-compile the system for ipaq on a i686 host into a subdir (using the ${ROOT} portage feature) and create a jffs2 image which will be uploaded to the ipaq (later updates will be done over nfs-mounted root).

  • /!\ UPDATE: Now that the handhelds.org 2.6 kernel can boot right from SD, we don't need to bother with creating the jffs2 image.

The steps

It's best if you write this to a script...

First, we need the tools for cross-compiling...

emerge crossdev

crossdev --target arm-unknown-linux-gnu

If the above fails, try with safer versions...

crossdev -t arm-unknown-linux-gnu --g 3.4.6 --l 2.3.6-r3

If this fails complaining kernel headers are too old, do the following quick hack (see this forum for more info...

ln -s /usr/arm-unknown-linux-gnu/usr/include/ /usr/arm-unknown-linux-gnu/include

mkdir /usr/arm-unknown-linux-gnu/usr/arm-unknown-linux-gnu
ln -s /usr/arm-unknown-linux-gnu/lib/ /usr/arm-unknown-linux-gnu/usr/arm-unknown-linux-gnu/lib

Now you should have the complete cross-compiler (with C++) support ready. If not, don't bother to continue...

Prepare the destination directory...

mkdir /tmp/ipaq

Now, we can start building the target system...

export ARCH="arm"
export ACCEPT_KEYWORDS="-* arm"
export CHOST="arm-unknown-linux-gnu"
export CBUILD="i686-pc-linux-gnu"

export CFLAGS="-O2 -pipe"
export CXXFLAGS=${CFLAGS}

export ROOT="/tmp/ipaq"

export USE="-*"

export FEATURES="-distcc"

export CONFIG_PROTECT="-* ${ROOT}/etc"

### Bootstrap ###
USE="bootstrap build" emerge sysvinit -1
USE="bootstrap build" emerge baselayout -1
emerge sys-kernel/linux-headers -1
USE="bootstrap build" emerge =sys-libs/glibc-2.3* -1

Vapier's achievements