Hvordan kompilere din egen Linux-kjerne

Å samle din egen Linux-kjernen er en av de geeky, tekniske tingene, ikke sant? Vi har allerede dekket noen grunner til hvorfor du kanskje vil gjøre dette - nå er det på tide å prøve det selv!

Å samle din egen Linux-kjernen er en av de geeky, tekniske tingene, ikke sant?  Vi har allerede dekket noen grunner til hvorfor du kanskje vil gjøre dette - nå er det på tide å prøve det selv!
Annonse

Sammen med å installere Gentoo Gentoo: En Linux-distribusjon hvor du kompilerer din egen optimaliserte programvare Gentoo: En Linux-distribusjon hvor du kompilerer din egen optimaliserte programvare Det rene antallet forskjellige måter Linux kan kjøres på er utrolig, da det er mange valgmuligheter for gå rundt. Selv om det er mange distribusjoner som stole på enten .deb ... Les mer, kompilere din egen Linux-kjernen er en av de tingene som anses veldig geeky og teknisk. Vi har allerede dekket noen grunner 3 Grunner til at du kanskje vil kompilere din egen kjerneløsning [Linux] 3 grunner til at du kanskje vil kompilere din egen kjerne [Linux] Linux-systemer er så latterlig fleksible og konfigurerbare, det er rett og slett gal. En stor del av hvorfor Linux er så fleksibel, er på grunn av sin modulære struktur. Hver enkelt systemkomponent og program er delt opp ... Les mer hvorfor du kanskje vil gjøre dette. Før vi går gjennom trinnene, er det en kort oversikt over noen viktige konsepter.

Hva er en kjerne?

Kort sagt, det er en viktig del av operativsystemet ditt, om ikke det viktigste. Et operativsystem er ansvarlig for at programmene dine fungerer, ved å gi dem tilgang til maskinvaren din. Det er imidlertid kjernen Linux-kjernen: En forklaring i lekmannens vilkår Linux-kjernen: En forklaring i lekmanns vilkår Det er bare en de facto ting som Linux-distribusjoner har til felles: Linux-kjernen. Men mens det ofte snakkes om, vet mange ikke akkurat nøyaktig hva det gjør. Les mer som faktisk bærer alle disse jobbene ut.

Linux-kjernen er spesiell fordi den kan skreddersys for å passe til maskinvaren du eier. Kontrast dette med Windows NT-kjernen, som vanligvis vil være det samme på alle datamaskiner. For å gjøre dette må kjernen gå gjennom en prosess som kalles kompilering.

Hva er kompilering?

Generelt skrives programmene i et menneskelig lesbart format. Dette gjør det lettere for folk å lage programvare. Linux-kjernen er for eksempel skrevet hovedsakelig i et programmeringsspråk kalt C. Men datamaskiner kan ikke forstå dette. De anerkjenner bare et komplisert språk som kalles maskinkode . For å gjøre det, må tekstlinjene oversettes. Hvordan kompilere og installere TAR GZ & TAR BZ2-filer i Ubuntu Linux. Hvordan kompilere og installere TAR GZ & TAR BZ2-filer i Ubuntu Linux. Les mer ved hjelp av et spesielt program som heter a kompilator .

Ulike kompilatorer brukes til å konvertere forskjellige programmeringsspråk. For eksempel er GCC en kompilator som oversetter C-kode til maskinkode (blant annet). Men det er ikke alt de gjør - kompilatorer kan også optimalisere den oversatte koden for bestemte maskiner. Sammen med dette kan de også fjerne uønskede funksjoner fra programmer mens de gjør det.

Vanligvis er denne prosessen allerede gjort for mye programvare. I stedet laster folk ned de konverterte binære instruksjonene, som fungerer ut av boksen. For eksempel bruker nettleseren din den beste nettleseren til Linux i 2016? Bruker du den beste nettleseren til Linux i 2016? Å bruke "feil" nettleseren kan føre til mye unødvendig hodepine, bortkastet produktivitet og til og med tapte data. Så hvilken nettleser er best for Linux-datamaskinen din? La oss finne det ut. Les mer du kjører akkurat nå, er allerede kompilert. Dette skyldes at kompilering av noe kan være litt komplisert og tidkrevende. Tenk på det som å oversette en stor bok til et fremmed språk.

Kort sagt, kompilering av kjernen betyr å konvertere koden til noe som faktisk vil kjøre på datamaskinen din .

Å skaffe kjernekilder

Du kan ikke lage brann uten drivstoff. På samme måte kan du ikke kompilere programmer hvis du ikke har koden for den i utgangspunktet. Metoden er generelt den samme for de fleste Linux-operativsystemer med noen få unntak. Mange av dem tilbyr sine egne tilpassede kjernekilder. Du bør prøve og bruke det hvis du kan. Hvis du for eksempel bruker et Debian-basert operativsystem som Ubuntu, bør du installere kildene ved hjelp av disse kommandoene:

sudo apt-get update sudo apt-get install linux-source 

Slik oppretter du din egen Linux Kernel Debian Linux Source

Du kan også installere forskjellige versjoner av denne pakken (f.eks. Linux-kilde-4.8.0 ) hvis du vil. Du finner de installerte filene i / usr / src / katalogen, så naviger og se innholdet:

 cd /usr/src/ ls 

Du ser en fil som slutter med .tar.bz2 . Dette er kilden du skal bruke. Trekk ut det med denne kommandoen:

 sudo tar xjvf linux-source-4.4.0.tar.bz2 

Pass på at du erstatter filen med riktig navn, selvfølgelig. Filen blir ganske stor, så prosessen tar litt tid!

Alternativ metode

Hvis du vil, kan du hente kildene dine fra den offisielle Linux Kernel-nettsiden. Jeg anbefaler dette bare hvis Linux-operativsystemet ikke gir dem. Velg den versjonen du vil ha og last ned. Hvis du går gjennom denne ruten, bør du laste den ned til en tom mappe. På denne måten, hvis du vil kompilere flere kjerne i fremtiden, har du en fin mappe for å holde dem organisert i.

Hvordan kompilere din egen Linux Kernel Vanilje Kernel Kilder

Etter å ha gjort dette, trekk filen ut med denne kommandoen:

 tar xJvf linux-4.9.11.tar.xz 

Slik oppretter du din egen Linux Kernel Vanilla Linux Source

Pass på at du bruker filnavnet som samsvarer med versjonen du lastet ned!

Tilpass kjernen

Dette er trinnet der du kan velge hvilke deler av kjernen du vil bli kvitt. For eksempel sendes kjernen med mange forskjellige drivere for en rekke enheter. Hvis du ikke trenger den støtten, kan du kvitte deg med noen hastighetsfordeler, sammen med en mindre kjerne.

Forutsetninger

Før du fortsetter, må du installere noen programmer som lar deg tilpasse og kompilere det.

På Debian-baserte systemer trenger du den byggevennlige pakken, blant annet:

 sudo apt-get install build-essential gcc libncurses5-dev libssl-dev 

Pakken libncurses5-dev gjør det enklere å konfigurere kjernen, så sørg for å installere den. Andre Linux-operativsystemer vil ha et lignende program, men dette kan være under et annet navn. For eksempel, hvis du bruker Fedora 5 grunner til å bruke ren Open Source Distro, Fedora 5 grunner til å bruke ren Open Source Distro, er Fedora Fedora ikke så godt kjent som Ubuntu, og har et rykte for å være vanskelig å bruke. Men hvis dette er sant, hvorfor fortsetter så mange mennesker å bruke Fedora? Les mer, det kalles ncurses .

Hvis den ikke allerede er installert, trenger du også GNU Compiler Collection (GCC). Dette er verktøyet som er ansvarlig for å oversette den rå kildekoden til noe forståelig for datamaskiner. Det vil si å kompilere.

Etter å ha installert disse programmene, åpner du terminalen din slik at du er inne i den hentede Linux-kildemappen. Hvis du for eksempel brukte Linux-kildemetoden, ville du gjøre dette:

 cd /usr/src/linux-source-4.4.0 

Kernelkonfigurasjonsfil

Før du kompilerer kjernen, må du fortelle GCC hvordan du vil ha det gjort. Du gjør dette ved hjelp av et kommandolinjeverktøy kalt make . Skriv inn denne kommandoen:

 sudo make localmodconfig 

Dette lager en fil som heter .config, som forteller GCC hva du skal kompilere fra kjernekildene. Kommandoen localmodconfig gjør det mulig å kjøre kjernekomponenter, og markerer dem for kompilering. Hvis kjernen er inne i en mappe du eier, trenger du ikke sudo for at den skal fungere.

Du kan komme over noen meldinger som den nedenfor. Bare trykk Enter- tasten for å hoppe over dem - de er vanligvis bare nye kjernefunksjoner.

Slik oppretter du din egen Linux-kjerne Lag Localmodconfig Ny

Localmodconfig er imidlertid ikke perfekt! Hvis du for øyeblikket ikke bruker noen deler av datamaskinen din, kan det hende det ikke oppdages alle de tingene det støtter. Som sådan må du aktivere dem manuelt. Alternativt kan du hoppe over dette trinnet helt og bruke neste kommando i stedet. Dette vil kompilere den nye kjernen med de samme alternativene som den du bruker for øyeblikket.

Hvis du foretrekker det, men bruk kommandoen localmodconifg før, gjør dette:

 sudo make clean 

Dette vil gi deg en ren bygg. Du bør også bruke denne kommandoen hvis du har samlet en kjerne med disse kildene før.

Videre konfigurasjon

I kjernekildemappen er det en fil som heter .config . Dette er hva GCC vil bruke til å velge hva du skal kompilere. I stedet for å redigere det manuelt (ikke anbefalt), vil du i stedet bruke noen få terminalverktøy. Dette vil gjøre det enklere å velge kompilere alternativer.

Etter å ha gjort dette, finjustere det videre:

 sudo make nconfig 

Du får se en fargerik meny dukker opp. Dette er kjernekonfigurasjonsmenyen. For å navigere rundt, bruk piltastene. Du kan trykke på høyre piltast for å utvide oppføringer med et -> tegn ved siden av dem. Naviger ut av disse undermenyene ved å trykke på venstre piltast.

Slik oppretter du din egen Linux-kjerne Lag Nconfig

Du kan bytte menyoppføringer som har eller [] -skiltet ved siden av dem ved å trykke på mellomromstasten. Dette vil sykle gjennom de forskjellige menyalternativene. Hvis du ser en * eller M inne, vil den spesifikke kjernekomponenten bli kompilert. Den eneste forskjellen mellom dem er at M- alternativet vil bli lastet når det trengs. Dette kan være nyttig hvis du for eksempel samler en driver, som ikke blir brukt ofte.

Hvis du vil vite mer om hva en bestemt bryter gjør, trykker du på F2 over den. Du får se en nyttig beskrivelse av hva du samler.

Slik oppretter du din egen Linux-kjerne Lag Nconfig F2

Når du er ferdig, trykker du på F9- knappen for å lagre og avslutte.

Slik oppretter du din egen Linux-kjerne Lag Nconfig Save

Kompilere og installere kjernen

Nå som du har opprettet en egendefinert lage fil, må du kompilere Hvordan kompilere og installere TAR GZ & TAR BZ2-filer i Ubuntu Linux. Hvordan kompilere og installere TAR GZ & TAR BZ2-filer i Ubuntu Linux Les mer kjernen. Skriv inn denne kommandoen:

 sudo make -j$(nproc --all) 

Du trenger ikke sudo hvis du lastet ned kjernekildene fra nettet. Den andre delen av kommandoen bidrar til raskere kjernekompileringstid, ved å utnytte alle CPU-kjernene. Hva er en prosessorkjerne? [MakeUseOf Forklarer] Hva er en prosessorkjerne? [MakeUseOf Forklarer] Hver datamaskin har en prosessor, enten det er et lite effektivitetspro eller et stort ytelsesaggregat, ellers ville det ikke kunne fungere. Selvfølgelig, prosessoren, også kalt CPU eller Central Processing ... Les mer. Du kan bli kvitt dette eller endre nummeret til noe annet (f.eks. -j2 ), hvis du vil bruke datamaskinen til andre oppgaver uten for mange hikke. Dette vil imidlertid også gjøre samlingen langsommere!

Denne prosessen kan og vil ta svært lang tid. Jo mindre du valgte å kompilere, jo kortere blir det. Likevel må du sannsynligvis være tålmodig.

Etterpå skriver du inn denne kommandoen for å fullføre kompilering av resten av kjernen:

 sudo make modules_install 

For å faktisk bruke denne kjernen, må du skrive inn denne kommandoen:

 sudo make install 

Dette kopierer automatisk kjernen til din / boot- mappen og genererer de riktige filene for å få det til å fungere.

Bytte kjerner ved hjelp av GRUB

Hvis du starter opp etter at du har installert den nye kjernen, kan det hende at systemet ditt ikke fungerer ! Dette skyldes vanligvis en feilkompilert kjernen (det vil si ikke støtter datamaskinen din nok). Case in point, min egen bærbare. Bare i tilfelle dette skjer, anbefaler jeg at du redigerer GRUB Slik tilpasser du GRUB Boot Loader Bruke BURG [Ubuntu] Slik tilpasser du GRUB Boot Loader Bruke BURG [Ubuntu] Les mer slik at den kan bytte tilbake til eldre kjerne. For å gjøre dette, bruk denne kommandoen:

 sudo nano /etc/default/grub 

Slik oppretter du din egen Linux Kernel Ubuntu GRUB

Plasser et # tegn foran GRUB_HIDDEN_TIMEOUT og GRUB_HIDDEN_TIMEOUT_QUIET linjene. Deretter lagrer du disse endringene ved å kjøre denne kommandoen:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Slik oppretter du din egen Linux Kernel GRUB-meny

Nå, hvis du starter datamaskinen på nytt, kan du bytte til en eldre kjerne hvis den nye ikke fungerer. Bare gå til menyelementet Avanserte alternativer og velg kjernen du vil starte opp. Hvis alt fungerer fint, gratulerer! Du bruker kjernen du selv har laget.

Er du interessert i å samle flere kjerne? Andre programmer? Finner du det verdt?

Image Credits: chombosan / Shutterstock

In this article