Hoe u uw eigen Linux-kernel kunt compileren
Samen met het installeren van Gentoo Gentoo: een Linux-distributie waar je je eigen geoptimaliseerde software compileert Gentoo: een Linux-distributie waar je je eigen geoptimaliseerde software compileert Het enorme aantal verschillende manieren waarop Linux kan worden uitgevoerd is verbluffend, want er zijn genoeg keuzemogelijkheden om ga eromheen. Hoewel er veel distributies zijn die afhankelijk zijn van de .deb ... Lees meer, het compileren van je eigen Linux-kernel is een van die dingen die als zeer nerd en technisch worden beschouwd. We hebben al enkele redenen behandeld 3 Redenen waarom je graag je eigen kernel zou willen compileren [Linux] 3 Redenen waarom je misschien je eigen kernel wilt compileren [Linux] Linux-systemen zijn zo belachelijk flexibel en configureerbaar, het is ronduit idioot. Een groot deel van waarom Linux zo flexibel is, is vanwege de modulaire structuur. Elk systeemonderdeel en programma is opgesplitst ... Lees meer waarom u dit zou willen doen. Voordat we u door de stappen leiden, vindt u hier een kort overzicht van enkele belangrijke concepten.
Wat is een kernel?
Kortom, het is een essentieel onderdeel van uw besturingssysteem, zo niet het belangrijkste. Een besturingssysteem is verantwoordelijk voor het laten werken van uw programma's, door hen toegang te geven tot uw hardware. Het is echter de kernel. De Linux Kernel: een uitleg in de termen van de leek De Linux-kernel: een uitleg in de termen van de leek Er is maar één de facto ding dat Linux-distributies gemeen hebben: de Linux-kernel. Maar hoewel er vaak over wordt gesproken, weten veel mensen niet precies wat het doet. Meer lezen die al deze taken daadwerkelijk uitvoert.
De Linux-kernel is speciaal omdat deze op maat kan worden gemaakt voor de hardware die u bezit. Vergelijk dit met de Windows NT-kernel, die over het algemeen op elke computer hetzelfde zal zijn. Om dit te doen, moet de kernel door een proces gaan dat compileren heet.
Wat is compileren?
Over het algemeen worden programma's geschreven in een door mensen leesbaar formaat. Dit maakt het gemakkelijker voor mensen om software te maken. De Linux-kernel is bijvoorbeeld voornamelijk geschreven in een programmeertaal genaamd C. Computers kunnen dit echter niet begrijpen. Ze herkennen alleen een gecompliceerde taal die wordt genoemd machine code. Om dit te doen, moeten de tekstregels worden vertaald. Hoe compileren en installeren TAR GZ en TAR BZ2 bestanden in Ubuntu Linux Compileren en installeren TAR GZ en TAR BZ2 bestanden in Ubuntu Linux Lees meer met een speciaal stuk software genaamd a compiler.
Verschillende compilers worden gebruikt om verschillende programmeertalen te converteren. Bijvoorbeeld, GCC is een compiler die C-code in machinecode (onder andere) vertaalt. Maar dat is niet alles wat ze doen - compilers kunnen ook optimaliseren de vertaalde code voor specifieke machines. Daarnaast kunnen ze ook ongewenste functies uit programma's verwijderen.
Meestal is dit proces al voor veel software gedaan. In plaats daarvan downloaden mensen de geconverteerde binair instructies, die uit de doos werken. De webbrowser Gebruikt u bijvoorbeeld de beste webbrowser voor Linux in 2016? Gebruikt u de beste webbrowser voor Linux in 2016? Het gebruik van de "verkeerde" browser kan leiden tot veel onnodige hoofdpijn, verspilde productiviteit en zelfs verloren gegevens. Dus welke browser is het beste voor uw Linux-computer? Laten wij het uitzoeken. Meer informatie die u nu uitvoert, is al gecompileerd. Dit komt omdat het compileren van iets een beetje ingewikkeld en tijdrovend kan zijn. Zie het als het vertalen van een groot boek in een vreemde taal.
Kort gezegd, het compileren van de kernel betekent dat de code wordt geconverteerd naar iets dat daadwerkelijk op je computer zal worden uitgevoerd.
Kernel Bronnen verkrijgen
Je kunt geen vuur maken zonder brandstof. Evenzo kunt u geen programma's compileren als u de code hiervoor niet in de eerste plaats heeft. De methode is over het algemeen hetzelfde voor de meeste Linux-besturingssystemen, op enkele uitzonderingen na. Velen van hen leveren hun eigen aangepaste kernelbronnen. Je zou moeten proberen om dat te gebruiken als je kunt. Als u bijvoorbeeld een gebruikt Op Debian gebaseerd besturingssysteem zoals Ubuntu, moet u de bronnen installeren met behulp van deze opdrachten:
sudo apt-get update sudo apt-get installeer linux-source
U kunt ook verschillende versies van dit pakket installeren (bijv. linux-source-4.8.0) Als je dat wil. Je zult de geïnstalleerde bestanden vinden in de / Usr / src / directory, dus ga daarheen en bekijk de inhoud:
cd / usr / src / ls
Je ziet een bestand dat eindigt met .tar.bz2. Dit is de bron die u gaat gebruiken. Pak het uit met dit commando:
sudo tar xjvf linux-source-4.4.0.tar.bz2
Zorg ervoor dat je het bestand natuurlijk vervangt door de juiste naam. Het bestand zal vrij groot zijn, dus het proces zal een tijdje duren!
Alternatieve methode
Als je wilt, kun je je bronnen verkrijgen via de officiële Linux Kernel-website. Ik raad dit alleen aan als je Linux-besturingssysteem ze niet levert. Selecteer de gewenste versie en download deze weg. Als u deze route doorloopt, moet u deze downloaden naar een lege map. Op deze manier, als je in de toekomst meer kernels wilt compileren, heb je een leuke map om ze in te organiseren.
Na dit gedaan te hebben, extraheert u het bestand met deze opdracht:
tar xJvf linux-4.9.11.tar.xz
Zorg ervoor dat u de bestandsnaam gebruikt die overeenkomt met de versie die u hebt gedownload!
Pas de kernel aan
Dit is de stap waar je kunt kiezen welke delen van de kernel je wilt verwijderen. De kernel wordt bijvoorbeeld geleverd met veel verschillende stuurprogramma's voor verschillende apparaten. Als je die ondersteuning niet nodig hebt, kan het kwijtraken ervan een aantal snelheidsvoordelen opleveren, samen met een kleinere kernel.
voorwaarden
Voordat u verder gaat, moet u enkele programma's installeren waarmee u het programma kunt aanpassen en compileren.
Op Debian-gebaseerde systemen heeft u de build-essentiële pakket, onder andere:
sudo apt-get install build-essential gcc libncurses5-dev libssl-dev
De libncurses5-dev pakket zal het gemakkelijker maken om de kernel te configureren, dus zorg ervoor dat je het installeert. Andere Linux-besturingssystemen hebben een soortgelijk programma, maar dit kan een andere naam hebben. Bijvoorbeeld, als je Fedora 5 Redenen gebruikt om Pure Open Source Distro te gebruiken, Fedora 5 redenen om Pure Open Source Distro te gebruiken, is Fedora Fedora niet zo bekend als Ubuntu en heeft het de reputatie moeilijk te gebruiken te zijn. Maar als dit waar is, waarom blijven zoveel mensen Fedora gebruiken? Meer lezen, het is genoemd ncurses.
Als het nog niet is geïnstalleerd, hebt u ook de GNU Compiler Collection (GCC). Dit is de tool die verantwoordelijk is voor het vertalen van de onbewerkte broncode in iets dat begrijpelijk is voor computers. Dat wil zeggen, compileren.
Nadat u deze programma's hebt geïnstalleerd, opent u uw terminal zodat u dat bent binnen de uitgepakte bronmap van Linux. Bijvoorbeeld als u de Linux-source methode, zou je dit doen:
cd /usr/src/linux-source-4.4.0
Kernel configuratiebestand
Voordat u de kernel compileert, moet u GCC vertellen hoe u het wilt doen. U doet dit met behulp van een command line tool genaamd maken. Voer deze opdracht in:
sudo maakt localmodconfig
Hiermee wordt een bestand met de naam. Gemaakt .config, die GCC vertelt wat er uit de kernelbronnen moet worden gecompileerd. De maak localmodconfig command detecteert momenteel draaiende kernelcomponenten en markeert deze voor compilatie. Als de kernel zich in een map bevindt waarvan jij de eigenaar bent, jij zal sudo niet nodig hebben om het te laten werken.
U kunt enkele berichten tegenkomen, zoals de onderstaande. Druk gewoon op invoeren sleutel om ze over te slaan - het zijn meestal gewoon nieuwe kernelfuncties.
Localmodconfig is echter niet perfect! Als u op dit moment bepaalde delen van uw computer niet gebruikt, detecteert het mogelijk niet alle dingen die het ondersteunt. Daarom moet u ze handmatig inschakelen. U kunt deze stap ook helemaal overslaan en in plaats hiervan de volgende opdracht gebruiken. Hiermee compileer je de nieuwe kernel met dezelfde opties als degene die je momenteel gebruikt.
Als u dat wilt, maar eerder de opdracht localmodconifg hebt gebruikt, doet u het volgende:
sudo make clean
Dit geeft je een schone build. U moet deze opdracht ook gebruiken als u eerder een kernel met deze bronnen hebt gecompileerd.
Verdere configuratie
Binnen de bronmap van de kernel is er een bestand met de naam .config. Dit is wat GCC zal gebruiken om te kiezen wat te compileren. In plaats van deze handmatig te bewerken (niet aanbevolen), gebruikt u in plaats daarvan een paar terminalhulpmiddelen. Dit maakt het selecteren van compileeropties veel eenvoudiger.
Nadat u dit hebt gedaan, stelt u het verder op:
sudo make nconfig
Je ziet een kleurrijk menu verschijnen. Dit is het kernelconfiguratiemenu. Gebruik de pijltjestoetsen om te navigeren. U kunt op de rechts pijltoets om vermeldingen uit te vouwen met een -> teken naast hen. Navigeer uit deze submenu's door op te drukken links Pijltjestoets.
U kunt menu-items schakelen die de <> of [] teken naast hen door op de spatiebalk te drukken. Dit zal door de verschillende menu-opties bladeren. Als je een ziet * of M Binnenin wordt die specifieke kerncomponent gecompileerd. Het enige verschil tussen hen is dat de M optie wordt geladen wanneer het nodig is. Dit kan handig zijn als u bijvoorbeeld een stuurprogramma compileert, dat niet vaak zal worden gebruikt.
Als u meer wilt weten over wat een specifieke schakelaar doet, drukt u op F2 overheen. U ziet een nuttige beschrijving van wat u aan het compileren bent.
Als u klaar bent, drukt u op F9 knop om op te slaan en af te sluiten.
Compilatie en installatie van de kernel
Nu u een aangepast maakbestand hebt gemaakt, moet u compileren hoe TAR GZ en TAR BZ2-bestanden te compileren en te installeren in Ubuntu Linux TAR GZ en TAR BZ2-bestanden compileren en installeren in Ubuntu Linux Lees meer over de kernel. Voer deze opdracht in:
sudo make -j $ (nproc - alles)
Je zal geen sudo nodig als je de kernel-bronnen van internet hebt gedownload. Het tweede deel van het commando helpt om de compileertijd van de kernel te versnellen, door gebruik te maken van al je CPU-kernen. Wat is een processorkern? [MakeUseOf Explains] Wat is een processorkern? [MakeUseOf Explains] Elke computer heeft een processor, of het nu een kleine efficiency-professional is of een krachtige powerhouse, anders zou deze niet kunnen werken. Natuurlijk, de processor, ook wel de CPU of centrale verwerking ... Lees meer. U kunt hiervan afkomen of het nummer wijzigen in iets anders (bijv. -j2), als u uw computer wilt gebruiken voor andere taken zonder al te veel haperingen. Dit maakt het compileren echter ook langzamer!
Dit proces kan en zal heel lang duren. Hoe minder u ervoor koos om te compileren, hoe korter het zal zijn. Toch zul je waarschijnlijk geduld moeten hebben.
Voer daarna deze opdracht in om de rest van de kernel te compileren:
sudo make modules_install
Om deze kernel daadwerkelijk te gebruiken, moet je deze opdracht invoeren:
sudo make install
Dit zal de kernel automatisch naar jouw kopiëren /bagageruimte map en genereer de juiste bestanden om het te laten werken.
Schakelen van kernels met GRUB
Als u opnieuw opstart na het installeren van uw nieuwe kernel, uw systeem werkt mogelijk niet! Dit is meestal te wijten aan een onjuist gecompileerde kernel (dat wil zeggen, niet genoeg ondersteuning voor uw computer). Een voorbeeld, mijn eigen laptop. Voor het geval dit gebeurt, raad ik aan om GRUB te bewerken. Hoe de GRUB bootloader aan te passen met behulp van BURG [Ubuntu] Hoe de GRUB bootloader aan te passen met behulp van BURG [Ubuntu] Read More zodat het terug kan schakelen naar oudere kernels. Om dit te doen, gebruik deze opdracht:
sudo nano / etc / default / grub
Plaats een # -teken voor de GRUB_HIDDEN_TIMEOUT en GRUB_HIDDEN_TIMEOUT_QUIET lijnen. Sla nadien deze wijzigingen op met deze opdracht:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Als u nu uw computer opnieuw opstart, kunt u overschakelen naar een oudere kernel als uw nieuwe niet werkt. Ga gewoon naar de Geavanceerde opties menu-item en selecteer de kernel die u wilt opstarten. Als alles goed komt, gefeliciteerd! Je gebruikt de kernel die je zelf hebt gecompileerd.
Ben je geïnteresseerd in het compileren van meer kernels? Andere programma's? Vind je het de moeite waard?
Afbeeldingscredits: chombosan / Shutterstock
Ontdek meer over: Linux.