Så här sammanställer du din egen Linux-kärna

Att kompilera din egen Linux-kärna är en av de geekiga, tekniska sakerna, eller hur? Vi har redan täckt några anledningar till varför du kanske vill göra det här - nu är det dags att prova själv!

Att kompilera din egen Linux-kärna är en av de geekiga, tekniska sakerna, eller hur?  Vi har redan täckt några anledningar till varför du kanske vill göra det här - nu är det dags att prova själv!
Annons

Tillsammans med att du installerar Gentoo Gentoo: En Linuxdistribution där du kompilerar din egen optimerade programvara Gentoo: En Linuxdistribution där du sammanställer din egen optimerade programvara Det stora antalet olika sätt på vilka Linux kan köras är häpnadsväckande, eftersom det finns många alternativ att gå runt. Medan det finns gott om distributioner som är beroende av antingen .deb ... Läs mer, att kompilera din egen Linuxkärna är en av de saker som anses vara mycket geekiga och tekniska. 3 skäl till att du kanske vill kompilera din egen kärna [Linux] 3 skäl till att du kanske vill kompilera din egen kärna [Linux] Linux-system är så löjligt flexibla och konfigurerbara, det är helt galet. En stor del av varför Linux är så flexibel beror på dess modulära struktur. Varje enskild systemkomponent och program delas upp ... Läs mer varför du kanske vill göra det här. 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 det viktigaste. Ett operativsystem är ansvarigt för att låta dina program fungera, genom att låta dem komma åt din hårdvara. Det är dock kärnan Linux-kärnan: En förklaring i Laymans villkor Linux-kärnan: En förklaring i Laymans villkor Det finns bara en de facto sak som Linux-distributioner har gemensamt: Linux-kärnan. Men medan det ofta talas om, vet många inte riktigt exakt vad det gör. Läs mer som faktiskt bär alla dessa jobb ut.

Linuxkärnan är speciell eftersom den kan skräddarsys för att passa den maskinvara du äger. Kontrast detta med Windows NT-kärnan, vilket i allmänhet är detsamma på alla datorer. För att kunna göra detta måste kärnan gå igenom en process som kallas sammanställning.

Vad är kompilering?

Generellt skrivs program i ett mänskligt läsbart format. Det gör det lättare för människor att skapa programvara. Till exempel skrivs Linux-kärnan huvudsakligen i ett programmeringsspråk som heter C. Datorer kan dock inte förstå detta. De känner bara till ett komplicerat språk som kallas maskinkod . För att göra det måste textrader översättas Hur man sammanställer och installerar TAR GZ & TAR BZ2-filer i Ubuntu Linux Hur man kompilerar och installerar TAR GZ & TAR BZ2-filer i Ubuntu Linux Läs mer med hjälp av en speciell mjukvara som heter a kompilator .

Olika kompilatorer används för att konvertera olika programmeringsspråk. GCC är till exempel 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 även ta bort oönskade funktioner från program samtidigt som de gör det.

Vanligtvis är denna process redan gjord för mycket mjukvara. Istället laddar folk ner de konverterade binära instruktionerna, som fungerar ut ur rutan. Till exempel använder webbläsaren dig den bästa webbläsaren för Linux år 2016? Användar du den bästa webbläsaren för Linux år 2016? Att använda den "felaktiga" webbläsaren kan leda till mycket onödigt huvudvärk, bortkastad produktivitet och till och med förlorade data. Så vilken webbläsare är bäst för din Linux-dator? Låt oss ta reda på. Läs mer du kör nu är redan sammanställd. Detta beror på att kompilering av något kan vara lite komplicerat och tidskrävande. Tänk på det som att översätta en stor bok till ett främmande språk.

Kort sagt innebär kompilering av kärnan att konvertera sin kod till något som faktiskt kommer att köras på din dator .

Erhålla kärnkällor

Du kan inte göra eld utan bränsle. På samma sätt kan du inte kompilera program om du inte har koden för den 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 levererar egna egna kärnkällor. Du borde försöka använda det om du kan. Om du till exempel använder ett Debian-baserat operativsystem som Ubuntu, bör du installera källorna med följande kommandon:

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

Så här sammanställer du din egen Linux kärnan Debian 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 / katalogen, så navigera dit och visa innehållet:

 cd /usr/src/ ls 

Du får se en fil som slutar med .tar.bz2 . Det här är källan du ska använda. Extrahera det med det här kommandot:

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

Se till att du självklart ersätter filen med rätt namn. Filen blir ganska stor, så processen tar lite tid!

Alternativ metod

Om du vill kan du hämta dina källor från den officiella Linux Kernel-webbplatsen. Jag rekommenderar endast detta 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å det här sättet, om du vill sammanställa fler kärnor i framtiden, har du en bra mapp för att hålla dem organiserade i.

Så här sammanställer du din egen Linux Kernel Vaniljkärnkällor

Efter att ha gjort det här, extrahera filen med det här kommandot:

 tar xJvf linux-4.9.11.tar.xz 

Så här sammanställer du din egen Linux Kernel Vanilla Linux Source

Se till att du använder filnamnet som matchar den version du hämtade!

Anpassa kärnan

Det här är steget där du kan välja vilka delar av kärnan du vill bli av med. Kärnan skickas till exempel med många olika drivrutiner för olika enheter. Om du inte behöver det stödet kan du få lite snabba fördelar 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 det.

På Debians baserade system behöver du bland annat det byggande viktiga paketet:

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

Paketet libncurses5-dev gör det enklare 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. Om du till exempel använder Fedora 5 skäl att använda ren Open Source Distro, Fedora 5 skäl att använda ren Open Source Distro, är Fedora Fedora inte så känt som Ubuntu, och har rykte för att vara svår att använda. Men om det är sant, varför fortsätter så många människor att använda Fedora? Läs mer, det kallas ncurses .

Om det inte redan är installerat behöver du också GNU Compiler Collection (GCC). Det här ä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 kompilering.

Efter att ha installerat dessa program öppnar du din terminal så att du befinner dig i den extraherade Linux-källkatalogen. Om du till exempel använde linux-source- metoden skulle du göra det här:

 cd /usr/src/linux-source-4.4.0 

Kärnkonfigurationsfil

Innan du sammanställer kärnan måste du berätta för GCC hur du vill göra det. Du gör detta med ett kommandoradsverktyg som heter make . Skriv in det här kommandot:

 sudo make localmodconfig 

Detta skapar en fil som heter .config, som berättar GCC vad som ska sammanställas från kärnkällorna. Kommandot Localmodconfig gör att kärnkomponenter för närvarande körs och markerar dem för sammanställning. Om kärnan är inne i en mapp du äger, behöver du inte sudo för att den ska fungera.

Du kan komma över några meddelanden som den nedan. Bara tryck på Enter- tangenten för att hoppa över dem - de är vanligtvis bara nya kärnfunktioner.

Så här sammanställer du din egen Linux-kärna Gör Localmodconfig New

Localmodconfig är dock inte perfekt! Om du inte använder vissa delar av din dator, kanske den inte upptäcker alla de saker som den stöder. Som sådan måste du aktivera dem manuellt. Alternativt kan du hoppa över det här steget helt och använda kommandot istället. Detta kommer att kompilera den nya kärnan med samma alternativ som den du använder idag.

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

 sudo make clean 

Detta ger dig en ren byggnad. Du bör också använda det här kommandot om du har sammanställt en kärna med dessa källor innan.

Ytterligare konfiguration

Inne i kärnkällans mapp finns en fil som heter .config . Detta är vad GCC ska använda för att välja vad som ska sammanställas. Istället för att redigera det manuellt (rekommenderas inte) använder du istället några terminalverktyg. Detta gör det mycket enklare att välja kompilera alternativ.

Efter att ha gjort detta, finjustera det vidare:

 sudo make nconfig 

Du får se en färgstark meny pop up. Detta är kärnans konfigurationsmeny. För att navigera runt, använd piltangenterna. Du kan trycka på högerpilknappen för att expandera poster med ett -> tecken bredvid dem. Navigera ur dessa undermenyer genom att trycka på vänster pilknapp.

Så här sammanställer du din egen Linux-kärna Gör Nconfig

Du kan växla menyposter som har eller [] tecken bredvid dem genom att trycka på mellanslagstangenten. Detta går 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 sammanställer en drivrutin till exempel, som inte kommer att användas ofta.

Om du vill veta mer om vad en specifik växel gör, tryck F2 över den. Du får se en användbar beskrivning av vad du sammanställer.

Så här sammanställer du din egen Linux-kärna Gör Nconfig F2

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

Så här sammanställer du din egen Linux-kärna Gör Nconfig Save

Kompilering och installation av kärnan

Nu när du har skapat en anpassad makefil måste du kompilera Hur man sammanställer och installerar TAR GZ & TAR BZ2-filer i Ubuntu Linux. Hur man kompilerar och installerar TAR GZ & TAR BZ2-filer i Ubuntu Linux Läs mer kärnan. Skriv in det här kommandot:

 sudo make -j$(nproc --all) 

Du behöver inte sudo om du hämtade kärnkällorna från webben. Den andra delen av kommandot hjälper till att påskynda kärnkompileringstiden, genom att utnyttja alla CPU-kärnor Vad är en processorkärna? [MakeUseOf Förklarar] Vad är en processorkärna? [MakeUseOf Explains] Varje dator har en processor, oavsett om det är ett litet effektivitetspro eller ett stort prestanda kraftcenter, annars skulle det inte kunna fungera. Naturligtvis, processorn, även kallad CPU eller Central Processing ... Läs mer. Du kan bli av med det här eller ändra numret till något annat (t.ex. -j2 ), om du vill använda din dator för andra uppgifter utan för många hickningar. Men detta kommer också att göra sammanställningen långsammare!

Denna process kan och kommer att ta mycket lång tid. Ju mindre du valde att kompilera desto kortare blir det. Trots det måste du vara tålmodig.

Därefter skriver du in det här kommandot för att slutföra kompilering av resten av kärnan:

 sudo make modules_install 

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

 sudo make install 

Detta kopierar automatiskt kärnan till din / boot- mappen och genererar lämpliga filer för att få det att fungera.

Växla kärnor med GRUB

Om du startar om efter installationen av din nya kärna kan ditt system inte fungera ! Detta beror vanligtvis på en felaktigt sammanställd kärna (det vill säga, inte stödjer din dator tillräckligt bra). Fall i sak, min egen bärbara dator. Om det här händer, rekommenderar jag att du redigerar GRUB Hur man anpassar GRUB Boot Loader med BURG [Ubuntu] Så här anpassar du GRUB Boot Loader med BURG [Ubuntu] Läs mer så att den kan växla tillbaka till äldre kärnor. För att göra detta, använd det här kommandot:

 sudo nano /etc/default/grub 

Så här sammanställer du din egen Linux Kernel Ubuntu GRUB

Placera ett # tecken framför GRUB_HIDDEN_TIMEOUT och GRUB_HIDDEN_TIMEOUT_QUIET linjerna. Spara sedan dessa ändringar genom att köra det här kommandot:

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

Så här sammanställer du din egen Linux Kernel GRUB-meny

Nu om du startar om datorn, kan du växla till en äldre kärna om din nya inte fungerar. Gå helt enkelt till menyn Alternativ och välj den kärna du vill starta. Om allt fungerar bra, grattis! Du använder den kärna du själv sammanställde.

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

Bildkrediter: chombosan / Shutterstock

In this article