header image
 

Auf Debian Embedded Gentoo bauen

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…

~ von pino am Januar 9, 2008.

Eine Antwort to “Auf Debian Embedded Gentoo bauen”

  1. As I’m preparing for my Alix.2c2/Gentoo setup I stumbled upon this message. Great startingpoint.
    Regarding your CHOST and CFLAG Settings, please take note of http://geode.insideo.net/info-linux_archives/msg00133.html as they gained some success in speed with these settings. Also take note of the bugzilla redhat report as it breaks i686 opcode.

Eine Antwort hinterlassen