Natürlich ist diese Anleitung auch auf Debian-Derivate, wie (K/X)Ubuntu zu übertragen. Wenn direkt unter Gentoo gebaut werden soll kann man den Schritt mit dem Portage-Snapshot einfach überspringen, da dieses logischerweise schon vorhanden ist.
Als aller erstes erstelle ich ein Verzeichnis, in dem ich arbeite.
- sudo mkdir /opt
Jetzt lade ich mir das aktuelle Embedded Gentoo herunter und entpacke die Entwicklungsumgebung.
- wget http://mirror.switch.ch/ftp/mirror/gentoo/experimental/x86/embedded/stages/stage1-x86-uclibc-2006.1.tar.bz2
- mkdir mkdir -p /opt/i586-gentoo-uclibc-linux/usr/portage
- tar -xvjpf stage1-x86-uclibc-2006.1.tar.bz2 -C /opt/i586-gentoo-uclibc-linux/
Anschließen lade ich mir den aktuellen Portage-Snapshot herunter und entpacken diesen nach /usr/
- wget ftp://ftp.tu-clausthal.de/pub/linux/gentoo/snapshots/portage-latest.tar.bz2
- tar -xvjpf portage-latest.tar.bz2 -C /usr/
Jetzt mounte ich /proc/ sowie mein ebend entpacktes Portage in unser Gentoo (vor das bind muss jeweils noch ein -)
- mount –bind /proc /opt/i586-gentoo-uclibc-linux/proc/
- mount –bind /usr/portage /opt/i586-gentoo-uclibc-linux/usr/portage
Nun kopiere ich die resolv.conf in die Entwicklungsumgebung, damit ich im chroot auch zugriff aufs Internet habe.
- cp /etc/resolv.conf /opt/i586-gentoo-uclibc-linux/etc/resolv.conf
Soweit sind alle vorbereitungen getroffen und ich wechsel in die Entwicklungsumgebung.
- chroot /opt/i586-gentoo-uclibc-linux /bin/bash −−login
Nun aktualisiere ich die Umgebung und lade die Variablen.
- env-update
- source /etc/profile
Anschließend muss die make.conf meinen Bedürfnissen angepasst werden, da ich ein speziell angepasstes System für mein Alix.1C Board bauen möchte.
- nano -w /etc/make.conf
USE=”bitmap-fonts minimal truetype-fonts mmx”
CHOST=”i686-gentoo-linux-uclibc”
CFLAGS=”-march=i686 -Os -pipe -fomit-frame-pointer -mmmx”
CXXFLAGS=”${CFLAGS}”
FEATURES=”buildpkg”
VIDEO_CARDS=”chips”
UCLIBC_CPU=”586MMX”
Um den 2.6er Kernel zu benutzen und nicht wie in den Standarteinstellung vorgesehenen 2.4er muss ich den profil Link neu setzen.
- cd /etc/
- unlink make.profile
- ln -s ../usr/portage/profiles/uclibc/x86 make.profile
Und jetzt gehts ans bootstrappen.
- cd /usr/portage/scripts
- ./bootstrap.sh
Workaround: Da das kompilieren mit clibc-0.9.28.3 bei gawk abbricht habe ich an dieser Stelle eine neuere Version von uclibc emerged.
- echo “=sys-libs/uclibc-0.9.28.3-r2 ~x86 >> /etc/portage/package.keywords
- emerge -1 =sys-libs/uclibc-0.9.28.3-r2
Workaround: pycrypto brach bei mir mit der Fehlermeldung “gcc-config error: Could not run/locate “i386-gentoo-linux-uclibc-gcc”" ab. Hier half es mir python seperat zu emergen
- emerge pyhton
Jetzt noch das System emergen.
-
emerge -e system
So, nun den Ordner wechseln, baselayout unmasken und in /embedded_rootfs emergen
-
cd /usr/portage/sys-apps/baselayout-lite/
- echo “=sys-apps/baselayout-lite-1.0_pre1 **” >>/etc/portage/package.keywords
-
ROOT=/embedded_rootfs emerge baselayout-lite-1.0_pre1.ebuild
To be continued…




