Advertentie
Samen met Gentoo installeren Gentoo: een Linux-distributie waar u uw eigen geoptimaliseerde software samensteltHet enorme aantal verschillende manieren waarop Linux kan worden gebruikt, is verbazingwekkend, omdat er genoeg keuzes zijn om rond te gaan. Hoewel er tal van distributies zijn die afhankelijk zijn van de .deb ... Lees verder , het samenstellen van je eigen Linux-kernel is een van die dingen die als erg nerdig en technisch worden beschouwd. We zijn al behandelde een paar redenen 3 redenen waarom u uw eigen kernel zou willen compileren [Linux]Linux-systemen zijn zo belachelijk flexibel en configureerbaar dat het ronduit gek is. Een groot deel van de reden waarom Linux zo flexibel is, is vanwege de modulaire structuur. Elke systeemcomponent en elk programma is opgesplitst ... Lees verder waarom je dit zou willen doen. Voordat we u door de stappen leiden, volgt 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 functioneren van uw programma's door ze toegang te geven tot uw hardware. Het is echter de
kernel Wat is een kernel in Linux en hoe controleer je je versie?Linux is toch een besturingssysteem? Nou, niet precies! Het is eigenlijk een pit. Maar wat is de Linux-kernel? Lees verder die eigenlijk al deze banen uitvoert.De Linux-kernel is speciaal omdat het op maat kan worden gemaakt om te passen bij de hardware die je 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 een proces doorlopen dat compileren heet.
Kijk voor meer informatie onze introductie tot kernels in Linux Wat is een kernel in Linux en hoe controleer je je versie?Linux is toch een besturingssysteem? Nou, niet precies! Het is eigenlijk een pit. Maar wat is de Linux-kernel? Lees verder .
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 ingewikkelde taal genaamd machine code. Om dit te doen, moeten de tekstregels zijn vertaald TAR GZ & TAR BZ2-bestanden compileren en installeren in Ubuntu Linux Lees verder met een speciaal stuk software genaamd a compiler.
Er worden verschillende compilers gebruikt om verschillende programmeertalen te converteren. Bijvoorbeeld, GCC is een compiler die C-code onder andere in machinecode vertaalt. Maar dat is niet alles wat ze doen - compilers kunnen dat ook optimaliseren de vertaalde code voor specifieke machines. Daarnaast kunnen ze ook ongewenste functies van programma's verwijderen.
Meestal wordt dit proces al voor veel software uitgevoerd. In plaats daarvan downloaden mensen het geconverteerde binair instructies die uit de doos werken. Bijvoorbeeld de webbrowser Gebruikt u de beste webbrowser voor Linux in 2016?Het gebruik van de "verkeerde" browser kan tot veel onnodige hoofdpijn, verspilde productiviteit en zelfs verloren gegevens leiden. Dus welke browser is het beste voor je Linux-computer? Dat zoeken we uit. Lees verder je loopt nu is al gecompileerd. Dit komt omdat het samenstellen van iets een beetje ingewikkeld en tijdrovend kan zijn. Zie het als het vertalen van een groot boek in een vreemde taal.
Kortom, het compileren van de kernel betekent het converteren van de code naar iets dat daadwerkelijk op je computer draait.
Kernelbronnen verkrijgen
Zonder brandstof kun je geen vuur maken. Evenzo kunt u geen programma's samenstellen als u er in de eerste plaats de code niet voor 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 moet dat proberen te gebruiken als je kunt. Als u bijvoorbeeld een 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. U vindt de geïnstalleerde bestanden in de /usr/src/ directory, dus navigeer daarheen en bekijk de inhoud:
cd / usr / src / ls.
Je ziet een bestand dat eindigt op .tar.bz2. Dit is de bron die je gaat gebruiken. Pak het uit met deze opdracht:
sudo tar xjvf linux-source-4.4.0.tar.bz2.
Zorg ervoor dat u het bestand natuurlijk vervangt door de juiste naam. Het bestand zal vrij groot zijn, dus het proces duurt even!
Alternatieve methode
Als u wilt, kunt u uw bronnen verkrijgen bij de officiële Linux Kernel-website. Ik raad dit alleen aan als je Linux-besturingssysteem ze niet biedt. Selecteer de gewenste versie en download deze weg. Als u deze route volgt, moet u deze downloaden naar een lege map. Op deze manier, als je in de toekomst meer kernels wilt compileren, heb je een mooie map om ze georganiseerd te houden.
Hierna pak je het bestand uit met deze opdracht:
tar xJvf linux-4.9.11.tar.xz
Zorg ervoor dat je de bestandsnaam gebruikt die overeenkomt met de versie die je 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 wegwerken ervan een aantal snelheidsvoordelen opleveren, samen met een kleinere kernel.
Vereisten
Voordat u doorgaat, moet u enkele programma's installeren waarmee u deze kunt aanpassen en compileren.
Op op Debian gebaseerde systemen heeft u de build-essentieel pakket oa:
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 onder een andere naam zijn. Als je bijvoorbeeld gebruikt Fedora 5 redenen om Pure Open Source Distro, Fedora te gebruikenFedora is niet zo bekend als Ubuntu en heeft de reputatie moeilijk te gebruiken te zijn. Maar als dit waar is, waarom blijven zoveel mensen dan Fedora gebruiken? Lees verder , het heet ncurses.
Als het nog niet is geïnstalleerd, heb je ook de GNU Compiler-collectie (GCC). Dit is de tool die verantwoordelijk is voor het vertalen van de onbewerkte broncode naar iets begrijpelijks voor computers. Dat wil zeggen: compileren.
Nadat je deze programma's hebt geïnstalleerd, open je je terminal zodat je dat bent binnen de uitgepakte Linux-bronmap. Als u bijvoorbeeld de linux-source methode, zou u 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 een opdrachtregelprogramma genaamd maken. Typ deze opdracht:
sudo maak localmodconfig.
Dit creëert een bestand genaamd .config, die GCC vertelt wat het moet compileren vanuit de kernelbronnen. De maak localmodconfig commando detecteert momenteel actieve kernelcomponenten en markeert ze voor compilatie. Als de kernel zich in een map bevindt waarvan jij de eigenaar bent, jij heb sudo niet nodig om het te laten werken.
U kunt enkele berichten tegenkomen, zoals de onderstaande. Druk gewoon op de Enter sleutel om ze over te slaan - het zijn meestal gewoon nieuwe kernelfuncties.
Localmodconfig is echter niet perfect! Als u sommige delen van uw computer momenteel niet gebruikt, detecteert deze mogelijk niet alle dingen die worden ondersteund. Als zodanig moet u ze handmatig inschakelen. U kunt deze stap ook helemaal overslaan en in plaats daarvan de volgende opdracht gebruiken. Dit zal de nieuwe kernel compileren met dezelfde opties als degene die je momenteel gebruikt.
Als je dat liever hebt, maar eerder de opdracht localmodconifg hebt gebruikt, doe je dit:
sudo maak schoon.
Dit geeft je een schone build. Je moet deze opdracht ook gebruiken als je eerder een kernel met deze bronnen hebt gecompileerd.
Verdere configuratie
In de kernel-bronmap staat een bestand met de naam .config. Dit is wat GCC zal gebruiken om te kiezen wat ze willen compileren. In plaats van het handmatig te bewerken (niet aanbevolen), gebruikt u in plaats daarvan een paar terminaltools. Dit maakt het selecteren van compileeropties veel gemakkelijker.
Nadat u dit hebt gedaan, kunt u het verder verfijnen:
sudo maak nconfig.
Je ziet een kleurrijk menu verschijnen. Dit is het kernelconfiguratiemenu. Gebruik de pijltoetsen om rond te navigeren. U kunt op de Rechtsaf pijltoets om items uit te breiden met een —> teken ernaast. Navigeer uit deze submenu's door op de te drukken links Pijltjestoets.
U kunt menu-items wisselen die de <> of [] teken ernaast door op de spatiebalk te drukken. Dit doorloopt de verschillende menu-opties. Als je een ziet * of M binnenin zal die specifieke kernelcomponent worden gecompileerd. Het enige verschil tussen beide is dat de M optie wordt geladen wanneer dat nodig is. Dit kan handig zijn als u bijvoorbeeld een stuurprogramma samenstelt dat niet vaak wordt gebruikt.
Druk op als u meer wilt weten over wat een specifieke schakelaar doet F2 overheen. Je ziet een nuttige beschrijving van wat je aan het compileren bent.
Als je klaar bent, druk je op de F9 knop om op te slaan en af te sluiten.
Compileren en installeren van de kernel
Nu u een bestand met een aangepast merk heeft gemaakt, moet u dit doen compileren TAR GZ & TAR BZ2-bestanden compileren en installeren in Ubuntu Linux Lees verder de pit. Typ deze opdracht:
sudo make -j $ (nproc --all)
Jij zal sudo niet nodig als je de kernelbronnen van het web hebt gedownload. Het tweede deel van de opdracht helpt de compilatietijd van de kernel te versnellen door te profiteren van al je CPU-kernen Wat is een processorkern? [MakeUseOf Explains]Elke computer heeft een processor, of het nu gaat om een kleine efficiëntieprofessional of een grote krachtpatser, anders zou hij niet kunnen functioneren. Natuurlijk de processor, ook wel CPU of Central Processing genoemd ... Lees verder . U kunt hiervan afkomen of het nummer wijzigen in iets anders (bijv. -j2), als u uw computer zonder al te veel hik voor andere taken wilt gebruiken. Dit zal het compileren echter ook langzamer maken!
Dit proces kan en zal heel lang duren. Hoe minder je ervoor kiest om te compileren, hoe korter het zal zijn. Toch moet je waarschijnlijk geduld hebben.
Typ daarna deze opdracht in om het compileren van de rest van de kernel te voltooien:
sudo make modules_install.
Om deze kernel daadwerkelijk te gebruiken, moet je deze opdracht invoeren:
sudo make install.
Dit zal de kernel automatisch naar je kopiëren /boot map en genereer de juiste bestanden om het te laten werken.
Van kernel wisselen met GRUB
Als je herstart na het installeren van je nieuwe kernel, uw systeem werkt mogelijk niet! Dit komt meestal door een onjuist gecompileerde kernel (dat wil zeggen, je computer wordt niet goed genoeg ondersteund). Voorbeeld: mijn eigen laptop. Voor het geval dit gebeurt, raad ik aan GRUB bewerken Hoe de GRUB-opstartlader aan te passen met BURG [Ubuntu] Lees verder zodat het terug kan schakelen naar oudere kernels. Gebruik hiervoor deze opdracht:
sudo nano / etc / default / grub.
Plaats een # -teken voor de GRUB_HIDDEN_TIMEOUT en GRUB_HIDDEN_TIMEOUT_QUIET lijnen. Sla daarna deze wijzigingen op door deze opdracht uit te voeren:
sudo grub-mkconfig -o /boot/grub/grub.cfg.
Als je nu je computer opnieuw opstart, kun je overschakelen naar een oudere kernel als je nieuwe niet werkt. Ga gewoon naar de Geavanceerde mogelijkheden menu-item en selecteer de kernel die u wilt opstarten. Als alles goed gaat, gefeliciteerd! Je gebruikt de kernel die je zelf hebt samengesteld.
Ben je geïnteresseerd in het samenstellen van meer kernels? Andere programma's? Vind je het de moeite waard?
Afbeeldingscredits: chombosan / Shutterstock
Austin Luong studeert momenteel voor een BIT en is een fervent Linux-liefhebber die graag bekeert over vrije software. Hij schrijft ook graag sci-fi, maar alleen in de privacy van zijn harde schijf.