Een gewijzigde Linux Kernel compileren, configureren en installeren

ArticleCategory:

Kernel Corner

AuthorImage:

TranslationInfo:[Author and translation history]

original in en Subhasish Ghosh

en to nl Pieter Van Houtte

AboutTheAuthor:

Mijn naam is Subhasish Ghosh, ik ben 20 jaar oud, en momenteel woon ik in India. Ik ben een student computer- en systeemtecnieken evenals een computerdeskundige. Op dit moment bezit ik 6 MCP-certifications (Microsoft Certified Professional), en ook een MCP-certification op NT 4.0 Track. Ik werk reeds lang met Linux, vooral Red Hat Linux. Momenteel bereid ik me voor op het het Red Hat Linux Certified Engineer (RHCE) certification - examen en ben ik van plan om in de toekomst voornamelijk met het Linux operating systeem te werken.

Abstract:

Hallo iedereen, dit artikel biedt u een gedetailleerde stap-voor-stap beschrijving hoe een gewijzigde Linux Red Hat Kernel te compileren, configureren en installeren. Zoals we weten, is een gewijzigde Kernel om verschillende redenen vereist; zonder daarbij in detail te treden. Ik leg alleen uit hoe een gewijzigde Kernel te compileren, configureren en installeren. Niettegenstaande de vermelde stappen hieronder oorspronkelijk bedoeld zijn voor Red Hat-gebruikers, kan het gevolgde proces worden toegepast op de andere distributies, natuurlijk met een minimum aan wijzigingen waar nodig.

ArticleIllustration:[This is the title picture for your article]

[illustration]

ArticleBody:

Inleiding

Dit is een handleiding om een Linux Kernel te compileren in 27 stappen. Ik heb alle stappen hieronder uitgevoerd op een computer-systeem met de volgende configuratie: Compaq Presario 4010 Series computer, 15.5 GB Harde Schijf ruimte, 96 MB RAM, 400 MHz Intel Celeron Processor, Red Hat Linux 7.0 distributie werkend met Kernel: 2.2.16-22
De bedoeling is een volledig werkende aangepaste Kernel te hebben nadat alle stappen hieronder zijn vervolledigd. Bijvoorbeeld: Ik heb een aangepaste Kernel met de naam "2.2.16-22ghosh", die draait op mijn computersysteem (omdat mijn naam Subhasish Ghosh is, u kan natuurlijk iets anders hebben). Ziezo, veel succes bij het compileren van de Linux Kernel!

De stappen

Stap 1: Log in als "root" en ga door met de volgende stappen:

Stap 2: Op de commandoregel typt u: rpm -q kernel-headers kernel-source make dev86

Stap 3: Als deze RPMs reeds geïnstalleerd zijn, ga dan naar stap 4. Zoniet, mount de Red Hat Linux 7.0 CD-ROM en voer een rpm -Uvh uit om deze RPMs te installeren.

Stap 4: Als u een volledig werkend X Window Systeem hebt, typ dan startx op de commandolijn. Als dat niet het geval is, zou ik u aanraden dergelijk systeem te installeren alvorens door te gaan; het is zeer nuttig. Als het X Window Systeem NIET is geënstalleerd, typ dan: make config of make menuconfig op de commandoregel. Merk op dat ik er verder van uitga dat u een X Window Systeem hebt draaien (typ startx op de commandolijn).

Stap 5: Eénmaal binnen de GNOME-omgeving, open een GNOME Terminal-venster en typ: cd /usr/src/linux en druk op enter.

Stap 6: Dan vanuit /usr/src/linux, typ make xconfig.

Stap 7: De grafische versie van make config zou nu moeten verschijnen op het scherm. Het heeft verschillende opties waarmee je een aangepaste kernel kunt maken.

Stap 8: Op dit moment zou u ik u aanraden de meeste opties te laten voor wat ze zijn.

De standaardconfiguratie is al moeilijk genoeg. Anderszijds is het waarschijnlijk ook wel een configuratie die op de meeste PC's zal werken. Ik stel voor dat u eerst alle stappen doorloopt om te leren hoe dit proces precies in elkaar zit. Daarna kan u zichzelf vertrouwd maken met uw computerhardware en zijn kenmerken totdat u genoeg "expertise" hebt; en kan u uw kernel verder aanpassen tot hij klein en efficiënt is. Een goede plaats om meer te weten te komen wat er zich onder de motorkap van uw PC bevindt zijn de bestanden in /proc zoals /proc/pci, /proc/interrupts, /proc/modules enzoverder ...

Probeer op dit moment vooral nog niet te knoeien met de vele opties. Voor een werkende kernel zijn de volgende aanpassingen echter wel nodig:

1.Processor Type and Features: Kies de juiste processor afhankelijk van dewelke waarmee u werkt: pentium 2, 3, of Intel Celeron zoals ik. Ik deed bijvoorbeeld het volgende: Processor Family: PPro/686MX, Maximum Physical Memory: 1 GB, Math Emulation: Yes, MTRR: Yes, SMP: Yes.

2.Open de Filesystems dialoog en kies ook daar de juiste opties. Ik deed het als volgt: DOS FAT fs support: Yes(y), MSDOS fs support: Yes(y), UMSDOS: Module (m), VFAT(Windows 95) support: Yes(y), NTFS filesystem support (read-only): Yes(y), NTFS read-write support(DANGEROUS): No(n). Controleer nog een keer of dit de enige wijzigingen zijn die je zelf hebt gemaakt. De zojuist gemaakte veranderingen houden geen risico's in en zullen geen onherstelbare schade toebrengen aan uw bestaande Linux Kernel.

3.kies nu 'Save and Exit' uit het hoofdvenster.

Stap 9: Voer vervolgens een ls -al uit vanuit het pad /usr/src/linux.

Stap 10: Ik ben er zeker van dat u nu een bestand ziet met als naam: "Makefile". Het is een uitermate belangrijk bestand voor het ganse compileerproces. Maak dus een backup van dit bestand! Typ daarvoor : cp Makefile Makefile.bak

Stap 11: Typ nu (vanuit /usr/src/linux): vi Makefile.

Stap 12: Ga naar de lijn EXTRAVERSION en verander EXTRAVERSION=-22, naar bv. EXTRAVERSION="-22naam" (in mijn geval werd dat dus "-22ghosh"). U bent natuurlijk vrij om het te noemen zoals u wil.

Stap 13: Bewaar en verlaat het bestand.

Stap 14: Al de volgende stappen zouden moeten worden uitgevoerd vanuit /usr/src/linux. Typ in: make dep clean, en druk op enter.

Stap 15: Typ dan in: make bzImage modules. Dit zal een zekere tijd duren, haal gerust iets te drinken terwijl alle bestanden worden gecompileerd. Ik doe normaal een dutje tijdens dit proces omdat ik dit alles in het holst van de nacht doe.

Stap 16: Zodra deze stap voorbij is, zou een "bzImage" bestand moeten gecreëerd zijn in de directory /usr/src/linux/arch/i386/boot, ga naar deze directory en controleer of er een bestand met de naam "bzImage" is gecreeerd of niet. Dit bestand bestaat ENKEL EN ALLEEN ALS álle compilatiestappen correct zijn uitgevoerd en alle opties die we hebben gekozen in make xconfig correct zijn. Als u dit bestand kan terugvinden, waarvan ik zowat zeker ben, kan u reeds beginnen genieten, want u hebt al 75% van de strijd gewonnen. Als het bestand er niet staat, dan spijt het mij, maar u moet ergens een fout gemaakt hebben. Neem eventjes een pauze en bestudeer alle stappen opnieuw. Ik ben er zeker van dat u op die manier verder zal kunnen gaan.

Stap 17: Typ in (vanuit /usr/src/linux): cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-22ghosh en druk op enter.

Stap 18: Typ dan: cp System.map /boot/System.map-2.2.16-22ghosh
Hoewel het niet verplicht is, zou ik u aanraden het kernel configuratiebestand (/usr/src/linux/.config) op te slaan zodat u een referentie hebt om later kernels te bouwen zonder alles opnieuw te moeten configureren. Het grafische configuratiescherm (make xconfig) biedt een mogelijkheid om een configuratiebestand te laden. Om het configuratiebestand op te slaan, typt u:
cp /usr/src/linux/.config /boot/Config-2.2.16-22ghosh

Stap 19: Typ vervolgens: make modules_install en druk op enter. U zal zien dat alle modules geïnstalleerd zijn in een nieuwe, aangepaste directory.

Stap 20: Typ dan: mkinitrd /boot/initrd-2.2.16-22ghosh.img 2.2.16-22ghosh

Stap 21: Typ in: vi /etc/lilo.conf en voeg aan het bestand het volgende toe:

image=/boot/vmlinuz-2.2.16-22ghosh

label=GhoshKernel
initrd=/boot/initrd-2.2.16-22ghosh.img
root=/dev/hdc5
read-only

Stap 22: Save and exit. Merk op dat u de ingangen in het lilo.conf bestand naar eigen wens kan aanpassen, en de root zou moeten overeenkomen met de root van uw systeem, op mijn machine is dat /dev/hdc5. Voeg als zodanig de informatie van uw systeem in. Het commando
df | grep '/$'
zal u vertellen waar uw root bestandssysteem is. Let wel op de enkele aanhalingstekens rond de uitdrukking na grep.

Stap 23: Typ in: /sbin/lilo -v -v

Stap 24: Lees alle info op het scherm. Als er geen fouten zijn, dan is het werk gedaan. Proficiat!!!!

Stap 25: Herstart het systeem door het volgende te typen: /sbin/reboot of /sbin/shutdown -r now.

Stap 26: Druk in het opstartscherm op Tab (of Control-X als u het LILO opstartscherm krijgt) en je kan de volgende optie: "GhoshKernel", samen met de andere reeds-bestaande opties.

Stap 27: Typ in: GhoshKernel en druk op enter. U zal dan de volledig werkende (aangepaste) kernel uw systeem zien opstarten. Zo, u hebt nu uw eigen kernel!

Het resultaat

Bekijk het opstartproces, de berichten op het scherm en zoek naar eventuele fouten. U kan later deze berichten bekijken in het bestand /var/log/boot.log en via het commando dmesg. Als er geen fouten zijn, zal de kernel perfect werken met uw hardware. Prima!!

Na het opnieuw inloggen typ dan: uname -a en druk op enter. U kan de volgende entry op het scherm zien: 2.2.16-22ghosh gevolgd door de compilatiedatum en andere informatie. Dat bewijst dat u een aangepaste Kernel hebt draaien. Da's alles. Merk ook op, dat u zoveel Kernelversies kan aanmaken zoals u wil. In het geval dat dit niet werkt of u hebt problemen, stuur dan zeker een e-mail naar auspicious_blessingsindia@hotmail.com voor vragen en suggesties. Ik zou zeer graag iets van u horen (en u helpen) en ik hoop dat dit artikel iedereen helpt om een volledig werkende aangepaste Kernel te maken. Groeten.
Subhasish Ghosh

mirror server hosted at Truenetwork, Russian Federation.