Kernel auf anderer Maschine kompilieren

kruemelmonster

Keksfreund
Hallo!

Ich bin Neuling bei FreeBSD; mein Problem ist folgendes:
Ich hab auf einem alten Pentium-Rechner mit wenig Speicher (sowohl RAM als auch HDD) ein FreeBSD5.4/i386 installiert und möchte dafür auf einem anderen Rechner (Athlon64, FreeBSD5.4/i386) einen Kernel kompilieren, natürlich ohne den Kernel oder die Kernel-Konfiguration/make.conf des "Kompilier-Hosts" anzutasten. Reicht dafür eine andere Konfigurationsdatei oder brauche ich dafür ein jail? Und wie stelle ich das dann am geschicktesten an? Im Handbuch oder im Netz hab ich dazu leider nichts hilfreiches gefunden...
Vielen Dank im Voraus!

Stefan
 
Ich denke du musst einfach die Variablen die do sonst über make.conf setzt, direkt als Parameter übergeben.
 
Der einfachste Weg ist folgender:
- Auf der Maschine, die den Kernel bekommen soll, machst du ein "config KERNELCONF"
- Der ganze Sourcetree (/usr/src/sys) wird auf den Rechner der Kompilieren soll kopiert
- Dort wird kompiliert
- Wieder zurückkopieren
- "make install"

Wichtig ist, dass der Rechner, der kompiliert, die gleiche Version nutzt, die erstellt werden soll. Man kann das ganze auch ohne kopieren und so machen, die Fehlerwahrscheinlichkeit steigt aber deutlich an...
 
Ich hab's bisher immer so gemacht:

Kernel auf dem schnellen Rechner wie üblich kompilieren und dann
/usr/obj/usr/src/sys/<KERNELNAME>/ komplett auf den Zielrechner ins gleiche Verzeichnis kopiert und dort dann den Kernel wie üblich installiert. Man muss nur aufpassen, dass man nicht so etwas wie CPUTYPE?=athlon64 in der make.conf zu stehen hat, weil dann ist der Kernel auf einem alten Pentium nicht lauffähig.

Björn
 
Man kann auch in der Kernel-Konfigurationsdatei folgendes setzen:
Code:
makeoptions    KERNEL=foo
Dann wird der Kernel inklusive aller Module unter /foo abgelegt, wenn du ein make install ausführst. Benenne anschließend /foo/foo in /foo/kernel um und packe /foo in ein .tar ein. Das kannst du dann auf dem anderen Rechner in /kernel auspacken.
 
Zurück
Oben