Kompilieren eines Kernels für APUS-geschrieben von Marco Augustin
Die Benutzung dieser Anleitung erfolgt
auf eigene Gefahr.
Der Autor dieses Dokuments übernimmt
keine Haftung für Schäden, die aufgrund dieser Anleitung enstehen.
LinucPPC5-User müssen übrigens
nicht den Kompiler wechseln!
Was ist ein Kernel?
Ein Kernel ist für den Betrieb
von jeder Linux-Distribution unbedingt erforderlich.
Man könnte den Kernel auch
schon als eigenes Betriebssystem bezeichnen.
Ohne den Kernel ist es nicht möglich
irgendeine Hardware auch nur anzusprechen.
Software könnte ohne den Kernel
auch nicht gestartet werden.
Der Kernel dient also als Grundsystem
eines jeden Linux-Systems.
Um ihn herum existieren dann alle
Programme.
Was brauch ich zum Kernelkompilieren?
Einen C-Kompiler wie gcc oder egcs,die
Kernelsourcen und die entsprechenden amigaspezifischen Patch-Files.
Wo find ich das?
Am einfachsten-auf der hier erhältlichen
aktuellen Apus-CD (alle CDs ab 20.05.1999)
gcc und egcs gibt es für die
LinuxPPC4-Version unter ftp://ftp.linuxppc.org
im
entsprechenden Contrib-Verzeichnis
Die Kernelsourcen gibt es unter
ftp://sunsite.auc.dk/projects/680x0/
Die Patchfiles für den Kernel
gibt es unter ftp://sunsite.auc.dk/projects/apus/2.2.x/
Installation eines Kompilers(mit
glint)
Zum kompilieren des Kernels (aber
auch für Programme!) benötigt man einen guten C-Kompiler.
Hier hat sich neben gcc2.8.0 egcs1.1b
bewährt. Man findet beide Kompiler auf der Pre5-CD unter /contrib-linuxPPC4Wenn
nicht, dann kann man sie sich von ftp://ftp.linuxppc.org
downloaden.
Ich gehe bei diesem Abschnitt auf
die Installation von egcs1.1b ein. Bei gcc2.8.0 gaukelte der Kernel einen
Filesystemerror vor.Da aber jeder eine andere Konfiguration hat,muß
der Fehler nicht bei jedem auftreten! Es empfehlt sich generell einen zweiten
Kompiler auszuprobieren, falls bei der Kompilierung Fehler auftreten.
Und so wird installiert:
1. glint unter X starten (in eine
Konsole glint eingeben)
2. Um das "alte" egcs zu löschen
in das Verzeichnis Development/Languages wechseln und mit einen Mausklick
alles Dateienmit egcs markieren.Dann rechts auf uninstall klicken
Die
alten egcs-Dateien sind nun fast alle gelöscht!3Jetzt mit cd /opt
in das Verzeichnis /opt wechsel und das egcs-Verzeichnis löschen mit
rm -r -f egcs
Jetzt muß die neue egcs-Version
installiert werden,Direkt von der Olliweb-APUS-CD geht das,indem die 2.CD
angemeldet wird undman dann in das Verzeichnis /mnt/Contrib-LinuxPPC4 wechselt.Jetzt
alle rpms für egcs-1.1b installieren: rpm -i egcsDateien.rpmUser ohne
CD wechseln in das Verzeichnis,welches die egcs-rpms enthält und installieren
mit rpm -i egcsDateien.rpmDer Kompiler ist nun installiert.
Installation der Kernelsourcen
Zuerst muß man die Kernelsourcen
von der Apus-CD auf die Festplatte kopieren. Sie befinden sich auf der
1.CD(Apus) unter/sunsite/kernels/.Als Kernelsourcen kann man momentan
linux-2.2.8.tar.gz empfehlen Die Kernelarchive müssen nach /usr/src
kopiert werden:
cp /mnt/sunsite/kernels/linux-2.2.3pre1.tar.gz
/usr/src
Voraussetzung das dieses Verfahren
klappt ist, daß man mittels mount -t iso9660 /dev/hdb oder
/dev/scd0 /mnt das CD-ROM Laufwerk gemountet hat.
Nun geht es ans entpacken:
Mittels des Befehls tar xzvf linux-2.2.3pre1.tar.gz
wird das Archiv im Verzeichnis /usr/src entpackt.
Es entsteht ein neuer Ordner: linux-2.2.3pre1.
Damit der Compiler alle nötigen
Files findet müssen diverse Links gesetzt werden:
Setzen der Links
Zuerst wechselt man ins Verzeichnis
/usr/src
1.cd /usr/src
Nun folgt das Setzen der Links.
2. ln -s /usr/src/linux-2.2.3pre1
linux
3. cd linux-2.2.3pre1/include/
4. ln -s asm-ppc asm
5. cd /usr/include
6. ln -s /usr/src/linux/include/linux
/usr/include/linux
7. ln -s /usr/src/linux/include/asm
/usr/include/asm
Bei den Schritten 2-7 kann es passieren,
daß noch alte Links existieren.Diese löscht man einfach mit
rm -f Link. Damit
sind alle nötigen Links gesetzt.
Patchen der Kernelsourcen
Als nächstes folgt das Patchen
der Kernelsourcen. Dies ist notwendig, damit auch amigaspezifische Hardware
erkannt wird.
1. Den neuesten linux-2.2.3pre1-m68k-YYMMDD.diff.gz
Patch in ein beliebiges Verzeichnis kopieren, z.B. /home
cp /mnt/sunsite/kernels/linux-2.2.3pre1-m68k-YYMMDD.diff.gz
/home
2. Entpacken des diff-Files
gzip
-d linux-2.2.3pre1-m68k-YYMMDD.diff.gz
3. Nun in das Kernel-Verzeichnis
wechseln
cd /usr/src/linux-2.2.3pre1
4. Jetzt folgt das Patchen des Kernels
patch -d. -p0 < /home/linux-2.2.3pre1-m68k-YYMMDD.diff
5. Nun folgt der Linux-Apus Patch.
Dazu geht man so vor wie in Schritt 1-4, nur daß man jetzt den neuesten
linux-apus-YYMMDD.diff.gz verwendet.Man
findet ihn in sunsite/kernels. Auch dieses File ist zu entpacken.
Beim Patchvorgang wird man gefragt,
ob man die einzelnen Files erneut patchen möchte. Hierauf antwortet
man mit y.
Letzte Schritte
Bevor man nun den eigentlichen Kernel konfiguriert, ist
noch ein wichtiger letzter Schritt zu erledigen.
Auf der Apus-CD befindet sich im sunsite/kernels Verzeichnis
die vmapus-YYMMDD.lzh.
Man kopiert den neuesten Kernel z.B. in das /home Verzeichnis.
cp /mnt/sunsite/kernels/vmapus-YYMMDD.lzh /home
oder cp /mnt/cdrom/sunsite/kernels/vmapus-YYMMDD.lzh
/home
Nicht CD-User entpacken einfach einen aktuellen Kernel
von Sunsite-FTP-Server.
Da es ein lzh-Archiv ist, kann man es bequem unter Linux
entpacken.
cd /home
lha -e vmapus-YYMMDD.lzh
Daraus enstehen 3 Dateien: vmlinux, System.map und .config.
Die .config Datei muß nach /usr/src/linux kopiert
werden.
In der .config-Datei befinden sich alle Optionen des
Kernels.
cp /home/.config /usr/src/linux
Konfigurieren des Kernels
-menuconfig
Wechsel nach /usr/src/linux
cd /usr/src/linux
Durch Eingabe von make oldconfig wird die Konfiguration
gestartet.
Dieser Schritt ist insofern nötig, weil berichtet
wurde, daß der Kompiler am Ende des kompilierens abbricht.
Mit diesem Schritt wird ein Makefile erzeugt, daß
nachher mit Hilfe von make config oder make menuconfig verändert werden
kann.
Die Konfiguration des Kernels
Die Konfiguration wird mit make config oder make menuconfig
gestartet.
Der unterschied zu make menuconfig ist, daß man
ein grafisches Interface zur Bearbeitung der Kerneloptionen hat.
Dies hat den Vorteil, daß man Schritte zurück
gehen kann, wenn man sich vertan hat, was bei make config nicht der Fall
ist! Man sollte sich sehr viel Zeit bei der Konfiguration lassen. Wenn
man einmal make gestartet hat ist es sehr ärgerlich
den ganzen Kompilationsvorgang noch einmal zu starten,
bloß weil man einen Treiber vergessen hat.
A: cd /usr/src/linux
B:make menuconfig oder make config
Nun erscheint je nach Auswahl ein Fenster, in dem man
die gewünschten Optionen einstellt. Bei make config werden die einzelnen
Optionen nacheinander abgefragt. Wenn man Hilfe zu den einzelnen Optionen
benötigt kann man das ? eingeben (nur bei make config) oder zweimal
Cursor rechts drücken (make menuconfig).Startbild-menuconfig
1.Platform Support
Processor Type auf 6xx/7xx stellen
Machine Type APUS
Symetric multi-processing support auf no-Bild-menuconfig
2. General setup
Auf jeden Fall den ersten Punkt aktivieren, damit man
auch Treiber angezeigt bekommt, die noch in der Betaphase sind.
Dies ist besonders wichtig für BlizzardPPc 603e+
User, damit sie SCSI-Unterstützung erhalten.
Wenn man einen Internetzugang hat, sollte man auch Networking
support aktivieren.
Ebenfalls aktivierenswert: Sysctl support und System
V IPC.
System V IPC ist insofern nötig, damit Programme
untereinander Informationen austauschen können.
Viele Programme bestehen darauf (Copy and Paste).
Kernel support for MISC binaries und auch /proc/hardware
aktivieren.
Ebenfalls aktiviert man in dieser Sektion Support for
Frame buffer devices, da sonst keine Grafikkarten funktionieren (auch nicht
Amiga native Modis).
Die Treiber die in diesem Abschnitt noch verfügbar
sind, bedürfen eigentlich keine Erklärung.
Jeder User kann und muß selbst entscheiden, was
für Treiber er in seinem Kernel benötigt.-Bild-menuconfig
3. Plug and Play support
Diese Option deaktivieren, wenn nicht schon geschehen.
4. Block devices
In dieser Sektion kann man entscheiden, welche Disktreiber
man benötigt. Auf jeden Fall sollte AmigaFloppy support aktiviert
werden.Die nachfolgende Option ist ebenfalls zu aktivieren. Wenn man eine
IDE-Festplatte besitzt, dann Include IDE/ATA-2 Disk support aktivieren.Wenn
man ein CD-ROM Laufwerk besitzt (was ich stark annehme), dann aktiviert
man Include IDE/ATAPI CD-ROM support.Wenn die Festplatte am interen IDE-Port
angeschlossen ist, muß man Amiga Gayle IDE interface support aktivieren,da
sich sonst die Festplatten nicht ansteuern lassen.
Alle anderen Optionen sind selbst auszuwählen.-Bild-menuconfig
5. Networking Options
Wenn man über einen Internetzugang verfügt muß
man TCP/IP networking aktivieren.
Alle anderen Einstellungen sind meistens unnötig,
es sei denn, man möchte ein Netzwerk aufbauen.-Bild-menuconfig
6. SCSI support
Falls man über SCSI Peripherie verfügt, muß
man dies hier mit dem Punkt SCSI support aktivieren.
SCSI disk support, SCSI tape support oder SCSI CD-ROM
support sind die drei wichtigsten Treiber.
Je nachdem was man an SCSI Geräten hat, ist hier
der entsprechende Treiber auszuwählen.
Verfügt man über einen Scanner ist zusätzlich
der Punkt SCSI generic support auszuwählen.-Bild-menuconfig
6.1 SCSI low-level drivers
Wenn man im vorherigen Menü die SCSI-Unterstützung
aktiviert hat, geht es nun an die Auswahl der entsprechenden Treiber.Achtung
Cyberstorm-PPC User!!!Der UW-SCSI-Controller wird von den Linux-Kernen
noch nicht unterstützt!
Man kann also keine SCSI Geräte benutzen, die an
diesem Controller angeschlossen sind!-Bild-menuconfig
7. Network device support
In diesem Menü geht es um die Konfiguration der Netzwerkhardware,
also auch um Modems für den Internet Zugang.
Wenn man solche Hardware besitzt, ist der erste Punkt
auszuwählen: Network device support
Ethernetkartenbesitzer sollten den Punkt Ethernet (10
or 100Mbit) aktivieren und anschließend den Treiber für die
Netzwerkkarte auswählen. Modembesitzer deaktivieren den Punkt. Die
meisten Internetprovider setzen heutzutage das PPP Protokoll voraus.In
diesem Fall muß die Option PPP (point-to-point) support aktiviert
werden, da es sonst große Probleme bei Einwählen in das Internet
geben wird.
Benötigt der Provider das SLIP Verfahren muß
man SLIP (serial line) support aktivieren.-Bild-menuconfig
8. Amateur radio support
Diese Option kann deaktiviert werden.
9. ISDN subsystem
Diese Option funktioniert noch nicht mit APUS!-nicht aktivieren
10. Old CD-ROM drivers
Aktiviert werden muß diese Option nur ,wenn man
uralte CD-ROM Laufwerke besitzt, wie z.B. die ersten Mitsumi-Geräte.
11. Console drivers
In dieser Sektion konfiguriert man die Grafikausgabe unter
Linux. Es empfiehlt sich nur die Grafikkarte auszuwählen, die man
besitzt.Die Amiga nativen Bildschirme sind nur bedingt empfehlenswert,
da der Bildschirmaufbau einfach zu langsam ist und das Arbeiten unter Linux
keinen Spaß macht.-Bild-menuconfig---Bild-makeconfig
12. Character devices
In diesem Abschnitt empfiehlt es sich unbedingt die Option
Virtual Terminal und Support for console on virtual terminal zu aktivieren,da
man so bis zu sechs verschiedene Konsolen zur Verfügung hat.Die Option
/dev/nvram unbedingt aktivieren,
da die Kernelkompilierung ansonsten fehlschlägt.Soll
die serielle Schnittstelle des Amiga unterstützt werden, benötigt
man außerdem noch die Option: Standard/generic (dump) serial port.-Bild-menuconfig
13. Filesystems
Hier kann man einstellen, welche Filesysteme man in den
Kernel hineinkompiliert haben möchte.
Auf jeden Fall ist das Second extended fs support zu
aktivieren, da es das Linuxeigene Dateisystem ist.
Ebenfalls die option /proc/hardware support aktivieren.Falls
man MS-DOS oder MAC-Partitionen besitzt
und man diese in Linux verwenden möchte, empfiehlt
es sich die benötigten Treiber in der Sektion Partition types zu aktivieren.-Bild-menuconfig
14. Sound
Möchte man gerne Musik oder MP3-Files abspielen benötigt
man den Punkt Sound card support.
Nun folgt eine List der unterstützten Soundkarten.
Die Auswahl ist nicht sehr groß für Amiga-Besitzer:
Amiga or PowerMac DMA sound support ermöglicht das
Abspielen von Sounds.-Bild-menuconfig
15.Abspeichern der Einstellungen
Nun ist die Kernelkonfiguration beendet. Man braucht nur
noch die neuen Werte abzuspeichern,
indem man make menuconfig mit exit verläßt.
Es erscheint nun eine Abfrage. Diese bestätigt man mit yes.
Benutzt man make config entfällt dieser Schritt,
da es automatisch gespeichert wird.-Bild-menuconfig
Kompilierung des Kernels
Nach der Konfigurationsphase geht es nun an das eigentliche
kompilieren des Kernels.
Durch die Eingabe von make dep wird die Kompilierung
in Gang gesetzt.
Wurde make dep erfolgreich beendet gibt man einfach make
clean ein. Das löscht unötige Dateien-auch von alten Kompilierversuchen!Jetzt
wir die Kompilierung mit make gestartet
Der Vorgang dauert je nach Prozessor und Anzahl der Treiber
etwa 30-45 Minuten.
Nach dem Kompilieren liegt in /usr/src/linux ein Kernel
namens vmlinux sowie das zugehörige .config-File
Einsatz des neuen Kernels
Der Kernel muß jetzt noch auf eine AmigaDos-Partition
kopiert werden.
1. mount -t affs /dev/der Plattenname /mnt(Man muß
nur noch der Plattenname für seinen Gerätetreiber ersetzen.)
2. cp /usr/src/linux/vmlinux /mnt
Damit wird der Kernel auf die AmigaDos Platte kopiert.
Als letztes wird das System heruntergefahren durch Eingabe
von macos oder shutdown -f now.
Jetzt muß Linux nur noch mit dem neuen Kernel gestartet
werden. Dieser Schritt muß hier nicht mehr erläutert werden.
Wenn man es geschafft hat Linux zu installieren, weiß
man auch wie man Linux starten muß.
Herzlichen Glückwunsch zum neuen Kernel, der hoffentlich
auch funktioniert.;-)

|