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

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

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 programmerat språk som heter C. Datorer kan dock inte förstå detta. De känner bara till ett komplicerat språk som heter 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. 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 ä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 den konverterade binär instruktioner, som fungerar ur lådan. 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 en Debian-baserat operativsystem till exempel Ubuntu, bör du installera källorna med följande kommandon:

sudo apt-få uppdatering 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 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.

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

tjära xJvf linux-4.9.11.tar.xz

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å Debian-baserade system behöver du build-essential paket, bland annat:

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

De libncurses5-dev paketet 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 heter 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, öppna din terminal så att du är inuti den extraherade Linux-källmappen. Om du till exempel använde linux-source metod 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 det här med ett kommandoradsverktyg som heter göra. Skriv in det här kommandot:

sudo gör localmodconfig 

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

Du kan komma över några meddelanden som den nedan. Tryck bara på Stiga på nyckeln för att hoppa över dem - de är vanligtvis bara nya kärnfunktioner.

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 gör rent 

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 gör 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öger piltangent för att expandera poster med a -> tecken bredvid dem. Navigera ur 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 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, trycker du på F2 över den. Du får se en användbar beskrivning av vad du sammanställer.

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

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 kommer 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 alltför många hicka. Detta kommer dock 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 gör modules_install 

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

sudo gör installationen 

Detta kopierar automatiskt kärnan till din /känga mapp och skapa 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, ditt system kanske inte fungerar! 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 

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

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

Nu om du startar om datorn, kan du växla till en äldre kärna om din nya inte fungerar. Helt enkelt gå till Avancerade alternativ menyalternativ 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

Utforska mer om: Linux.