Zoeken op website

Kernel 3.16 uitgebracht - Compileer en installeer op Debian GNU/Linux


Kernel is de kern van elk besturingssysteem. De primaire functie van de kernel is om te fungeren als bemiddelaar tussen applicatie – CPU, applicatie – geheugen en applicatie – apparaten (I/O). Het functioneert als Geheugenbeheerder, Apparaatbeheerder en neemt deel aan systeemoproepen naast het uitvoeren van andere taken.

Voor Linux is Kernel het hart. De Linux Kernel is vrijgegeven onder de GNU General Public License. Linus Torvalds ontwikkelde Linux Kernel in het jaar 1991 en hij kwam met Initial Kernel Release Version 0.01. Op 3 augustus 2014 (dit jaar) is Kernel 3.16 uitgebracht. In deze 22 jaar heeft de Linux-kernel veel ontwikkeling doorgemaakt. Nu zijn er duizenden bedrijven, miljoenen onafhankelijke ontwikkelaars die bijdragen aan de Linux Kernel.

Een ruwe schatting van grote merken en hun bijdrage aan de huidige Linux Kernel, die naar verwachting 17 miljoen regels code zal bevatten volgens Linux Foundation, Linux Kernel Development Report.

  1. RedHat – 10,2%
  2. Intel – 8,8%
  3. Texas Instruments – 4,1%
  4. Linaro – 4,1%
  5. SUSE – 3,5%
  6. IBM – 3,1%
  7. Samsung – 2,6%
  8. Google – 2,4%
  9. Vision-graveersystemen – 2,3%
  10. Wolfson Micro-elektronica – 1,6%
  11. Orakel – 1,3%
  12. Broadcom – 1,3%
  13. Nvidia – 1,3%
  14. Vrije schaal – 1,2%
  15. Ingics-technologie – 1,2%
  16. Cisco – 0,9%
  17. Linux Foundation – 0,9%
  18. AMD – 0,9%
  19. Academici – 0,9%
  20. NetAPP – 0,8%
  21. Fujitsu – 0,7%
  22. parallellen – 0,7%
  23. WAPEN – 0,7%

Zeventig procent van de kernelontwikkeling wordt gedaan door ontwikkelaars, die bij bedrijven werken en daarvoor betaald worden, klinkt interessant?

Linux Kernel 3.16 is uitgebracht voor zowel individuen als bedrijven in een productieomgeving, die hun kernel om een aantal redenen zullen updaten, waaronder enkele.

  1. Beveiligingspatches
  2. Stabiliteitsverbetering
  3. Bijgewerkte stuurprogramma's – Betere apparaatondersteuning
  4. Verbetering van de verwerkingssnelheid
  5. Nieuwste functies, enz

Dit artikel heeft tot doel de Debian-kernel op de Debian-manier te updaten, wat minder handmatig werk en minder risico betekent, maar toch met perfectie. We zullen ook de Ubuntu Kernel bijwerken in het laatste deel van dit artikel.

Stap 1: Kernel 3.16 downloaden

Voordat we verder gaan, moeten we op de hoogte zijn van onze huidige kernel, die is geïnstalleerd.

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Over opties:

  1. -s: printbesturingssysteem (‘Linux’, hier).
  2. -n: hostnaam van afdruksysteem (‘tecmint’, hier).
  3. -r: kernelversie afdrukken (‘tecmint 3.14-1-amd64’, hier).
  4. -m: hardware-instructieset afdrukken ('x86_64', hier).

Download de nieuwste stabiele kernel via de onderstaande link. Laat u niet in de war brengen door de downloadlink voor patches daar. Download degene die duidelijk vermeldt: “LAATSTE STABIELE KERNEL”.

  1. https://www.kernel.org/

Als alternatief kunt u wget gebruiken om de kernel te downloaden, wat handiger is.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

Stap 2: Controleer de handtekening van Kernel 3.16

Nadat het downloaden is voltooid en voordat we verder gaan, wordt het ten zeerste aanbevolen om de kernelhandtekening te verifiëren.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign

De handtekeningverificatie moet worden uitgevoerd tegen een niet-gecomprimeerd bestand. Dit vereist één handtekening voor verschillende compressieformaten, namelijk .gz, .bz2, .xz.

Decomprimeer vervolgens de Linux Kernel Image.

avi@tecmint:~/Downloads$ unxz linux-3.16.tar.xz

Controleer het aan de hand van de handtekening.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Opmerking: Als bovenstaande opdracht gpg genereert: Kan handtekening niet controleren: fout publieke sleutel niet gevonden. Dat betekent dat we de openbare sleutel handmatig van de PGP-server moeten downloaden.

avi@tecmint:~/Downloads$ gpg --recv-keys  00411886

Nadat u de sleutel heeft gedownload, verifieert u de sleutel opnieuw.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Zijn je twee dingen opgevallen over gpg-sleutelverificatie.

  1. gpg: goede handtekening van “Linus Torvalds <[email >”.
  2. Primaire sleutelvingerafdruk: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 .

U hoeft zich geen zorgen te maken over de sleutelvingerafdruk, we weten nu zeker dat het archief in orde is en is ondertekend. Laten we verder gaan!

Stap 3: Vereiste pakketten installeren

Voordat we verder gaan met het bouwen van de kernel, moeten we bepaalde pakketten installeren om het bouw- en installatieproces van de kernel te vergemakkelijken en dit op een risicovrije Debian-manier uit te voeren.

Installeer libcurse5-dev, fakeroot en kernelpakket.

avi@tecmint:~/Downloads$ sudo apt-get install libncurses5-dev
avi@tecmint:~/Downloads$ sudo apt-get install fakeroot
avi@tecmint:~/Downloads$ sudo apt-get install kernel-package

Stap 4: Kernel bouwen 3.16

Na een succesvolle installatie van de bovenstaande pakketten zijn we klaar om kernel te bouwen. Ga naar de uitgepakte Linux Kernel Image (we hebben hierboven uitgepakt, terwijl we de handtekening verifieerden).

avi@tecmint:~/Downloads$ cd linux-3.16/

Nu is het belangrijk om de huidige kernelconfiguratie te kopiëren om de werkmap als rootgebruiker weer te geven.

cp /boot/config-'uname -r' .config

Het kopieert /boot/config-'uname -r' naar de werkmap “/home/avi/Downloads/linux-3.16 ” en slaat het op als '.config'.

Hier wordt ‘uname -r‘ automatisch vervangen en verwerkt met de momenteel geïnstalleerde kernelversie.

Omdat een puntbestand niet op de normale manier kan worden bekeken, moet je de optie ‘-a‘ gebruiken met ls om dit te bekijken, in je huidige werkmap.

ls -al

Er zijn drie manieren om een Linux-kernel te bouwen.

  1. make oldconfig: Het is een interactieve manier waarop de kernel één voor één de vraag stelt wat het zou moeten ondersteunen en wat niet. Het is een zeer tijdrovend proces.
  2. make menuconfig: het is een op het opdrachtregelmenu gebaseerd systeem waarmee de gebruiker een optie kan in- en uitschakelen. Het vereist een ncurses-bibliotheek, daarom passen we dat hierboven aan.
  3. make qconfig/xconfig/gconfig: Het is het op een grafisch menu gebaseerde systeem waar de gebruiker een optie kan in- en uitschakelen. Het vereist QT-bibliotheek.

Uiteraard zullen we ‘make menuconfig‘ gebruiken.

Bang voor het bouwen van een kernel? Dat zou je niet moeten zijn. Het is leuk, je zult veel dingen leren. U moet rekening houden met de volgende dingen.

  1. Uw hardwarebehoeften en geschikte stuurprogramma's.
  2. Kies nieuwe functies terwijl u zelf de kernel bouwt, zoals – ondersteuning voor veel geheugen.
  3. Kernel optimaliseren – selecteer alleen die stuurprogramma's die u nodig heeft. Het versnelt uw opstartproces. Als u niet zeker bent van een stuurprogramma, kunt u dat beter vermelden.

Voer nu de opdracht ‘make menuconfig’ uit.

make menuconfig

Belangrijk: u moet kiezen voor “SELECT – LAADBARE MODULE-ONDERSTEUNING INSCHAKELEN“. Als u dit vergeet, krijgt u moeilijke tijden .

Opmerking: In de geopende configuratievensters kunt u verschillende opties configureren voor uw netwerkkaart, Bluetooth, Touchpad, grafische kaart, bestandssysteemondersteuning zoals NTFS en nog veel meer opties.

Er is geen tutorial die u vertelt wat u moet selecteren en wat niet. Je komt dit alleen te weten door onderzoek te doen, dingen via internet te bestuderen, te leren van tutorials van tecmint en op elke andere mogelijke manier.

Mogelijk ziet u dat er een optie is voor kernelhacking. Hacken? JEP! Hier betekent het verkenning. Je kunt verschillende opties toevoegen onder kernelhacking en veel functies gebruiken.

Selecteer vervolgens Algemene stuurprogrammaopties.

Ondersteuning voor netwerkapparaten.

Ondersteuning voor invoerapparaten.

Laad het configuratiebestand (.config), dat we hebben opgeslagen vanuit /boot/config-`uname –r`.config.

Klik op OK, opslaan en afsluiten. Maak nu de bronboom schoon en reset de kernelpakketparameters.

make-kpkg clean

Stap 5: Kernel 3.16 compileren

Voordat we beginnen met het compileren van de kernel, moeten we CONCURRENCY_LEVEL exporteren. GELIJKTIJDIGHEIDSNIVEAU van de vuist heeft een regel om Numeriek 1 toe te voegen aan de kernen van de kernel. Als u twee kernen heeft, exporteert u CONCURRENCY_LEVEL=3. Als u 4 kernen heeft, exporteert u CONCURRENCY_LEVEL=5.

Om de kernen van de processor te controleren, kunt u het cat-commando gebruiken, zoals hieronder weergegeven.

cat /proc/cpuinfo
Voorbeelduitvoer
Sample Output
processor	: 0 
vendor_id	: GenuineIntel 
cpu family	: 6 
model		: 69 
model name	: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 
stepping	: 1 
microcode	: 0x17 
cpu MHz		: 799.996 
cache size	: 3072 KB 
physical id	: 0 
siblings	: 4 
core id		: 0 
cpu cores	: 2 
apicid		: 0 
initial apicid	: 0 
fpu		: yes 
fpu_exception	: yes 
cpuid level	: 13 
wp		: yes

Je ziet bovenstaande uitvoer, ik heb 2 kernen, dus we zullen 3 kernen exporteren zoals hieronder weergegeven.

export CONCURRENCY_LEVEL=3

Als u de juiste CONCURRENCY_LEVEL instelt, wordt de kernelcompilatietijd versneld.

fakeroot make-kpkg --append-to-version "-tecmintkernel" --revision "1" --initrd kernel_image kernel_headers

Hier is ‘tecminkernel’ de naam van de kernelbuild, dit kan van alles zijn, variërend van uw naam, uw hostnaam, uw koosnaam of iets anders.

Kernelcompilatie kost veel tijd, afhankelijk van de modules die worden gecompileerd en de verwerkingskracht van de machine. Tot de tijd dat het compileert, kun je enkele veelgestelde vragen over kernelcompilatie bekijken.

Veel Gestelde Vragen

Q1. Mijn kernel wordt al een hele tijd gecompileerd. Is het normaal.
Vraag 2. Als ik de kernel onderbreek tijdens het compileren, moet ik dan helemaal opnieuw beginnen?
Q3. De gecompileerde bestanden kunnen op verschillende systemen worden gebruikt om de kernel bij te werken?
Q4. Wilt u uw gecompileerde bestand hosten?
Vraag 5. Heb ik pakketten zoals fakeroot en ncurses5-dev in mijn repository?
Vraag 6. Kan ik in de laatste kernel opstarten, nadat ik de nieuwste kernel heb geïnstalleerd?
Vraag 7. Ik ondervind problemen bij het updaten van de kernel. Wil je mij helpen? Is er een toeslag?
Vraag 8. Mijn bedrijf ondervindt problemen bij het updaten van Kernel. Helpt jouw team ons? Is het verschuldigd?

Dat is het einde van de FAQ, laat me verder gaan met het compilatieproces. Na een succesvolle compilatie van de kernel, worden er twee bestanden aangemaakt (Debian-pakket), één map ‘boven’ van onze huidige werkmap.

Onze huidige werkmap is.

/home/avi/Downloads/linux-3.16/

Debian-pakketten worden gemaakt op.

/home/avi/Downloads

Om dit te verifiëren, voert u de volgende opdrachten uit.

cd ..
ls -l linux-*.deb

Voer vervolgens het aldus gemaakte Linux-imagebestand uit.

dpkg -i linux-image-3.16.0-tecmintkernel_1_amd64.deb

Voer het aldus gemaakte Linux-headerbestand uit.

dpkg -i linux-headers-3.16.0-tecmintkernel_1_amd64.deb

Helemaal klaar! We hebben met succes de nieuwste Linux Kernel 3.16 op Debian gebouwd, gecompileerd en geïnstalleerd met alle andere afhankelijkheden. Bovendien slaagde het Debian-pakket erin om de bootloader (GRUB/LILO) automatisch te updaten. Het is tijd om opnieuw op te starten en de nieuwste kernel te testen.

Zorg ervoor dat u eventuele foutmeldingen opmerkt die u tijdens het opstarten kunt krijgen. Het is belangrijk om die fout te begrijpen om deze, indien aanwezig, op te lossen.

reboot

Zodra Debian opnieuw start, klikt u op ‘Geavanceerde optie’ om een lijst met beschikbare en geïnstalleerde kernels te zien.

Bekijk een lijst met geïnstalleerde kernels.

Selecteer de laatst gecompileerde kernel (d.w.z. 3.16) om op te starten.

Controleer de kernelversie.

uname -mrns

De nieuwste versie, die nu is geïnstalleerd, is ingesteld om automatisch op te starten en u hoeft deze niet elke keer te kiezen uit de geavanceerde opstartopties.

Stap 6: Installeer de vooraf gecompileerde kernel 3.16

Voor degenen die geen eigen kernel willen compileren op Debian (x86_64) en de vooraf gecompileerde kernel willen gebruiken die we in deze tutorial bouwen, kunnen deze downloaden via de onderstaande link. Deze kernel werkt mogelijk niet voor bepaalde hardware die u mogelijk gebruikt.

  1. linux-image-3.16.0-linux-console.net_kernel_1_amd64.deb
  2. linux-headers-3.16.0-linux-console.net_kernel_1_amd64.deb

Installeer vervolgens de vooraf gecompileerde kernel met behulp van de volgende opdracht.

dpkg -i linux-image-3.16.0-linux-console.net_kernel_amd64.deb
dpkg -i linux-headers-3.16.0-linux-console.net_kernel_amd64.deb

De ongebruikte kernel kan met behulp van het commando uit het systeem worden verwijderd.

apt-get remove linux-image-(unused_version_number)

Let op: je moet de oude kernel verwijderen nadat je de nieuwste kernel grondig hebt getest. Neem geen overhaaste beslissing. Ga alleen verder als u weet wat u doet.

Als je iets verkeerd hebt gedaan bij het verwijderen van de kernel die je wilt, of de kernel hebt verwijderd die niet de bedoeling was, zal je systeem zich in een fase bevinden waar je niet aan kunt werken.

Na het verwijderen van een ongebruikte kernel kan het zijn dat u een melding krijgt zoals.

  1. De link /vmlinuz is een beschadigde link.
  2. Symbolische link vmlinuz verwijderen.
  3. Mogelijk moet u uw bootloader [grub] opnieuw uitvoeren.
  4. De link /initrd.img is een beschadigde link.
  5. Symbolische link initrd.img verwijderen.
  6. Mogelijk moet u uw bootloader [grub] opnieuw uitvoeren.

Dit is normaal en u hoeft zich geen zorgen te maken. Update gewoon uw GRUB met behulp van de volgende opdracht.

/usr/sbin/update-grub

Mogelijk moet u uw /etc/kernel-img.conf-bestand bijwerken en ‘do_symlinks‘ uitschakelen om deze berichten uit te schakelen. Als u opnieuw kunt opstarten en opnieuw kunt inloggen, is er geen probleem.

Dat is het voor nu. Ik zal hier weer zijn met een ander interessant artikel. Blijf tot die tijd op de hoogte en verbonden met Tecmint. Vergeet niet om ons uw waardevolle feedback te geven in het commentaargedeelte hieronder. Vertel ons ook uw ervaringen wanneer u Kernel-compilatie en -installatie tegenkomt.

Lees ook:

  1. Installeer Kernel 3.16 in Ubuntu
  2. Compileer en installeer Kernel 3.12 in Debian Linux