Hoe Kernel 2.6.36.2 in Ubuntu te compileren met de 200-regelige patch

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

.

Linux-kernelconfiguratie - Algemene instellingen

Linux-kernelconfiguratie - Automatische procesgroepscheluding

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.

Linux-kernelconfiguratie - Kernel-hacking

Linux-kernelconfiguratie - Nee Compileer de kernel met foutopsporingsinformatie

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.
Ubuntu 10.10 Maverick Meerkat met Kernel 2.6.36.2 en automatische procesgroepplanning

We kunnen Ubuntu al maximaal benadrukken ...

Deze handleiding is tot stand gekomen dankzij de inzet van FRANCOBEP.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Horacio zei

    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

    1.    David Gómez zei

      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.

    2.    David Gómez zei

      Horacio, de Ubuntu PPA-kernel heeft momenteel de V4-patch van Mike glabraith in de woorden van hemzelf Tim Gardner (Canonical ontwikkelaar).

      We hebben V4 van de auto-cgroup-patch van Mike Galbraith sinds 2.6.37-6.16, maar ik verwacht dat dit zal veranderen in het voordeel van de upstream-tip naarmate we verder gaan naar het 2.6.38 merge-venster.

      sched: geautomatiseerd per sessie taakgroepen V4

      rtg

      -
      Tim Gardner

  2.   kanito zei

    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

  3.   Irving zei

    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

  4.   kanito zei

    nu realiseer ik me dat ik een kleine fout heb gemaakt, dus ik zal het opnieuw installeren ... en de irving-wijziging toevoegen : Mrgreen:

  5.   sergio zei

    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 ??? '

  6.   brian zei

    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

  7.   thedemon007 zei

    Hallo, nou, het commando lijkt me beter

    cp / boot / config-`uname –kernel-release` ./.config

    omdat het de meest recente geïnstalleerde kernelconfiguratie gebruikt

  8.   Darkwolf22 zei

    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!