linux is echt goed, maak je eigen kernel

Status
Niet open voor verdere reacties.

DENNIS90

Banned
Lid geworden
8 sep 2001
Berichten
5.190
De Linux kernel configureren
Waarom je eigen kernel maken?
De redenen om dit te doen zijn:

sneller opstarten - alleen die drivers en modules die jij in je kernel hebt gezet zullen worden gebruikt bij het onderzoeken en configureren van je hardware.

Ondersteuning voor je hardware - standaard kernels hebben maar beperkte drivers in zich. Alle drivers zitten in de kernel, het is de enige manier om alles draaiend te krijgen.

Minder geheugengebruik - omdat je overbodige dingen kunt weghalen uit de kernel, krijg je een kleinere kernel die daardoor minder geheugen gebruikt en je systeem bovendien sneller maakt.

Bugfixes en nieuwe features - elke nieuwe kernel heeft fouten uit de vorige verholpen, bovendien kunnen er nieuwe drivers uitgebracht zijn.
Kernel downloaden en uitpakken
Je hebt de laatste stable kernel nodig.

Even nummers zijn stabiele versies. Oneven nummers zijn development kernels, die gaan we niet gebruiken.

Download de recente stabiele kernel van http://kernel.org

Zie de tekst: The latest stable version of the Linux kernel is.

Kopieer de kernel vanuit je download-dir naar /usr/src:

cp kernel-2.4.20.tar.gz /usr/src

Om deze uit te pakken doe je:

cd /usr/src
tar zxvf linux-2.4.20.tar.gz

Informatie over je systeem opvragen
Natuurlijk is het essentieel dat je weet wat voor hardware je hebt. Om je daarbij te helpen kun je lspci -v gebruiken. Deze geeft je informatie over je pci-devices. Schrijf op hoe de devices genoemd worden, deze namen heb je nodig in de kernel configuratie. Herkent Linux je netwerkkaart als tulip, dan weet je dat je een tulip driver in de kernel moet hebben.

De kernel configureren
Zorg dat je root bent (su). Ga daarna naar /usr/src/linux-2.4.20, configureren doe je met:

make xconfig

Je krijgt dan het volgende scherm:



Hier kun je aangeven wat voor hardware je hebt. Dus wel/geen ISA, USB, SCSI. Laten we bijvoorbeeld eens kijken naar onze processor:



Zoals je ziet kun je kiezen uit verschillende cpu's. Kies hier voor je processor en klik op main menu als je klaar bent. De help knop bij elke driver/optie geeft meer informatie en is zeker de moeite waard om te lezen
Verder is belangrijk om te weten of je een optie module of yes kiest. Een module-driver kun je invoegen en verwijderen in de kernel wanneer jij dat wilt. Bijvoorbeeld handig als je niet altijd gebruik maakt van die driver.


Belangrijke tips
Zet Prompt for development and/or incomplete code/drivers op yes bij Code maturity level options
Bij USB support kun je het beste kiezen voor UHCI support. Deze is meest gangbaar.
Kies bij processor type and features voor MTRR (Memory Type Range Register) support, geeft betere multimedia support.
Als je een ISA geluidskaart hebt moet je voor elke optie bij Sound module kiezen
Zet Socket Filtering op yes bij networking options. Red Hat 8.0 heeft dit nodig, vanwege nieuwe scripts.
Sla je configuratie op naar een bestand, na een paar keer proberen heb je de ideale kernelconfiguratie voor je computer. Dat scheelt je elke keer opnieuw instellen. Kies dus Save and exit
De kernel compileren
Als u alle opties heeft gezet, gaan we de kernel compileren. Dit duurt meestal vrij lang, ongeveer 10 minuten op een pentium III 450mhz, maar dat hangt natuurlijk af van je processorsnelheid. Type de volgende regel letterlijk in, inclusief de &&.

make dep && make clean && make bzImage && make modules && make modules_install

De && zorgt ervoor dat links van de && succesvol moet worden uitgevoerd voordat ie de rechtse commando uitvoert. Dus als make dep niet lukt, gaat hij niet verder met make clean. Hij stop dan meteen.

Je zou nog iets kunnen toevoegen aan de laatste regels als '&& poweroff'. Dan gaat je pc uit als hij klaar is.

De kernel installeren
Tenslotte rest ons de kernel te installeren.

Het mooie is dat je verschillende kernels naast elkaar kunt gebruiken.
Dat is belangrijk omdat we altijd terug willen gaan naar de veilige standaard kernel.
Ga dus niet de default kernel overschrijven, dat is niet handig en vragen om problemen.

In lilo of grub kun je gewoon deze kernel toevoegen aan het bootmenu.
Kopieer hiervoor /usr/src/linux-2.4.19/arch/i386/boot/bzImage naar /boot. De kernel heet dus bzImage.

Configureer daarna lilo of grub.


Hier is mijn /boot/grub/grub.conf: (nieuwe entry in bootmenu in vet)

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,0)
kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /initrd-2.4.18-14.img
title Eigen kernel
root (hd0,0)
kernel /bzImage ro root=/dev/hda2


Als de kernel niet goed werkt, ga dan weer terug naar de configuratie en kijk welke opties missen (lees de help bij elke optie).

http://marcel-koopman.nl/
 
Om een (nieuwe) kernel te compileren kun je het beste een source nemen van je eigen distro , omdat er vaak patches bijzitten die niet in de uitgebrachte kernels van kernel.org zitten waardoer de kernel niet (goed) werkt op je pc.
Dus uitkijken met het zomaar compilen van een kernel van kernel.org.
Neem een van je eigen distro voor het beste resultaat. (':thumb:')

Johan .
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan