Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man kompilerar din egen Linux-kärna

Tillsammans med installationen av Gentoo är kompilering av din egen Linux-kärna en av de saker som anses vara väldigt nördiga och tekniska. Vi har redan tagit upp några anledningar till varför du kanske vill göra detta. Innan vi går igenom stegen, här är en kort översikt över några viktiga begrepp.

Vad är en kärna?

Kort sagt, det är en viktig del av ditt operativsystem, om inte den viktigaste. Ett operativsystem är ansvarigt för att låta dina program fungera genom att ge dem åtkomst till din hårdvara. Det är dock kärnan som faktiskt utför alla dessa jobb.

Linuxkärnan är speciell genom att den kan skräddarsys för att passa den hårdvara du äger. Jämför detta med Windows NT-kärnan, som i allmänhet kommer att vara densamma på alla datorer. För att göra detta måste kärnan gå igenom en process som kallas kompilering.

För mer information, kolla in vår introduktion till kärnor i Linux.

Vad är kompilering?

I allmänhet är program skrivna i ett läsbart format för människor. Detta gör det lättare för människor att skapa programvara. Till exempel är Linux-kärnan huvudsakligen skriven i ett programmeringsspråk som kallas C. Datorer kan dock inte förstå detta. De känner bara igen ett komplicerat språk som heter maskinkod. För att göra det måste textraderna översättas med en speciell mjukvara som kallas a kompilator.

Olika kompilatorer används för att konvertera olika programmeringsspråk. Till exempel, GCC är en kompilator som översätter C-kod till maskinkod (bland annat). Men det är inte allt de gör – kompilatorer kan också optimera den översatta koden för specifika maskiner. Tillsammans med detta kan de också ta bort oönskade funktioner från program samtidigt som de gör det.

Vanligtvis är denna process redan gjord för massor av programvara. Istället laddar folk ner de konverterade binär instruktioner, som fungerar ur kartongen. Till exempel är webbläsaren du kör just nu redan kompilerad. Detta beror på att det kan vara lite komplicerat och tidskrävande att kompilera något. Tänk på det som att översätta en stor bok till ett främmande språk.

Kort sagt, att kompilera kärnan innebär att konvertera dess kod till något som faktiskt kommer att köras på din dator.

Skaffa kärnkällor

Du kan inte göra upp eld utan bränsle. På samma sätt kan du inte kompilera program om du inte har koden för det i första hand. Metoden är i allmänhet densamma för de flesta Linux-operativsystem med några få undantag. Många av dem tillhandahåller sina egna anpassade kärnkällor. Du bör försöka använda det om du kan. Till exempel, om du använder en Debian-baserat operativsystem som Ubuntu, bör du installera källorna med dessa kommandon:

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

Du kan också installera olika versioner av detta paket (t.ex linux-source-4.8.0) om du vill. Du hittar de installerade filerna i /usr/src/ katalog, så navigera dit och se innehållet:

cd /usr/src/
ls

Du kommer att se en fil som slutar med .tar.bz2. Det här är källan du kommer att använda. Extrahera det med detta kommando:

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

Se till att du ersätter filen med rätt namn, naturligtvis. Filen kommer att vara ganska stor, så processen kommer att ta ett tag!

Relaterad  Pixel Launcher: Hur man stänger av vädret i widgeten “Att ögonblick”.

Alternativ metod

Om du vill kan du hämta dina källor från den officiella Linux Kernel-webbplatsen. Jag rekommenderar detta endast om ditt Linux-operativsystem inte tillhandahåller dem. Välj den version du vill ha och ladda ner. Om du går igenom den här vägen bör du ladda ner den till en tom mapp. På så sätt, om du vill kompilera fler kärnor i framtiden, har du en bra mapp att hålla dem organiserade i.

Efter att ha gjort detta, extrahera filen med detta kommando:

tar xJvf linux-4.9.11.tar.xz

Se till att du använder filnamnet som matchar versionen du laddade ner!

Anpassa kärnan

Detta är steget där du kan välja vilka delar av kärnan du vill bli av med. Till exempel levereras kärnan med många olika drivrutiner för en mängd olika enheter. Om du inte behöver det stödet kan det ge vissa hastighetsfördelar att bli av med dem, tillsammans med en mindre kärna.

Förutsättningar

Innan du fortsätter måste du installera några program som låter dig anpassa och kompilera den.

På Debian-baserade system behöver du bygga väsentligt paket, bland annat:

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

De libncurses5-dev paketet kommer att göra det lättare att konfigurera kärnan, så se till att installera den. Andra Linux-operativsystem kommer att ha ett liknande program, men det kan vara under ett annat namn. Till exempel, om du använder Fedora, kallas det ncurses.

Om det inte redan är installerat behöver du också GNU Compiler Collection (GCC). Detta är verktyget som ansvarar för att översätta den råa källkoden till något som är begripligt för datorer. Det vill säga sammanställa.

Efter att ha installerat dessa program, öppna upp din terminal så att du är inuti den extraherade Linux-källmappen. Till exempel, om du använde linux-källa metod skulle du göra så här:

cd /usr/src/linux-source-4.4.0

Kärnkonfigurationsfil

Innan du kompilerar kärnan måste du berätta för GCC hur du vill att det ska göras. Du gör detta med hjälp av ett kommandoradsverktyg som heter göra. Skriv in detta kommando:

sudo make localmodconfig

Detta skapar en fil som heter .config, som talar om för GCC vad som ska kompileras från kärnkällorna. De gör localmodconfig kommandot upptäcker kärnkomponenter som körs för närvarande och markerar dem för kompilering. Om kärnan finns i en mapp du äger, kan du kommer inte att behöva sudo för att det ska fungera.

Relaterad  Hur du justerar din iPhones skurhastighet för video och ljud

Du kan stöta på några meddelanden som det nedan. Tryck bara på Stiga på för att hoppa över dem — de är vanligtvis bara nya kärnfunktioner.

Localmodconfig är dock inte perfekt! Om du för närvarande inte använder vissa delar av din dator kanske den inte upptäcker alla saker som den stöder. Som sådan måste du aktivera dem manuellt. Alternativt kan du hoppa över detta steg helt och använda nästa kommando istället. Detta kommer att kompilera den nya kärnan med samma alternativ som den du använder för närvarande.

Om du föredrar det, men använde kommandot localmodconifg tidigare, gör så här:

sudo make clean

Detta kommer att ge dig en ren konstruktion. Du bör också använda det här kommandot om du har kompilerat en kärna med dessa källor tidigare.

Ytterligare konfiguration

Inuti kärnans källmapp finns en fil som heter .config. Detta är vad GCC kommer att använda för att välja vad som ska kompileras. Istället för att redigera den manuellt (rekommenderas inte), använder du istället några terminalverktyg. Detta kommer att göra valet av kompileringsalternativ mycket lättare.

Efter att ha gjort detta, finjustera det ytterligare:

sudo make nconfig

Du kommer att se en färgglad meny som popup upp. Detta är kärnans konfigurationsmeny. För att navigera runt, använd piltangenterna. Du kan trycka på höger piltangent för att utöka poster med en —> skylt bredvid dem. Navigera ut från dessa undermenyer genom att trycka på vänster piltangent.

Du kan växla menyposter som har eller [] tecken bredvid dem genom att trycka på mellanslagstangenten. Detta kommer att gå igenom de olika menyalternativen. Om du ser en * eller M inuti kommer den specifika kärnkomponenten att kompileras. Den enda skillnaden mellan dem är att M alternativet laddas när det behövs. Detta kan vara användbart om du till exempel kompilerar en drivrutin som inte kommer att användas ofta.

Om du vill veta mer om vad en specifik switch gör, tryck på F2 över det. Du kommer att se en användbar beskrivning av vad du sammanställer.

När du är klar trycker du på F9 knappen för att spara och avsluta.

Kompilera och installera kärnan

Nu när du har skapat en anpassad fil måste du kompilera kärnan. Skriv in detta kommando:

sudo make -j$(nproc --all)

Du kommer behöver inte sudo om du laddade ner kärnkällorna från webben. Den andra delen av kommandot hjälper till att påskynda kärnans kompileringstid genom att dra fördel av alla dina CPU-kärnor. Du kan bli av med detta eller ändra numret till något annat (t.ex -j2), om du vill använda din dator för andra uppgifter utan alltför många hicka. Detta kommer dock också att göra kompileringen långsammare!

Relaterad  Hur man hanterar kluriga reflekterande ytor och skapar fantastiska produktbilder

Denna process kan och kommer att ta mycket lång tid. Ju mindre du väljer att kompilera, desto kortare blir det. Trots det måste du förmodligen ha tålamod.

Efteråt, skriv in det här kommandot för att avsluta kompileringen av resten av kärnan:

sudo make modules_install

För att faktiskt använda den här kärnan måste du ange detta kommando:

sudo make install

Detta kommer automatiskt att kopiera kärnan till din /känga mapp och generera lämpliga filer för att få det att fungera.

Byta kärnor med GRUB

Om du startar om efter att du har installerat din nya kärna, ditt system kanske inte fungerar! Detta beror vanligtvis på en felaktigt kompilerad kärna (det vill säga inte stöder din dator tillräckligt bra). Exempelvis min egen bärbara dator. Om detta skulle hända rekommenderar jag att du redigerar GRUB så att den kan byta tillbaka till äldre kärnor. För att göra detta, använd det här kommandot:

sudo nano /etc/default/grub

Placera ett #-tecken framför GRUB_HIDDEN_TIMEOUT och GRUB_HIDDEN_TIMEOUT_QUIET rader. Efteråt, spara dessa ändringar genom att köra detta kommando:

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

Om du nu startar om din dator kommer du att kunna byta till en äldre kärna om din nya inte fungerar. Gå helt enkelt till Avancerade alternativ menyalternativet och välj den kärna du vill starta. Om allt går bra, grattis! Du kommer att använda kärnan du kompilerat själv.

Är du intresserad av att kompilera fler kärnor? Andra program? Tycker du att det är värt det?

Bildkrediter: chombosan/Shutterstock

Om författaren

Austin Luong (27 publicerade artiklar)

Austin Luong, som för närvarande studerar för en BIT, är en ivrig Linux-entusiast som älskar att proselitera om free programvara. Han gillar också att skriva sci-fi, men bara i avskildhet på sin hårddisk.

Mer från Austin Luong

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera

Table of Contents