Hvordan kompilere din egen Linux-kjerne

Hvordan kompilere din egen Linux-kjerne / Linux

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 programmert språk som kalles C. Men datamaskiner kan ikke forstå dette. De anerkjenner bare et komplisert språk som kalles maskin kode. 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 kompilatoren.

Ulike kompilatorer brukes til å konvertere forskjellige programmeringsspråk. For eksempel, GCC er 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 den konverterte binær instruksjoner, som trer ut av esken. 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. For eksempel, hvis du bruker en Debian-basert operativsystem for eksempel Ubuntu, bør du installere kildene ved å bruke disse kommandoene:

sudo apt-get oppdatering sudo apt-get install linux-source 

Du kan også installere forskjellige versjoner av denne pakken (f.eks. Linux-source-4.8.0) hvis du vil. Du finner de installerte filene i / Usr / src / katalog, så navigere der, 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.

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

tar xJvf linux-4.9.11.tar.xz

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 build-essential pakke, blant annet:

sudo apt-get install bygge-essensielle gcc libncurses5-dev libssl-dev 

De libncurses5-dev pakken vil gjøre 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, åpne opp terminalen din slik at du er innsiden den hentede Linux kilde mappen. For eksempel, hvis du brukte Linux-source metode, 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 å bruke et kommandolinjeverktøy som kalles gjøre. Skriv inn denne kommandoen:

sudo gjør localmodconfig 

Dette skaper en fil som heter .config, som forteller GCC hva du skal kompilere fra kjernekildene. De gjør localmodconfig kommando oppdager kjørerkomponenter som kjører for øyeblikket, og markerer dem for kompilering. Hvis kjernen er inne i en mappe du eier, du trenger ikke sudo for det å fungere.

Du kan komme over noen meldinger som den nedenfor. Bare trykk på Tast inn nøkkelen til å hoppe over dem - de er vanligvis bare nye kjernekunksjoner.

Localmodconfig er imidlertid ikke perfekt! Hvis du for øyeblikket ikke bruker noen deler av datamaskinen din, kan det hende det ikke oppdager 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 gjør ren 

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 lage nconfig 

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

Du kan bytte menyoppføringer som har <> eller [] Tegn 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 det. Du får se en nyttig beskrivelse av hva du samler.

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

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 vil 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 gjør modules_install 

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

sudo gjør installasjon 

Dette vil automatisk kopiere kjernen til din /støvel mappe og generere de riktige filene for å få det til å fungere.

Bytte kjerner ved hjelp av GRUB

Hvis du starter på nytt etter at du har installert den nye kjernen, systemet ditt fungerer kanskje ikke! 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 

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

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

Nå, hvis du starter datamaskinen på nytt, kan du bytte til en eldre kjerne hvis den nye ikke fungerer. Bare gå til Avanserte instillinger menyelement 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

Utforsk mer om: Linux.