Donnerstag, 9. Februar 2012

Hoe je Ubuntu-kernel aanpassen

Kernel maatwerk is niet voor iedereen. Let op: voordat u probeert een van deze dat het kan uw systeem te breken.

Er is een heleboel redenen waarom je zou willen om uw kernel aan te passen. Misschien wilt u trim van uw kernel om alleen de nodige diensten, in het bijzonder als u werkt met een server of dedicated apparaat dat alleen vereist dat de essentie. Kunt u ook nodig hebt om je kernel patch aan de hardware die momenteel niet wordt ondersteund met de kernel die je draait op ondersteuning.

Dit artikel zal niet uitleggen hoe je je kernel patch, alleen hoe u uw huidige aan te passen. Ik heb nog een follow-up artikel dat uitlegt hoe u uw kernel patch, en een aantal praktische redenen waarom je zou willen doen.

Om te beginnen moeten we erachter te komen welke versie van de kernel we momenteel worden uitgevoerd. We gebruiken het commando uname voor die

$ Uname-r

2.6.17-10-generic

Nu moeten we de linux source voor je kernel, er rekening mee dat ik ben de 2.6.17-10 kernel draait installeren, dus de installer lijn weerspiegelt dat. Voor de toepassing van dit artikel, kunt u vervangen door de kernel nummer voor wat u gebruikt. We moeten ook de curses library, en een aantal andere tools installeren om ons te helpen samen te stellen.

sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot

Als je nieuwsgierig bent waar de linux source wordt geïnstalleerd, kunt u gebruik maken van de dpkg commando om u te vertellen van de bestanden binnen een pakket. Hier is de output op mijn systeem:

$ Dpkg-L linux-source-2.6.17
/.
/ Usr
/ Usr / src
/ Usr/src/linux-source-2.6.17.tar.bz2
/ Usr / share
/ Usr / share / doc
/ Usr/share/doc/linux-source-2.6.17
(Schoongemaakt)

We kunnen zien dat de bron is geïnstalleerd in de map / usr / src directory in een zip-bestand.

Om een ​​en ander te vergemakkelijken, zullen we onszelf in de root modus met sudo om een ​​nieuwe shell openen. Er zijn andere manieren om dit te doen, maar ik verkies deze manier.

sudo / bin / bash

Nu directory veranderen in de bronlocatie, zodat we kunnen installeren. Rekening mee dat u kan nodig zijn om de bunzip hulpprogramma te installeren als het niet is geïnstalleerd. (Het was op de mijne)

cd / usr / src

bunzip2 linux-source-2.6.17.tar.bz2

tar xvf linux-source-2.6.17.tar

ln-s linux-source-2.6.17 linux

Maak een kopie van uw bestaande kernel configuratie te gebruiken voor de aangepaste verzamelen proces. Merk op dat de `karakter is het een onder de tilde ~

cp / boot/config- `uname-r` / usr / src / linux / .config

Nu lanceren we het hulpprogramma dat laat ons aanpassen van de kernel:

cd / usr / src / linux

make menuconfig

Ga eerst naar een alternatieve configuratie bestand Load, en laad het bestand. Config. (Net hit enter)

Nu dat we binnen het hulpprogramma, kunnen we de opties voor onze aangepaste kernel. Navigatie is vrij eenvoudig, er is een legende aan de top als je de weg kwijt. Ik besloot om netwerken te selecteren en druk op de Enter toets om naar beneden te gaan in die categorie.

Amateur Radio Support? Wat in de hel is dat geïnstalleerd voor? U zult merken door de * dat het ingebouwd in de kernel.

Door op de? sleutel, kunnen we de hulp voor dat specifieke item. Hier is de uitleg:

Nou, ik ga die onmiddellijk uit te schakelen. Waarom op aarde is dat de gebruikte sowieso in mijn kernel? Ik raakte op Esc om de hulp te verlaten, en daarna op N om dat van mijn kernel te sluiten.

Wanneer u klaar bent met het maken van keuzes wat je wilt, druk op Exit en sla de configuratie wanneer daarom wordt gevraagd.

Nu hebben we een configuratie klaar is voor samen te stellen. Eerst zullen we wel een make clean, gewoon om te controleren of alles is klaar voor de samen te stellen.

make-kpkg clean

Nu gaan we echt compileren van de kernel. Dit zal een lange freaking tijd in beslag nemen, dus gaan zoeken iets interessants te doen.

fakeroot make-kpkg-initrd-append-to-versie =- custom kernel_image kernel_headers

Dit proces zal leiden tot twee. Deb-bestanden in / usr / src dat de kernel bevatten. De linux-image **** bestand is de eigenlijke kernel-image, en het andere bestand bevat de U kunt zowel met dpkg. De bestandsnamen zal waarschijnlijk anders zijn op uw systeem.

Houdt u er rekening mee dat wanneer u deze de volgende commando's, zal dit de nieuwe kernel te stellen als de nieuwe standaard kernel. Dit kan breken dingen! Als uw computer niet opstart, kan je op de Esc GRUB laad-menu en selecteer je oude kernel. U kunt de kernel dan uit te schakelen in / boot / grub / menu.lst of probeer en compileren opnieuw.

dpkg-i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb

dpkg-i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb

Nu herstart je machine. Als alles werkt, moet u het runnen van uw nieuwe aangepaste kernel. U kunt dit controleren door gebruik te maken uname. Merk op dat het exacte aantal zal anders zijn op uw machine.

uname-r

2.6.17.14-ubuntu1-custom

Ik ben van plan om een ​​reeks artikelen over kernel maatwerk schrijven, dus abonneren op de RSS-feed voor updates.

Ook In het belang van volledige openheid, heb ik geleerd hoe dit te doen uit het artikel op HowtoForge, Wat een geweldige website voor een aantal zeer geavanceerde tutorials op linux. U zult merken dat veel van de stappen in dit artikel op elkaar lijken, al heb ik geprobeerd om dit artikel meer "Ubuntu".

Keine Kommentare:

Kommentar veröffentlichen