Cum se compilează propriul kernel Linux

Cum se compilează propriul kernel Linux / Linux

Împreună cu instalarea Gentoo Gentoo: o distribuție Linux unde compilați propriul software optimizat Gentoo: o distribuție Linux unde compilați propriul software optimizat Numarul mare de moduri în care Linux poate fi rulat este uluitor, deoarece există o mulțime de opțiuni pentru mergeți în jur. În timp ce există o mulțime de distribuții care se bazează fie pe .deb ... Citește mai mult, compilarea propriului kernel Linux este unul dintre acele lucruri care sunt considerate foarte geeky și tehnice. Am deja acoperit câteva motive 3 Motive pentru care ați putea să vă compilați kernelul propriu [Linux] 3 motive pentru care ați putea să vă compilați propriul kernel [Linux] Sistemele Linux sunt atât de ridicol de flexibile și configurabile, sunt chiar nebunești. O mare parte a motivului pentru care Linux este atât de flexibil este datorită structurii sale modulare. Fiecare componentă și un singur sistem sunt împărțite ... Citiți mai mult de ce ați putea dori să faceți acest lucru. Înainte de a vă trece prin pași, iată o scurtă prezentare generală a unor concepte importante.

Ce este un kernel??

Pe scurt, este o parte vitală a sistemului de operare, dacă nu cel mai important. Un sistem de operare este responsabil pentru permiterea funcționării programelor dvs., permițându-le să acceseze hardware-ul. Cu toate acestea, este kernel-ul Kernelul Linux: o explicație în termenii Layer Kernel-ul Linux: o explicație în termenii Laymanului Există doar un lucru de facto pe care distribuțiile Linux le au în comun: kernel-ul Linux. Dar, deși se vorbește deseori, o mulțime de oameni nu știu exact ce face. Citește mai mult care de fapt poartă toate aceste locuri de muncă afară.

Kernel-ul Linux este special pentru că poate fi personalizat pentru a se potrivi cu hardware-ul pe care îl dețineți. Contrastați acest lucru cu kernelul Windows NT, care va fi, în general, același pe fiecare calculator. Pentru a face acest lucru, kernelul trebuie să treacă printr-un proces numit compilare.

Ce este Compilarea?

În general, programele sunt scrise într-un format care poate fi citit de om. Acest lucru facilitează crearea de software de către oameni. De exemplu, kernel-ul Linux este scris în principal într-o limbă de programare numită C. Cu toate acestea, computerele nu pot înțelege acest lucru. Ei recunosc doar o limbă complicată numită Codul mașinii. Pentru a face acest lucru, liniile de text trebuie să fie traduse Cum se compilează și se instalează TAR GZ & TAR BZ2 Fișiere în Ubuntu Linux Cum se compilează și se instalează TAR GZ & TAR BZ2 Fișiere în Ubuntu Linux Citiți mai multe folosind o bucată specială de software numită compilator.

Diferite compilatoare sunt folosite pentru a converti diferite limbi de programare. De exemplu, CGC este un compilator care traduce codul C în codul mașinii (printre altele). Dar asta nu e tot ce fac - compilatorii pot, de asemenea optimiza codul tradus pentru anumite mașini. Odată cu aceasta, pot elimina, de asemenea, caracteristicile nedorite din programe în timp ce fac acest lucru.

De obicei, acest proces este deja făcut pentru o mulțime de software. În schimb, oamenii descarcă convertitul binar instrucțiuni, care funcționează din cutie. De exemplu, browser-ul web folosiți cel mai bun browser web pentru Linux în 2016? Folosești cel mai bun browser web pentru Linux în 2016? Utilizarea browserului "greșit" poate duce la o mulțime de dureri de cap inutile, productivitate pierdută și chiar pierderi de date. Deci, ce browser este cel mai bun pentru calculatorul dvs. Linux? Să aflăm. Citește mai mult pe care rulezi acum este deja compilat. Acest lucru se datorează faptului că compilarea ceva poate fi un pic complicată și consumatoare de timp. Gândiți-vă cum se traduce o carte mare într-o limbă străină.

Pe scurt, compilarea kernel-ului înseamnă convertirea codului său în ceva care va funcționa de fapt pe computerul dvs..

Obținerea surselor de kernel

Nu poți face foc fără combustibil. De asemenea, nu puteți compila programe dacă nu aveți codul pentru acesta în primul rând. Metoda este, în general, aceeași pentru majoritatea sistemelor de operare Linux cu câteva excepții. Mulți dintre ei furnizează propriile surse de kernel personalizate. Ar trebui să încercați să o utilizați dacă puteți. De exemplu, dacă utilizați a Sistem de operare bazat pe Debian cum ar fi Ubuntu, ar trebui să instalați sursele utilizând următoarele comenzi:

sudo apt-get actualizare sudo apt-get instalare linux-source 

De asemenea, puteți instala diferite versiuni ale acestui pachet (de ex. linux-source-4.8.0) dacă vrei. Veți găsi fișierele instalate în / Usr / src / director, navigați acolo și vizualizați conținutul:

cd / usr / src / ls 

Veți vedea un fișier care se termină cu .tar.bz2. Aceasta este sursa pe care o veți utiliza. Extrageți-l cu această comandă:

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

Asigurați-vă că înlocuiți fișierul cu numele corect, desigur. Fișierul va fi destul de mare, așa că procesul va dura puțin!

Metoda alternativă

Dacă doriți, puteți obține sursele de pe site-ul oficial al Linux Kernel. Vă recomandăm acest lucru numai dacă sistemul de operare Linux nu le furnizează. Selectați versiunea pe care o doriți și descărcați-o. Dacă treceți prin acest traseu, ar trebui să îl descărcați într-un dosar gol. În acest fel, dacă doriți să compilați mai multe kerneluri în viitor, veți avea un dosar frumos pentru a le păstra organizat.

După ce ați făcut acest lucru, extrageți fișierul cu această comandă:

tar xJvf linux-4.9.11.tar.xz

Asigurați-vă că utilizați numele fișierului care se potrivește cu versiunea pe care ați descărcat-o!

Personalizați kernelul

Acesta este pasul în care puteți alege ce părți ale kernelului doriți să scăpați. De exemplu, kernelul este livrat cu o mulțime de drivere diferite pentru o varietate de dispozitive. Dacă nu aveți nevoie de acest suport, eliminarea acestora poate genera unele beneficii de viteză, împreună cu un kernel mai mic.

Cerințe preliminare

Înainte de a continua, trebuie să instalați unele programe care vă vor permite să personalizați și să le compilați.

Pe sistemele bazate pe Debian aveți nevoie de build-essential pachetul, printre altele:

sudo apt-get instalează build-essential gcc libncurses5-dev libssl-dev 

libncurses5-dev pachetul va facilita configurarea kernel-ului, deci asigurați-vă că îl instalați. Alte sisteme de operare Linux vor avea un program similar, dar acesta poate fi sub alt nume. De exemplu, dacă utilizați Fedora 5 motive pentru a utiliza Distribuție Pure Open Source, Fedora 5 motive pentru a utiliza Distribuție Pure Open Source, Fedora Fedora nu este la fel de cunoscută ca Ubuntu și are reputația că este greu de folosit. Dar dacă este adevărat, de ce atât de mulți oameni continuă să folosească Fedora? Citește mai mult, se numește ncurses.

Dacă nu este deja instalat, veți avea nevoie de asemenea Colecția de compilatoare GNU (CCG). Aceasta este instrumentul responsabil pentru traducerea codului sursă brut în ceva ușor de înțeles pentru computere. Adică compilarea.

După ce ați instalat aceste programe, deschideți terminalul astfel încât să fiți interior folderul sursă extras Linux. De exemplu, dacă ați folosit linux-source metodă, ați face acest lucru:

cd /usr/src/linux-source-4.4.0

Fișier de configurare a kernelului

Înainte de a compila kernelul, trebuie să-i spuneți GCC cum vreți să faceți acest lucru. Faceți acest lucru folosind un instrument de linie de comandă numit face. Introduceți această comandă:

sudo face localmodconfig 

Aceasta creează un fișier numit .config, care spune GCC ce să compileze din surse de kernel. face localmodconfig comandă detectează componentele kernelului care rulează în prezent și le marchează pentru compilare. Dacă nucleul se află în interiorul unui dosar pe care îl deții, tu nu va avea nevoie de sudo ca să funcționeze.

S-ar putea să întâlniți câteva mesaje ca cea de mai jos. Doar apăsați butonul introduce cheie pentru a sări peste ele - de obicei sunt doar noi caracteristici de kernel.

Cu toate acestea, localmodconfig nu este perfect! Dacă nu utilizați în prezent anumite părți ale computerului, este posibil să nu detecteze toate lucrurile pe care le suportă. Ca atare, trebuie să le activați manual. Alternativ, puteți sări peste acest pas în întregime și utilizați în schimb următoarea comandă. Acest lucru va compila noul kernel cu aceleași opțiuni ca și cel pe care îl utilizați în prezent.

Dacă preferați acest lucru, dar ați folosit comanda localmodconifg înainte, procedați astfel:

sudo face curat 

Acest lucru vă va oferi o construcție curată. De asemenea, trebuie să utilizați această comandă dacă ați compilat un kernel cu aceste surse înainte.

Configurarea ulterioară

În interiorul directorului sursă de kernel există un fișier numit .config. Aceasta este ceea ce GCC va folosi pentru a alege ce să compileze. În loc să o editați manual (nu este recomandată), veți folosi în schimb câteva instrumente terminale. Acest lucru va face mult mai ușor selectarea opțiunilor de compilare.

După ce ați făcut acest lucru, reglați-l mai bine:

sudo face nconfig 

Veți vedea un meniu plin de culoare. Acesta este meniul de configurare a kernel-ului. Pentru a naviga în jurul valorii de, utilizați tastele săgeată. Puteți apăsa butonul dreapta săgeată pentru a extinde intrările cu -> semn lângă ele. Navigați din aceste submeniuri apăsând pe stânga tasta săgeată.

Puteți comuta intrările de meniu care au <> sau [] semnați lângă acestea apăsând bara de spațiu. Aceasta va trece prin diferite opțiuni de meniu. Dacă vedeți a * sau M interior, componenta specifică a nucleului va fi compilată. Singura diferență dintre ele este că M opțiunea va fi încărcată atunci când este necesar. Acest lucru poate fi util dacă compilați un driver, de exemplu, care nu va fi utilizat frecvent.

Dacă doriți să aflați mai multe despre ceea ce face un anumit switch, apăsați pe F2 peste ea. Veți vedea o descriere utilă a ceea ce compilați.

După ce ați terminat, apăsați pe F9 pentru a salva și a ieși.

Compilarea și instalarea kernelului

Acum, că ați creat un fișier personalizat, va trebui să compilați Cum se compilează și se instalează TAR GZ & TAR BZ2 Fișiere în Ubuntu Linux Cum se compilează și se instalează TAR GZ & TAR BZ2 Fișiere în Ubuntu Linux Citiți mai mult kernel-ul. Introduceți această comandă:

sudo face-j $ (nproc - tot) 

Tu vei nu trebuie sudo dacă ați descărcat sursele de kernel de pe web. A doua parte a comenzii ajută la accelerarea timpului de compilare a nucleului, profitând de toate miezurile procesorului dvs. Ce este un procesor Core? [MakeUseOf explică] Ce este un procesor Core? [MakeUseOf explică] Fiecare computer are un procesor, fie că este vorba de o mică putere de eficiență sau de o putere puternică, fie că nu ar putea funcționa. Desigur, procesorul, numit și CPU sau procesor central ... Citește mai mult. Puteți să scăpați de acest lucru sau să schimbați numărul la altceva (de ex. -j2), dacă doriți să utilizați computerul pentru alte activități fără prea multe sughițe. Cu toate acestea, aceasta va face și compilarea mai lentă!

Acest proces poate și va dura foarte mult. Cu cât ați ales mai puțin pentru a compila, cu atât va fi mai scurtă. Chiar și așa, va trebui probabil să aveți răbdare.

Apoi, tastați această comandă pentru a finaliza compilarea restului kernel-ului:

sudo face modules_install 

Pentru a utiliza efectiv acest kernel, va trebui să introduceți această comandă:

sudo face instalare 

Acest lucru va copia automat kernelul la dvs. / boot și să genereze fișierele corespunzătoare pentru a funcționa.

Comutarea kernelurilor folosind GRUB

Dacă reporniți după instalarea noului kernel, este posibil ca sistemul dvs. să nu funcționeze! Acest lucru se datorează, de obicei, unui kernel compilat necorespunzător (adică nu susține destul de bine computerul). Cazul în punctul meu, laptop-ul meu propriu. În cazul în care se întâmplă acest lucru, vă recomandăm să editați GRUB. Cum să personalizați GRUB Boot Loader folosind BURG [Ubuntu] Cum să personalizați GRUB Boot Loader Utilizând BURG [Ubuntu] Citiți mai multe astfel încât să poată reveni la nucleele mai vechi. Pentru aceasta, folosiți această comandă:

sudo nano / etc / implicit / grub 

Plasați un semn # în fața GRUB_HIDDEN_TIMEOUT și GRUB_HIDDEN_TIMEOUT_QUIET linii. Ulterior, salvați aceste modificări executând această comandă:

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

Acum, dacă reporniți computerul, veți putea trece la un nucleu mai vechi dacă noul dvs. nu funcționează. Pur și simplu du-te la Opțiuni avansate și selectați kernelul pe care doriți să îl încărcați. Dacă totul funcționează bine, felicitări! Veți utiliza nucleul pe care l-ați compilat singur.

Vă interesează să compilați mai multe kerneluri? Alte programe? Considerați că merită?

Credite de imagine: chombosan / Shutterstock

Explorați mai multe despre: Linux.