crosscompile für einen alten Rechner (amd64 -> i386)

dura-zell

Member
Hi

Ich hab hier nen alten Rechner (2xP-III@500MHz, 768MB RAM, 40GB IBM Ultrastar SCSI, GF-6200) stehen, den ich als Surfstation reaktivieren möchte. Leider ist die Kiste für die ganzen Kompilierorgien zu schwach. Daher wollte ich die Ports die ich installieren möchte (Xorg, Enlightenment, Firefox, Thunderbird, xmms) auf meinem großen Rechner kompilieren der unter amd64 läuft. Leider hab ich da mit google nicht viel gefunden. Kann mir da jemand helfen?

Grüße, Dura
 
Für FreeBSD kann ich antworten. Die tinderbox, zu finden in ports-mgmt/tinderbox, kann soetwas. Ich lasse auf einem amd64 C2D QuadCore auch Pakete für einen alten P4 (i386) bauen. Ein i386-Jail auf der amd64 Maschine wäre eine weitere Möglichkeit, und das direkte crosscompilen sicher auch. Ich nutze die tinderbox, da ich mit ihr sowieso Pakete für amd64 schnüren lasse und hinterher funktionierende und zueinander passende Pakete habe.

Gruß c.
 
Hm, ich hab auf meinem Homeserver ohnehin diverse jails am laufen, da würd es Sinn machen eine Paketbau-jail einzurichten. Ist ein bisßchen ungewohnt das Thema, ich hab bisher immer auf dem Rechner gebaut, auf dem das Programm auch laufen sollte.
Wobei...
A Tinderbox jail is not what is understood as a jail in FreeBSD,
it is in fact a given world in a chroot.
Geht chroot überhaupt in einer jail?

Grüße, Dura
 
dura-zell schrieb:
Geht chroot überhaupt in einer jail?
Ja. Bis einschließlich FreeBSD 7 ist es aber nicht zu empfehlen, das File Descriptoren in den Host leaken können. in FreeBSD 8 und höher dritt das nicht mehr auf.
 
Für FreeBSD kann ich antworten. Die tinderbox, zu finden in ports-mgmt/tinderbox, kann soetwas. Ich lasse auf einem amd64 C2D QuadCore auch Pakete für einen alten P4 (i386) bauen. Ein i386-Jail auf der amd64 Maschine wäre eine weitere Möglichkeit, und das direkte crosscompilen sicher auch. Ich nutze die tinderbox, da ich mit ihr sowieso Pakete für amd64 schnüren lasse und hinterher funktionierende und zueinander passende Pakete habe.

Gruß c.
tinderbox nutze ich auch um für schmalbrüstige Kisten Pakete zu bauen. Nur... Wie aktualisierst du diese dann auf der kleinen Kiste?
 
Hallo Columbo0815,

ich habe auf der tinderbox einen FTP-Server laufen, der das package-Verzeichnis zum Download anbietet. Auf den schmalbrüstigen Kisten habe ich in der Datei /etc/profile u.a. folgende Einträge:

Code:
WITHOUT_X11=YES
export WITHOUT_X11
export FBSD_VERSION="`uname -r|cut -d'-' -f1`-FreeBSD-${WITHOUT_X11:+woX11-}`uname -m`"
export PACKAGEROOT="ftp://tinderbox.domain.tld/"
export PACKAGESITE="ftp://tinderbox.domain.tld/$FBSD_VERSION/Latest/"
export PKG_SITES="$PACKAGESITE"

Das eigentliche Update mache ich mit portmaster -aPP, und zu Zeiten von portupgrade halt damit. Auch da gibt es eine Option, die nur geschnürte Pakete verwendet und nicht bei Bedarf baut.

Bei mir heißen die Builds in der tinderbox immer wie folgt: 8.1-FreeBSD-amd64, 8.1-FreeBSD-woX11-i386 usw., wobei woX11 für without X11 steht. Auf den schmalbrüstigen Teilen, sowie auf den allermeisten Servern, habe ich kein X11 laufen, und deshalb ist dort WITHOUT_X11 gesetzt, auf der Kiste, die X11 hat, ist diese Variable nicht gesetzt.

Da ich inzwischen alle Pakete vorher bauen lasse, habe ich auch keine Probleme mit Abhängigkeiten, die durch unterschiedliche Konfigurationen auf den Maschinen auftauchen, weil man beim make config auf der Maschine andere Optionen ausgewählt hatte, als in der tinderbox. Das sorgte vorher immer für Probleme.

Gruß c.
 
Hab mir das Teil mal in eine Jail installiert.
Lief auch soweit ganz gut, allerdings stehe ich nun vor einem Problem:
Ich habe testweise einen Build erzeugt aus 8.1-RELEASE und dem aktuellen Portstree. Dort wollte ich nun www/firefox bauen lassen.
Das fängt auch gut an, allerdings quittiert er mir das dann mit der Meldung:
mount_nullfs: Operation not permitted
tinderbuild: cannot mount ports source

Mount ist jedoch eigentlich erlaubt:
Code:
security.jail.chflags_allowed=1
security.jail.mount_allowed=1

Bin ich grad blind oder geht es doch nicht in der jail?

Grüße, Dura
 
Zurück
Oben