Velen van jullie lijken een probleem te hebben gehad met het installeren van het Kernel voorgecompileerd met de patch van 200 regels op uw machines is dit te verwachten, dus het is altijd beter om een pit direct gecompileerd in onze machine dan in een buitenlandse machine, zodat deze correct de architectuur van onze machine en de algemene configuratie van de hardware overneemt.
Om deze reden leer ik hier de meest gewaagde, hoe ze hun eigen kernel (2.6.36.2) kunnen compileren in Ubuntu (getest in Ubuntu 10.10) met de meegeleverde patch van 200 regels. Onthoud dat dit proces op eigen risico moet worden uitgevoerd, het vereist een groot aantal pakketten om te downloaden en een vrij lange compilatietijd.
Om te beginnen is het eerste dat we moeten doen, de noodzakelijke afhankelijkheden voor de kernelcompilatie installeren door de volgende regel in de terminal uit te voeren:
sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge kernel-pakket
Laten we nu de volgende regel in de terminal uitvoeren, die nodig is om de kernel te compileren (van Onverschrokken)
sudo apt-get build-dep linux
We voltooien deze eerste stap met de installatie van andere pakketten die nodig zijn voor de compilatie
sudo apt-get install libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev
Om door te gaan met het installatieproces van de kernel, moeten we de bronnen van de nieuwste stabiele kernel (2.6.36.2) en de patch van Mike Galbraith en vind ze in onze persoonlijke directory.
Laten we een map maken voor de kernelcompilatie, we gaan ernaar toe en downloaden de kernel-bronnen van kernel.org:
mkdir kernel-2.6.36.2 cd kernel-2.6.36.2 wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.gz
Nu maken we een nieuw tekstbestand aan en we zullen de code kopiëren die we vinden in Mike Galbraith's bericht of we kunnen het downloaden van MediaFire, opslaan en het bestand sluiten:
gedit ~ / autogroup.patch
Mike Galbraith's officiële bericht
Mike Galbraith Patch van MediaFire
Nu gaan we de kernel uitpakken waarvan we zojuist hebben gedownload kernel.org:
tar xzvf linux-2.6.36.2.tar.gz cd linux-2.6.36.2 patch -p1 <~ / autogroup.patch
Op dit punt zou alles goed en zonder fouten moeten gaan, in het geval van een fout is het noodzakelijk om het proces opnieuw te starten.
Vervolgens laden we de huidige configuratie van de kernel, dit zodat de nieuwe kernel de configuratie rechtstreeks van ons systeem overneemt en we geen problemen ondervinden bij het compileren. Maar als u over voldoende kennis beschikt, kunt u de kernelconfiguratie aanpassen om een systeem te krijgen dat beter op uw behoeften is afgestemd.
Als je niet weet wat je doet, is het beter om de kernelinstelling niet handmatig te wijzigen.
We kopiëren de configuratie door het volgende commando in de terminal uit te voeren en later voeren we uit
lsmod
zodat alle modules die in ons systeem zijn geladen worden uitgevoerd en we ervoor zorgen dat al onze hardware wordt herkend.
cp -vi / boot / config-`uname -r` .config make localmodconfig
Op dit punt zal het compilatieproces u verschillende vragen stellen over de modules, en doorgaan met het accepteren van alle vragen die worden gesteld door op te drukken Enter totdat het installatieproces is voltooid.
We gaan door met het compileren van de kernel door de volgende regel in de terminal uit te voeren om het kernelconfiguratiemenu te openen:
cp / boot / config - $ (uname -r) .config && yes "" | make oldconfig make menuconfig
Nu kunnen we de patches kiezen die we in onze kernel willen inschakelen, aangezien we geïnteresseerd zijn in de patch met 200 regels.
Om dit te doen, navigeren we door het kernelconfiguratiemenu dat verschijnt, tot
General Setup
en we zoeken de regel met naam
Automatic process group scheduling
, we schakelen het in door op de spatiebalk op ons toetsenbord te drukken, we positioneren ons op de optie
Exit
met de pijltjestoetsen op het toetsenbord en druk op de toets Enter vanaf ons toetsenbord om het menu te verlaten
General Setup
.
Nu navigeren we naar het menu
Kernel hacking
en we komen binnen door op de toets te drukken Enter, we zoeken de optie
Compile the kernel with debug info
en we deselecteren het door op de spatiebalk op ons toetsenbord te drukken, opnieuw gaan we naar de optie
Exit
en we drukken Enter om het hoofdmenu te verlaten.
We zijn klaar met de kernelconfiguratie, dus we hoeven alleen maar terug te gaan naar
Exit
in het hoofdmenu en druk op Enter om de kernelconfiguratie te voltooien. We accepteren het wanneer het ons vraagt of we de wijzigingen die in de kernelconfiguratie zijn gemaakt, willen opslaan door op Enter te drukken bij de optie Ja.
Nu ja, we gaan de kernel compileren door de volgende regel in de terminal uit te voeren:
fakeroot make-kpkg --initrd --append-to-version = -20101209 kernel-image kernel-headers
Houd er rekening mee dat het bouwproces kan variëren, afhankelijk van uw hardware
Dit genereert twee .deb-pakketten in de kernel-2.6.36.2-directory, die we zullen gebruiken om de nieuwe kernel in onze Ubuntu te installeren, zodat ze traceerbaar zijn door Synaptic en gemakkelijk te verwijderen.
We komen bij het laatste deel van deze tutorial, waar we de goede werking van de nieuwe kernel die we zojuist hebben geïnstalleerd, gaan installeren en testen.
Om de twee .deb-pakketten te installeren die we zojuist hebben gegenereerd, moeten we de volgende opdracht uitvoeren in de terminal:
cd .. sudo dpkg -i * .deb
Als alles goed is gegaan, hebben we onze machine opnieuw opgestart en in de lijst met Rooien, selecteren we de nieuwe kernel (2.6.36.2) en drukken op Enter om het systeem te starten.
Zodra we weer op het bureaublad zijn, zullen we controleren of de patch van 200 regels correct is toegepast en werkt door de volgende regel in een terminal uit te voeren:
kat /usr/src/linux-headers-2.6.36.2-20101219/.config | grep -i AUTOGROUP
En het moet een regel als deze retourneren:
CONFIG_SCHED_AUTOGROUP = y
Als dat het geval is, hebben we ons systeem ermee aan de gang. Kernel 2.36.6.2 en "Automatische planning van procesgroepen" geactiveerd.
We kunnen Ubuntu al maximaal benadrukken ...
Deze handleiding is tot stand gekomen dankzij de inzet van FRANCOBEP.
Hoi David
mijn vraag is:
Ik gebruik meestal de kernels van de ubuntu ppa (https://launchpad.net/~kernel-ppa/+archive/ppa)
Deze worden niet langer geleverd met de patch van 200 lijnen?
bedankt
Kijk, ik ben nog steeds aan het controleren of de Ubuntu PPA-kernel de patch bevat, maar dit is gemakkelijk zelf te achterhalen, voer gewoon het commando uit
cat /usr/src/[versión del último kernel]/.config | grep -i AUTOGROUP
, waar je de tekst tussen haakjes zou veranderen voor de versie van de laatste kernel op je machine.Als u een antwoordbericht als dit krijgt
CONFIG_SCHED_AUTOGROUP=y
, dan heb je de patch geïnstalleerd.Opmerking: om de versie te weten van alle kernels die op je computer zijn geïnstalleerd, hoef je alleen maar het commando uit te voeren
ls /usr/src/
In de terminal.Horacio, de Ubuntu PPA-kernel heeft momenteel de V4-patch van Mike glabraith in de woorden van hemzelf Tim Gardner (Canonical ontwikkelaar).
Nou, ik heb het al gecompileerd en het is geïnstalleerd,…. het systeem stierf tenminste niet om te werken om te zien hoe het werkt
Uitstekende tutorial. Ik volgde de stappen letterlijk en alles werkte perfect. Ik heb mijn nieuwe pit.
Opmerking: ik heb maar één wijziging aangebracht die voor mij logisch klonk en die was hier:
cp -vi / boot / config-`uname -r` .config
maak localmodconfig
Ik heb het zo gedaan:
cp -vi / boot / config-`uname -r` .config
lsmod
maak localmodconfig
nu realiseer ik me dat ik een kleine fout heb gemaakt, dus ik zal het opnieuw installeren ... en de irving-wijziging toevoegen
Ik blijf aan het begin a:
init: ongelezen hoofdproces (362) beëindigd met status 5
Nou, het lijkt goed te werken, wat zou het kunnen zijn ??? '
Nou, heel goed de handleiding, ze hebben het ook op taringa gepost, op dit moment is het de kernel aan het compileren Ik hoop dat het goed is gegaan Ik verander gewoon het type processor in de menuconfiguratie Ik hoop dat je een goede keuze hebt gemaakt door te kiezen voor Intel core / nieuwer xeon aangezien ik een Intel Core i3-processor heb, groeten en bedankt voor de input
Hallo, nou, het commando lijkt me beter
cp / boot / config-`uname –kernel-release` ./.config
omdat het de meest recente geïnstalleerde kernelconfiguratie gebruikt
Hallo, hoe gaat het? Ik heb alleen een kleine twijfel ... in het kernelbestand komen zowel de 32-bits als de 64-bits versies voor? of moet ik een andere downloaden om de amd64-versie te krijgen? ... Aftrekbaar zouden beide versies hetzelfde moeten zijn, toch? ... zeer goede uitleg!
Dank je wel!