Home
 

Het bouwen van de kernel
Nu is alles klaar om de kernel op te bouwen. Kijk even of u in de juiste dir bent door ‘pwd’ in te typen (we moeten ons in /usr/src/linux bevinden). We willen eerst zeker zijn dat alles schoon is in de dir:

make clean
make mrproper

Deze twee commando’s zorgen ervoor dat oude data uit eerdere compilaties wordt verwijderd.
Er zijn meerdere mogelijkheden om een kernel te bouwen, wij maken nu gebruik van de ‘console menu’ methode omdat het snel en gemakkelijk is. De kernel schrijft de configuratie weg in een .config bestand. Als je er een van een vorige versie hebt, of of een die je zelf gebouwd hebt, kun je deze kopieren naar /usr/src/linux en een ‘make oldconfig’ uitvoeren. Dit script zorgt er dan voor dat bij elke nieuwe toepassing en driver t.o.v. de oude ‘build’, even wordt stilgestaan. Wij gaan nu echter een menu configuratie doen:

make menuconfig (dit start de menu configuratie op)

Als alles goed is moet men nu een blauw scherm zien met een groot grijs menublok. Linksboven staat de kernelversie, als het niet de goede kernelversie weergeeft bent u waarschijnlijk ergens iets vergeten.

De eerste optie in het menu is ‘Code Maturity level options’ met vetgedrukt, ‘hit enter’ om in dit menu te gaan. We zien hier een [] met of zonder een *. Als de * erin staat betekent het dat het geselekteerd is. We hebben dus de keuze om meerdere experimentele drivers ‘mee te bakken’, ofwel te compileren. We zorgen ervoor dat de ‘prompt for development and/or incomplete drivers’ aangevinkt is. Neem de rechterpijl toets om naar ‘exit’ te gaan (beneden) om weer terug te keren naar het vorige menu.

De volgende mogelijkheid is ‘Loadable Module Support’ Dit betekent dat Linux in verschillende op te roepen modules kan worden opgedeeld. Deze op te roepen modules zijn eigenlijk kleine stukjes code die de kernel in het geheugen brengt en er weer uit kan halen. Deze codes voeren een bepaalde funktie uit, als dat nodig is.
Stel u heeft geen scanner. U hoeft dus ook niet de scanner drivers mee te bakken omdat die alleen maar geheugen van Linux opvreten. Op deze manier kan iedereen een kernel opbouwen die toegespitst is op de behoefte van de eindgebruiker, u dus. Hij blijft dus snel en klein op deze manier en kan dus op een floppy worden weggeschreven als u dat wilt. We willen alle ‘loadable modules’ selekteren door met de pijl er naar toe te gaan en met de spatie te selekteren, dus zoals hier afgebeeld -> [*]. Gebruik de ‘rechts’-toets om weer uit het menu naar het hoofdmenu te gaan.
Het ‘platform support’ menu is het belangrijkste om goed in te stellen. Zorg dat het aangevinkt is en druk op enter om erin te gaan. U ziet hier meerdere opties. De eerste is het type processor. Vink het aan en druk enter. De eerste regel moet u hebben die eruit ziet als ‘6xx/7xx/74xx/8260 waarnaast een X moet staan. De andere zijn ‘embedded’ en ‘IBM Power3 en Power4’ CPU’s. Als u een iMAc, iBook, G3/G4 systeem heeft kiest u de eerste regel. De iMac heeft GEEN Power3 CPU ! Als het is aangevinkt dan kunt u het menu weer verlaten. Je moet geen MPCC8260 support kiezen en het type machine moet worden ingesteld op CHRP/PowerMac/PreP. Als u een G4 bezit, vinkt u Altivec support aan. Aangezien een iMac een G3 is (tenzij u de nieuwste platte iMac heeft), kunt u beter de Altivec support uitschakelen.Je kunt ‘Thermal Management System’ aangevinkt laten, maar hou ‘Interrupt Drive TAU driver’ uitgevinkt (tenzij je wil kijken of het op uw systeem werkt). U kunt de gemiddelde hoge/lage temperatuur optie in ‘cat/proc/cpuinfo’ aanvinken. Ga nu weer naar het hoofdmenu.

De ‘General Setup’ is ons volgende doel. Hier kunnen we bepaalde ‘system level’ opties instellen. U kunt ‘high memory support’ uitvinken. Ondersteuning voor hot-pluggable apparaten wilt u wel hebben (tenzij u een PCMCIA of PC kaart reader/slot heeft) en waarschijnlijk heeft u geen parallelle poort ondersteuning nodig (tenzij u een PCI kaart heeft of een USB apparaat heeft die daar voor zorgt). Alle andere zaken moeten aangevinkt zijn behalve ‘RTAS’ ondersteuning, ‘PreP Residual data en ‘default bootloader kernel arguments’. Ga weer uit dit menu.

Als u geen speciale apparatuur zoals een flash-kaart heeft, kunt u de ‘Memory Technology Devices’, ‘Plug and Play configuration’ en ‘block devices’ overslaan. Als u wilt kunt u naar ‘block devices’ gaan en er ‘loopback’ aanzetten en ‘ramdisk’ uitzetten of ze als modules laden. Het zelfde geldt voor ‘Multi-device support (RAID/LVM) tenzij u een raid controller heeft of meerdere disks (of u heeft u distro met RAID ondersteuning geinstalleerd).
Het volgende item is ‘Network Options’. Linux heeft een hele krachtige uitrusting netwerkmogelijkheden, dus u kunt ze allemaal een voor een bekijken en lezen. We gaan in het kort in op de mogelijkheden. Installeer packet socket en pacKeT socket mmapped IO. Dit is nodig voor applicaties zoals tcpdump. Je kunt de kernel/user netlink socket meebakken maar routing messages en netlink device emulation zijn niet nodig. Network packet filtering is een must, dit zorgt voor ondersteuning bij ip-tabellen (netfilter), wat nodig is voor een firewall. Network packet filtering debugging is niet echt nodig tenzij er grote problemen optreden bij network packet filtering. Zorg ervoor dat socket filtering ook meegenomen wordt aangezien een hoop programma’s ervan gebruik maken (vooral server-programma’s). Unix domain sockets en TCP/IP Networking (het protocol nodig voor het internet) zijn ook een must. Je kunt IP:multicasting weglaten, het wordt gebruikt door BGP en multimedia toepassingen zoals mbone, maar is niet nodig om multimedia-toepasingen te laten draaien ! Als je je ppc als router gaat gebruiken, dan is de advanced router een aanrader. Het zorgt voor optimalisatie van de kernel bij geavanceerde router-funkties. Als u dingen als BOOTP of RARP (reverse ARP) gebruikt is IP kernel level autoconfiguration nodig (zorgen voor netbooting maar zijn niet nodig voor DHCP).
IP-tunneling is niet nodig, tenzij u een remote VPN (Virtual Private Network) wilt ‘serven’ of toegang toe wil hebben via een ander VPN-netwerk. IP-tunneling zorgt in wezen voor het opdelen van internetverkeer in kleine pakketjes, encrypteert het en stuurt het als data het internet weg. GRE zorgt ook voor IP-tunneling, wellicht heeft u dit ook niet nodig, net zoals IP multcast routing, TCP Explicit Congestion Notification support (deze laatste wordt sowieso niet aanbevolen aangezien u problemen op het internet kunt krijgen). Over TCP syncookie moet u maar eens in de handleiding kijken wat het is en voor u zelf uitmaken of u het nodig heeft.
Bij IP netfilter Configuration nemen we alles als een module (vink aan en druk op de spatiebalk tot dat de M wordt weergegeven). Alles wil je als module hebben behalve ipchains en ipfwadm, neem deze maar gewoon. Alle andere opties kunt u links laten liggen. Als u Appletalk wilt hebben, neem het mee als module. Ga eruit naar het hoofdemnu als u hier klaar bent.
De volgende keuze is ATA/IDE/MFM/RLL ondersteuning. ATA is AT-Attachment, IDE is de standaard voor harde schijven en cdroms, MFM en RLL zijn een ouder tpe harde schijven (voor IDE, jaren 80). Zorg ervoor dat deze opties zijn gekozen en selekteer dan de IDE, ATA en ATAPI block devices menu (vink aan en enter). Zorg in ieder geval dat de eerste optie is aangevinkt (Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support). Ook nodig zijn Include IDE/ATA-2 DISK Support,IDE/ATAPI CDRom Support, Generic PCI Bus-Master DMA Support, PCI DMA, Builtin PowerMac IDE Support, PowerMac IDE DMA Support, Use DMA. Als u een CD/DVD-brander wilt gebruiken, Firewire of USB media apparatuur, neem dan SCSI emulation support, evenals IDE/ATAPI Floppy Support.
In het hoofdmenu gaan we naar SCSI Support. Als u geen SCSI apparatuur heeft kunt u het overslaan, echter USB, Firewire dat gebruik maakt van SCSI-emulation kunt u dan ook niet gebruiken. Als u firewire heeft (IEE1394), neem dan in ieder geval alle firewire opties als module.

Het volgende is Network device support. Hier kiezen we onze netwerk-apparaat drivers. Neem in ieder geval network device support, dummy network driver, bonding driver (om twee ethernetverbindingen te verbinden), universal tun/tap (tunneling support), PPP, SLIP (tenzij u geen gebruik maakt van modem) of als u PP niet nodig heeft voor DSL of tunneling), Ethernet (10 of 100 Mbit) (must voor iMac). Voor de veiligheid kunt u MACE en BMAC nemen. GMAC is weer een must (zeker als u de kernel op een iBook, G4-systeem of nieuwer type iMac gaat gebruiken). Aan te raden zijn ook DECchip Tulip en load Generic DECchip als een module te nemen. Neem zeker Use PCI shared mem voor NIC registers. Als u een airportkaart heeft, selekteert u dan de Wireless LAN (non-hamradio), Hermes chipset en Apple airport support. U kunt weer terug naar het hoofdmenu.

Ga nu naar Console drivers en zorg er voor dat in ieder geval de chipset voor de iMac is ondersteund (te vinden oner frame buffer support). Als u onzeker bent, neemt u maar gewoon alle ATI-dingen, dan zit u goed. Neem in ieder geval voor Support for VGA Console, dan heeft u naast de ATI-apparatuur ook ondersteuning voor het Open Firmware frame buffer apparaat.
De volgende optie is input core support (USB Human Interface Device). Neem alles behalve joystick ondersteuning, tenzij u er eentje heeft.
Macintosh Device Drives is de volgende stap. Eerste generatie iMacs hebben CUDA based iMac support nodig, anders neem PMU. Als u niet welke iMac u heeft, neem ze dan maar allebei. U kunt de rest leeg laten, iMacs hebben geen ADB of seriele poorten tenzij u het modem wilt gebruiken, dan moet u seriele poorten meenemen.
U kunt character devices en multimedia devices overslaan, tenzij u een webcam of een digitale videocamera heeft (Video 4 Linux heeft u dan nodig), of u gebruikt een benh kernel.
Als u een nieuw type benh kernel heeft, neem dan ook /dev/agpgart en Apple UniNorth support met ATI Rage 128 support, tenzij u een ouder type iMac heeft dat niet gebruik maakt van een ATI Rage 128 chipset. Bij de volgende optie, filesystems, is het van belang dat u alles neemt wat u nodig heeft. De standaardinstelling werkt voor bijna iedereen maar ik zal het hier toch even noemen. Apple Macintosh File System Support (HFS support, nodig in bv Mac-on-Linux), Virtual Memory File System support, ISO 9660 (CDROM), /proc en /dev filesystem support, /dev/pts file system support, sencond extension file system support. Al deze opties behalve second extended file system support kunt u als modules nemen. In ieder geval wel mee te nemen zijn DOS FAT, MSDOS FAT en VFAT (als u Windows en Dos disks of partities wil lezen). Misschien wilt u ook wel Microsoft CD’s kunnen lezen, neem dan Microsoft Joliet extensions. Als u DVD’s wil kijken, neem dan UDF support. UFS wordt gebruikt door Unix (BSD) en MacOSX. Als u files over een netwerk wilt bekijken moet u NFS eb SMB (=Samba, Windows netwerk ondersteuning). Onder Partition types heeft u Macintosh partition map support nodig, en misschien ook wel PC BIOS. Tip: Als u ook een PC heeft met Linux, kunt u de kernel van de PC met Macintosh partition map support voorzien zodat als de Mac in de toekomst niet zou opstarten, u de data kunt herstellen en de disk weer schoon kunt maken zonder dat u hem naar de dealer hoeft terug te brengen.

De volgende optie is geluid. Neem sound support mee naast PowerMac DMA sound support. Bij USB support, neemt u USB device file system, OHCI (Compaq, iMac, etc), USB Human Interface Device (full HID) ondersteuning en elke andere USB driver die u nodig heeft voor uw apparatuur (zip, printers, scanners enzovoorts). Als u bluetooth apparatuur heeft schakel deze dan ook in het desbetreffende menu. Keer weer terug naar het hoofdmenu. Ga nu uit het hoofmenu met ‘exit’. U wordt gevraagd of u de kernel-configuratie wil vastleggen, zorg er voor dat YES is opgelicht en blauw en druk enter.


Het compileren van de kernel

Het wordt nu tijd voor de compilatie van de kernel. Het is vrij eenvoudig, u typt:

make dep (dit maakt de ‘dependencies’)

Belangrijk voor YDL gebruikers: YDL 2.0 gebruikers moeten zeker zijn dat /sbin/genksyms in het systeem aanwezig is, zo niet, download de modutils van de update-directory te vinden op ftp.yellowdoglinyx.com.

Nu dat de afhankelijkheden eenmaal zijn aangemaakt, kunnen we de kernel eindelijk bouwen:

make vmlinux

Als er geen fouten zijn opgetreden gevolg door:

make modules
make modules_install


Als er fouten optreden dan heeft u iets aangevinkt dat niet werkt op PPC, kijk eens naar de foutmeldingen en zoek uit welk bestand of directory het probleem veroorzaakt en dan komt u er waarschijnlijk wel uit. Anders verwijs ik u naar het forum.

Installatie van de kernel

Nadat de kernel gebouwd is, is de volgende stap de installatie van de kernel. We gaan in deze handleiding ervan uit dat u yaboot al heeft geinstalleerd en dat het de goede partitie opstart en dat uw /etc/yaboot.conf goed geconfigureerd is.
Kopieer vmlinux van /usr/src/linux naar /boot en we hernoemen het tegelijkertijd:

cp /usr/src/linux/vmlinux /boot/vmlinux-2.4.18

We zullen nu /boot/System.map verwijderen en System.map-2.4.18 ‘linken’ met System.map:

ln –sf /boot/System.map-2.4.18 /boot/System.map

We moeten nu de /etc/yaboot.conf aanpassen, we voegen de volgende regels toe:

image=/boot/vmlinux-2.4.18
label=linuxnew
root=/dev/hda13
(dit hangt af van uw root-partitie, ofwel /)

Bovenaan het yaboot.conf bestand is er een boot= regel. Dit is de partitie waar zich yaboot bevindt (de bootstrap-partitie). Kijk met behulp van een ‘df’ of het al gemount is. In het geval dat het niet gemount is doet u:

mkdir /mnt/yaboot
mount /dev/hda11 /mnt/boot –t hfs (dit kan bij u anders zijn natuurlijk)
shutdown –r +0 (herstarten van het systeem)
 
Ga naar Het booten van de kernel