Sådan kompilerer du din egen Linux Kernel

At kompilere din egen Linux-kerne er en af ​​de geeky, tekniske ting, ikke? Vi har allerede dækket et par grunde til, hvorfor du måske vil gøre det - nu er det tid til at prøve det selv!

At kompilere din egen Linux-kerne er en af ​​de geeky, tekniske ting, ikke?  Vi har allerede dækket et par grunde til, hvorfor du måske vil gøre det - nu er det tid til at prøve det selv!
Reklame

Sammen med at installere Gentoo Gentoo: En Linux-distribution, hvor du kompilerer din egen optimerede software Gentoo: En Linux-distribution, hvor du kompilerer din egen optimerede software Det rene antal forskellige måder, hvorpå Linux kan køres, er forbløffende, da der er mange muligheder for at gå rundt. Selvom der er masser af distributioner, der stole på enten .deb ... Læs mere, kompilering af din egen Linux-kerne er en af ​​de ting, der anses for meget geeky og tekniske. Vi har allerede dækket nogle grunde. 3 Grunde til, at du måske vil kompilere din egen kerne [Linux] 3 Grunde til, at du måske vil kompilere din egen kerne [Linux] Linux-systemer er så latterligt fleksible og konfigurerbare, det er ligefrem skørt. En stor del af hvorfor Linux er så fleksibel er på grund af sin modulære struktur. Hver enkelt systemkomponent og program er opdelt ... Læs mere hvorfor du måske vil gøre dette. Før vi går gennem trinene, er der en kort oversigt over nogle vigtige begreber.

Hvad er en kerne?

Kort sagt er det en vigtig del af dit operativsystem, om ikke det vigtigste. Et operativsystem er ansvarlig for at lade dine programmer fungere, ved at give dem adgang til din hardware. Det er imidlertid kernen Linux-kernen: En forklaring i Laymans vilkår Linux-kernen: En forklaring i Laymans vilkår Der er kun en de facto ting, som Linux-distributioner har til fælles: Linux-kernen. Men mens det ofte taler om, ved mange mennesker ikke rigtigt, hvad det gør. Læs mere, som rent faktisk bærer alle disse job ud.

Linux-kernen er speciel, fordi den kan skræddersyes til at passe til den hardware, du ejer. Kontrast dette med Windows NT-kernen, som generelt vil være den samme på tværs af hver computer. For at gøre dette skal kernen gennemgå en proces kaldet kompilering.

Hvad er kompilering?

Generelt skrives programmer i et menneskeligt læseligt format. Dette gør det lettere for folk at oprette software. Linuxkernen er for eksempel skrevet primært i et programmeringssprog kaldet C. Men computere kan ikke forstå dette. De genkender kun et kompliceret sprog kaldet maskinkode . For at gøre det, skal tekstlinierne oversættes. Sådan kompileres og installeres TAR GZ & TAR BZ2-filer i Ubuntu Linux Sådan kompileres og installeres TAR GZ & TAR BZ2-filer i Ubuntu Linux Læs mere ved hjælp af et særligt stykke software kaldet a compiler .

Forskellige kompilatorer bruges til at konvertere forskellige programmeringssprog. For eksempel er GCC en compiler, der oversætter C-kode til maskinkode (blandt andre). Men det er ikke alt de gør - kompilatorer kan også optimere den oversatte kode til bestemte maskiner. Sammen med dette kan de også fjerne uønskede funktioner fra programmer, mens de gør det.

Normalt er denne proces allerede lavet for masser af software. I stedet downloader de konverterede binære instruktioner, som fungerer ud af boksen. For eksempel bruger webbrowseren din den bedste webbrowser til Linux i 2016? Bruger du den bedste webbrowser til Linux i 2016? Brug af den "forkerte" browser kan føre til mange unødvendige hovedpine, spildt produktivitet og endda tabte data. Så hvilken browser er bedst til din Linux computer? Lad os finde ud af det. Læs mere du kører lige nu er allerede udarbejdet. Dette skyldes at kompilere noget kan være lidt kompliceret og tidskrævende. Tænk på det som at oversætte en stor bog til et fremmedsprog.

Kort sagt betyder kompilering af kernen at konvertere sin kode til noget, der rent faktisk vil køre på din computer .

Opnåelse af kernekilder

Du kan ikke lave en brand uden brændstof. Ligeledes kan du ikke kompilere programmer, hvis du ikke har koden til det i første omgang. Metoden er generelt den samme for de fleste Linux operativsystemer med nogle få undtagelser. Mange af dem leverer deres egne brugerdefinerede kernekilder. Du bør prøve og bruge det, hvis du kan. Hvis du for eksempel bruger et Debian-baseret operativsystem som Ubuntu, skal du installere kilderne ved hjælp af disse kommandoer:

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

Sådan kompilerer du din egen Linux Kernel Debian Linux Source

Du kan også installere forskellige versioner af denne pakke (f.eks. Linux-source-4.8.0 ), hvis du vil. Du finder de installerede filer i / usr / src / mappen, så navigere der og se indholdet:

 cd /usr/src/ ls 

Du får se en fil, der slutter med .tar.bz2 . Dette er den kilde, du vil bruge. Uddrag det med denne kommando:

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

Sørg for, at du selvfølgelig erstatter filen med det korrekte navn. Filen bliver ret stor, så processen tager lidt tid!

Alternativ metode

Hvis du vil kan du få dine kilder fra den officielle Linux Kernel hjemmeside. Jeg anbefaler kun dette, hvis dit Linux-operativsystem ikke giver dem. Vælg den ønskede version og download den. Hvis du går gennem denne rute, skal du downloade den til en tom mappe. På denne måde, hvis du vil kompilere flere kerne i fremtiden, har du en god mappe, så de kan organiseres i.

Sådan kompilerer du din egen Linux Kernel Vanille Kernel Kilder

Efter at have gjort dette, skal du udpakke filen med denne kommando:

 tar xJvf linux-4.9.11.tar.xz 

Sådan kompilerer du din egen Linux Kernel Vanilla Linux Source

Sørg for at du bruger filnavnet, der matcher den version, du downloadede!

Tilpas kernen

Dette er det trin, hvor du kan vælge hvilke dele af kernen du vil slippe af med. For eksempel skifter kernen med mange forskellige drivere til en række enheder. Hvis du ikke har brug for den støtte, kan du slippe af med dem med nogle hurtige fordele, sammen med en mindre kerne.

Forudsætninger

Før du fortsætter, skal du installere nogle programmer, der gør det muligt at tilpasse og kompilere det.

På Debian-baserede systemer har du brug for den byggeværdige pakke, blandt andre:

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

Pakken libncurses5-dev gør det nemmere at konfigurere kernen, så sørg for at installere den. Andre Linux-operativsystemer vil have et lignende program, men det kan være under et andet navn. For eksempel, hvis du bruger Fedora 5 grunde til at bruge ren Open Source Distro, Fedora 5 grunde til at bruge ren Open Source Distro, er Fedora Fedora ikke så kendt som Ubuntu og har et ry for at være svært at bruge. Men hvis det er sandt, hvorfor fortsætter så mange mennesker med at bruge Fedora? Læs mere, det hedder ncurses .

Hvis den ikke allerede er installeret, skal du også bruge GNU Compiler Collection (GCC). Dette er det værktøj, der er ansvarligt for oversættelsen af ​​den rå kildekode til noget, der er forståeligt for computere. Det vil sige at kompilere.

Når du har installeret disse programmer, skal du åbne din terminal, så du er inde i den uddragne Linux-kildemappe. Hvis du for eksempel brugte linux-source- metoden, ville du gøre det her:

 cd /usr/src/linux-source-4.4.0 

Kernelkonfigurationsfil

Før du kompilerer kernen, skal du fortælle GCC, hvordan du vil have det gjort. Du gør dette ved hjælp af et kommandolinjeværktøj kaldet make . Indtast denne kommando:

 sudo make localmodconfig 

Dette skaber en fil kaldet .config, som fortæller GCC, hvad der skal kompileres fra kernekilderne. Kommandoen localmodconfig gør det muligt at køre kernekomponenter i øjeblikket og markerer dem til kompilering. Hvis kernen er inde i en mappe, du ejer, behøver du ikke sudo for at den skal fungere.

Du kan komme på tværs af nogle meddelelser som den nedenfor. Bare tryk på Enter- tasten for at springe over dem - de er som regel bare nye kernel-funktioner.

Sådan kompilerer du din egen Linux-kerne Lav Localmodconfig Ny

Localmodconfig er dog ikke perfekt! Hvis du ikke bruger nogle dele af din computer på nuværende tidspunkt, kan det ikke opdage alle de ting, den understøtter. Som sådan skal du aktivere dem manuelt. Alternativt kan du springe over dette trin helt og bruge kommandoen i stedet. Dette vil kompilere den nye kerne med de samme muligheder som den, du bruger i øjeblikket.

Hvis du foretrækker det, men bruger kommandoen localmodconifg før, gør du det her:

 sudo make clean 

Dette vil give dig en ren bygning. Du skal også bruge denne kommando, hvis du har sammensat en kerne med disse kilder før.

Yderligere konfiguration

Inde i kernel-kildemappen er der en fil kaldet .config . Dette er, hvad GCC vil bruge til at vælge, hvad man skal kompilere. I stedet for at redigere det manuelt (anbefales ikke) bruger du i stedet nogle få terminalværktøjer. Dette vil gøre valg af kompilere muligheder meget lettere.

Efter at have gjort dette, finjustere det yderligere:

 sudo make nconfig 

Du får se en farverig menu, dukker op. Dette er kernekonfigurationsmenuen. For at navigere rundt, brug piletasterne. Du kan trykke på højre piletast for at udvide poster med et -> tegn ved siden af ​​dem. Naviger ud af disse undermenuer ved at trykke på den venstre piletast.

Sådan kompilerer du din egen Linux-kerne Lav Nconfig

Du kan skifte menuindgange, der har tegnet eller [] ved siden af ​​dem ved at trykke på mellemrumstasten. Dette vil gennemgå de forskellige menupunkter. Hvis du ser en * eller M indeni, vil denne specifikke kernekomponent blive kompileret. Den eneste forskel mellem dem er, at M- indstillingen vil blive indlæst, når det er nødvendigt. Dette kan være nyttigt, hvis du f.eks. Compilerer en driver, der ikke bliver brugt ofte.

Hvis du vil vide mere om, hvad en bestemt switch gør, skal du trykke på F2 over det. Du får vist en nyttig beskrivelse af, hvad du kompilerer.

Sådan kompilerer du din egen Linux-kerne Lav Nconfig F2

Når du er færdig, tryk på F9- knappen for at gemme og afslutte.

Sådan kompilerer du din egen Linux-kerne Lav Nconfig Save

Kompilering og installation af kernen

Nu hvor du har oprettet en brugerdefineret make-fil, skal du kompilere Hvordan kompilere og installere TAR GZ & TAR BZ2-filer i Ubuntu Linux Sådan kompilerer og installerer TAR GZ & TAR BZ2-filer i Ubuntu Linux Læs mere kernen. Indtast denne kommando:

 sudo make -j$(nproc --all) 

Du behøver ikke sudo, hvis du downloadede kernekilderne fra internettet. Den anden del af kommandoen hjælper med at fremskynde kernekompileringstiden ved at udnytte alle dine CPU-kerner. Hvad er en processorkern? [MakeUseOf Forklarer] Hvad er en processorkern? [MakeUseOf Forklarer] Hver computer har en processor, uanset om det er en lille effektivitetspro eller et stort performance powerhouse, ellers ville det ikke kunne fungere. Selvfølgelig, processoren, også kaldet CPU eller Central Processing ... Læs mere. Du kan slippe af med dette eller ændre nummeret til noget andet (f.eks. -j2 ), hvis du vil bruge din computer til andre opgaver uden for mange hikke. Dette vil dog også gøre samlingen langsommere!

Denne proces kan og vil tage meget lang tid. Jo mindre du valgte at kompilere, jo kortere bliver det. Alligevel skal du nok være tålmodig.

Indtast derefter denne kommando for at afslutte kompilering af resten af ​​kernen:

 sudo make modules_install 

For faktisk at bruge denne kerne skal du indtaste denne kommando:

 sudo make install 

Dette kopierer automatisk kernen til din / boot- mappen og genererer de relevante filer for at få det til at fungere.

Skift kerner ved hjælp af GRUB

Hvis du genstarter efter installation af din nye kerne, fungerer dit system muligvis ikke ! Dette skyldes normalt en fejlagtigt udarbejdet kerne (det vil sige, at den ikke understøtter din computer nok). Case in point, min egen laptop. Bare i tilfælde af dette, anbefaler jeg at redigere GRUB Sådan tilpasses GRUB Boot Loader Brug af BURG [Ubuntu] Sådan tilpasses GRUB Boot Loader Brug af BURG [Ubuntu] Læs mere, så det kan skifte tilbage til ældre kerner. For at gøre dette skal du bruge denne kommando:

 sudo nano /etc/default/grub 

Sådan kompilerer du din egen Linux Kernel Ubuntu GRUB

Placer et tegn foran GRUB_HIDDEN_TIMEOUT og GRUB_HIDDEN_TIMEOUT_QUIET linjerne. Gem derefter disse ændringer ved at køre denne kommando:

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

Sådan kompilerer du din egen Linux Kernel GRUB Menu

Nu, hvis du genstarter din computer, kan du skifte til en ældre kerne, hvis din nye ikke virker. Du skal blot gå til menuen Avancerede valgmuligheder og vælge den kerne, du vil starte. Hvis alt fungerer fint, tillykke! Du bruger den kerne, du har sammensat af dig selv.

Er du interesseret i at kompilere flere kerner? Andre programmer? Synes du det er umagen værd?

Billedkreditter: chombosan / Shutterstock

In this article