Kompilera en kärna: Hur gör man det på en Debianbas-distro?

Kompilera en kärna: Hur gör man det på en Debianbas-distro?

Kompilera en kärna: Hur gör man det på en Debianbas-distro?

I vår föregående post, ring "The Linux Kernel: Kernel Basics" vi tar upp några väsentliga teoretiska grunderOperativsystems kärnor, vanligtvis; och den Linux-kärna, specifik.

Och som vi uttryckte i det, i den här, kommer vi att avsluta sagt väsentliga teoretiska grunder med andra viktiga begrepp och information, förutom att visa den nuvarande proceduren för att uppnå "kompilera en Linux-kärna" från grunden, på en Debian GNU/Linux 11-distribution (Bullseye) eller baserat på det.

Linux-kärnan: Grunderna i kärnan

Linux-kärnan: Grunderna i kärnan

Och, innan du börjar läsa det här inlägget om "kompilera en kärna" Linux I allmänhet kommer vi att lämna några länkar till tidigare relaterade inlägg för senare läsning:

Linuxkärnan: Allt om kärnan i det fria operativsystemet
Relaterad artikel:
Linux-kärnan: Grunderna i kärnan
sårbarhet
Relaterad artikel:
Hittills denna månad har flera sårbarheter som hittats i Linux-kärnan redan avslöjats

Bygg en kärna: Bygg självstudie

Bygg en kärna: Bygg självstudie

Vad innebär det att kompilera ett program?

I grund och botten detta teknisk process (även kallad förpackning) består i att uppnå konvertering av källkoden för ett program eller del av programvaran, från dess källa (programmeringsspråk som används för att skriva sig själv) till en läsbar produkt (tolkbart programmeringsspråk på hög nivå) av en dator.

Det vill säga uppnå transformera från din källkod tills det blir en körbart och funktionellt program, genom att använda en processor (kompilatorprogram) för konvertering av det använda programmeringsspråket till en kod av binär- och assemblertyp.

Och när det gäller utveckla och kompilera någon form av paket, applikation och program, grundläggande och infödda, som kärnorDebian GNU / Linux, är följande förpackningar lämpliga och nödvändiga för att få en vara utvecklingsstödoch dessa är:

apt install autoconf automake autotools-dev build-essential dh-make debhelper debmake devscripts dpkg fakeroot file gfortran git gnupg fp-compiler lintian patch pbuilder perl python quilt xutils-dev
Optimera dina GNU/Linux: Debian-paket för att utveckla appar
Relaterad artikel:
Optimera dina GNU/Linux: Debian-paket för att utveckla appar

Fördelar och nackdelar med att kompilera en Linux-kärna från grunden

När vi specialkompilerar och konfigurerar, från början, en specifik kärna för en viss dator, kan vi få följande fördelar:

  • Få bättre prestanda och lägre CPU-förbrukning.
  • Få en bättre optimering och lägre förbrukning av RAM-minne.
  • Förbättra anpassningsförmågan och kompatibiliteten hos operativsystemet.
  • Öka effektiviteten och produktiviteten i operativsystemet.

Medan vi tvärtom kan generera följande nackdelar:

  • Drifts- och tillgänglighetsfel av de önskade resurserna och tjänsterna på den dator som används, på grund av dåliga konfigurationer och problem som orsakats under kompileringen.
  • Ett konstant, långt och tråkigt jobb i början för att generera det, och sedan till senare, för att hålla den uppdaterad manuellt. Vilket kan gå från minuter till timmar, beroende på vilken hårdvara som används.
  • Långa timmar av studier och prov, eftersom det behövs en hög kunskapsnivå både om de konfigurationsalternativ som finns tillgängliga i kärnan och om datorn (slutlig hårdvara), där den kommer att exekveras.

Tillgängliga kärnkategorier

Tillgängliga kärnkategorier

till kompilera en kärna, det första vi behöver veta är vilken kärna vi ska välja. För att göra detta måste vi gå till officiell hemsida av kärnorna, och välj en av de befintliga kategorierna. Vilka är följande:

  • Huvudlinje för utveckling (Mainline): Den här kategorin inkluderar dessa kärnor i utvecklingsstadiet, därför innehåller de nya funktioner och funktioner som måste testas innan de kan sättas in i en stabil version. Dessa underhålls och släpps direkt av Linus Torvalds, och släpps i genomsnitt var 2-3 månad.
  • Stabil: Denna kategori inkluderar de kärnor som, efter att ha klarat testerna av den långa utvecklingsprocessen, blir stabila, så de är endast föremål för korrigeringar genom en utsedd officiell underhållare. Dessutom har de bara ett fåtal buggfixutgåvor tills nästa Mainline är tillgänglig.
  • Långsiktigt: Denna kategori inkluderar de kärnor som, efter att ha klarat testerna av den långa utvecklingsprocessen, blir stabila, men som stöds av buggfixar och underhåll under extremt lång tid (år). Orsaken till att viktiga buggfixar tillämpas, vilket kan bli mycket frekvent.

Hur kompilerar man en kärna i en GNU/Linux Debian Bullseye Distro?

Hur kompilerar man en kärna i en GNU/Linux Debian Bullseye Distro?

Efter att ha valt en specifik kärnversion, på den officiella webbplatsen och redan känner till (kopierar) din nedladdningsväg genom tarball knapp av detsamma återstår bara att utföra följande procedur, som vi kommer att visa med som exempel, den Stabil Linux-kärna version 6.0.8:

Fas 1

cd /usr/src
wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.0.8.tar.xz
sudo unxz linux-6.0.8.tar.xz
sudo tar xvf linux-6.0.8.tar
sudo ln -s linux-6.0.8 linux
cd /usr/src/linux
sudo make clean && make mrproper
sudo cp /boot/config-`uname -r`* .config
make menuconfig

Genom att köra det sista kommandot startas "Kärnkonfigurationsmeny", där du kan konfigurera (anpassa) parametrar dina önskemål eller behov. Dessutom är det här viktigt att inte glömma att det är nödvändigt markera eller avmarkera alternativet 64-bitars kärnaberoende på vad som önskas eller krävs. Och också, efter att ha gjort alla ändringar som gjorts, måste du tryck på knappen Spara och sedan Avsluta-knapp.

Kärnkonfigurationsmeny

Fas 2

Vid denna tidpunkt finns det 2 möjliga vägar att ta:

Endast kärninstallation
sudo make
sudo make modules_install
sudo make install
sudo update-grub; sudo update-grub2; sudo update-initramfs -u
sudo apt clean; sudo apt autoclean; sudo apt autoremove; sudo apt remove; sudo apt purge

Kernelinstallation och generering av .deb-filer

Kernelinstallation och generering av .deb-filer

För att utföra detta steg är det relevant att låta installationen av paketet anropas kärn-paket. Därför är proceduren som följer och börjar enligt följande:

sudo wget -c http://ftp.us.debian.org/debian/pool/main/k/kernel-package/kernel-package_13.018+nmu1~bpo9+1_all.deb
sudo apt install ./kernel-package_13.018+nmu1~bpo9+1_all.deb
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
cd /usr/src
sudo dpkg -i *.deb

Om du under sammanställningsprocessen får en fel relaterat till kärncertifikat, det återstår som ett alternativ att kunna utföra följande kommandoorder för att fixa det automatiskt:

sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/s/^/#/g' .config

Ja, allt har slutat bra, allt som återstår är att starta om vår dator och testa hur vårt operativsystem körs med den nya Kernel. Som han visas före och efter, i följande skärmdumpar:

Före installation av kärnan

Antes de la installation

Efter installation av kärnan

Efter installation

Relaterad artikel:
Fast Kernel Headers, en uppsättning patchar som påskyndar kärnkompileringen med 50-80 %
Relaterad artikel:
Kerla: en ny kärna skriven i Rust och kompatibel med Linux ABI

Sammanfattning: Bannerpost 2021

Sammanfattning

Sammanfattningsvis hoppas vi att denna handledning kommer att vara mycket användbar, både för Avancerade användare som Utvecklare av Distros eller Respins. som vanligtvis kräver "kompilera en kärna" specifikt på ett för närvarande installerat GNU/Linux-operativsystem eller ett som genereras från början, för att införliva en bättre prestanda och optimering på specifik hårdvara. Mestadels, i syfte att uppnå, a lägre CPU- och RAM-förbrukning.

Fast om någon känner till några ett annat användbart sätt att utföra nämnda procedur eller vet någon förslag, rekommendation eller rättelse till vad som ges här, är du välkommen att göra det genom kommentarerna. Och ja, du gillade helt enkelt den här publikationen, sluta inte kommentera den och dela den med andra. Kom också ihåg att besöka vår «hemsida» för att utforska fler nyheter, samt gå med i vår officiella kanal Telegram av DesdeLinux, Väst grupp för mer information om dagens ämne.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.