Hallo an alle NetBSDler.
Das hier ist keine Frage, sondern nur ein kleiner Bericht wie einfach das Crosscompilen von NetBSD ist.
Gestern habe fuer meine Sparcstation einen neuen Kernel kompiliert. Allerdings habe ich das Ganze nicht auf der mit 36 MHz getakteten SS10 gemacht, sondern auf meiner PIII 750MHz 'Rakete'.
Hubert Feyrer hat ein schoenes kleines englisches HowTo geschrieben, in dem die genaue Vorgehensweise beschrieben ist:
http://rfhs8012.fh-regensburg.de/~feyrer/NetBSD/xdev.htmlDas einzige was man fuer das Crosscompilen benoetigt ist ein NetBSD Rechner mit einem nicht-root User und den NetBSD Sourcecode.
Meine grosse Festplatte ist als
/ernie eingehaengt.
/ernie/netbsd dient als meine Spielwiese. Den Sourcecode kann man sich ueber die tar.gz sets von ftp.netbsd.org besorgen, oder ueber CVS beziehen.
Ich habe mit
cd /ernie/netbsd
cvs -z5 -d anoncvs@anoncvs.netbsd.org:/cvsroot co -r netbsd1-6 src die Sourcen des NetBSD 1.6 Stable Branches besorgt.
Zum erfolgreichen Cross-kompilieren benoetigt man ein passenden Toolchain (passendes make, C compiler, config,etc.).
Mit
cd /ernie/netbsd/src
./build.sh -m sparc -t -u werden alle benoetigten Programme kompiliert, um von einem NetBSD Hostsystem ein NetBSD/sparc System zu kompilieren.
Nun kann man nach
/ernie/netbsd/src/sys/arch/sparc/conf/ gehen und sich wie gewoehnlich seinen Kernel anpassen (ich nehme immer MYKERNEL). Fuer das
config MYKERNEL muss man nun das nbconfig aus dem compilierten Toolchain benutzen.
/ernie/netbsd/src/tools/obj/tools.NetBSD-1.6-i386/bin/nbconfig MYKERNELAnschliessend kommt das bekannte
make depend all. Hier wird aber auch wieder das binary des speziellen Toolchains benutzt:
cd ../compile/MYKERNEL
/ernie/netbsd/src/tools/obj/tools.NetBSD-1.6-i386/bin/nbmake-sparc depends allNach weniger als 10 Minuten ist der Kernel fertig Kompiliert. Auf der Sparcstation haette das Stunden gebraucht. Mit einem
cp /netbsd /netbsd.old (!auf dem Sparcsystem!) sichert man nun den alten Kernel und kopiert mit
scp netbsd root@sparcstation:/netbsd den Kernel auf das Zielsystem. Neustart und fertig.
/ernie/netbsd/src/tools/compat/README enthaelt Informationen was man bei dem Crosscompilen von einem Linux oder Solaris Host beachten muss.
Es ist ebenso einfach ein komplettes Release zu kompilieren. So kann man sein eigenes -current System erstellen. Hierzu empfehle ich das oben genannte HowTo.
Ich hoffe, dass ist fuer euch kein alter Hut und ihr habt Spass damit.
~
Oliver