Build für ältere HW ...

From: Jens Rehsack <rehsack(at)web.de>
Date: Tue, 24 Jun 2008 06:13:22 +0000

Moin Bernd,

ich habe beim stöbern auf de-bsd-questions von Dir folgendes gelesen:

> Ich habe hier noch einen Printserver mit 586'er CPU laufen.
> Wenn ich einen buildworld auf einen modernen mache - mit CPUTYPE=586,
> dann gibt es Probleme.
> Allerdings nicht mit der gebauten Welt, sondern mit den Tools, zum
> bauen, welche nämlich Code vom OS des Buildrechners hat.
> Soll heißen installworld geht nicht, aber wenn die Binaries installiert
> wären, dann ist alles OK.

Ich habe eine ähnliche Situation - bei mir steht ein Pentium-Pro als
DHCP/DNS/DSL-Gateway rum (ok, Druck-Dienste bietet der auch an, aber
mehr, weil er so günstig dafür steht und sich sonst sowieso langweilen
würde ^^).

Jedenfalls hatte ich ähnliche Probleme und habe es folgendermaßen gelöst:

1. Schritt: Build auf dem Host wie folgt:
env __MAKE_CONF=/usr/room/i686/etc/make.conf \
        SRCCONF=/usr/room/i686/etc/src.conf \
        TARGET_CPUTYPE=pentiumpro TARGET=i386 TARGET_ARCH=i386 \
         make -j${WJOBS} buildworld
2. Schritt: Installation in ein IA32-chroot
env __MAKE_CONF=/usr/room/i686/etc/make.conf \
        SRCCONF=/usr/room/i686/etc/src.conf \
        TARGET_CPUTYPE=pentiumpro TARGET=i386 TARGET_ARCH=i386 \
         make installworld DESTDIR=/usr/room/i686
2a) Gucken, ob /usr/room/i686/libexec/ld-elf.so.1 und ld-elf32.so.1
beide 32-bittig sind (sind sie nämlich manchmal nicht)
3a. mount /usr/room/i686/usr/src
3b. mount /usr/room/i686/usr/ports
4. chroot /usr/room/i686
5. cat ~/bin/sysupbuild
#!/bin/sh

rm -r /usr/obj/*
cd /usr/src

WJOBS=${JOBS:=4}
KJOBS=${JOBS:=4}

if [ -n "$1" ]
then
        mergemaster -p
fi

export MACHINE=i386
export BUILD_ARCH=i386

make -e -j${WJOBS} buildworld && \
make -e -j${KJOBS} buildkernel KERNCONF=STINGRAY

6. ~/bin/sysupbuild
7. portupgrade -fvrRap

Und ab da liegt es an jedem selbst, wie es weiter geht. Ich installiere
auf meinem Gateway via NFS (mounte die buildhost-filesysteme und mache ein
normales 'make installworld'), das erfordert jedoch etwas Disziplin beim
bearbeiten von /etc/(make|src).conf, /usr/local/etc/pkgtools.conf und auch
ggf. der port-optionen.

Von der Sache her sollte es sogar reichen, wenn man in Schritt 1 & 2 nur
die Target-Arch spezifiziert, da ich ja auf amd64 baue - aber an der Stelle
mache ich halt grad eher ungern Experimente. Funktioniert und gut.

Falls es hilft, wäre ich dankbar für einen Hinweis - das scheint dann
nämlich doch nicht so publik zu sein, wie ich dachte, und man könnte ja
mal eine Art bsd-wiki-eintrag machen (kannst natürlich auch Du machen,
nur war mir, Du bist auch recht beschäftigt ^^).

Besten Gruss,
Jens

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 24 Jun 2008 - 08:13:33 CEST

search this site