Cum să vă construiți nucleul Linux. Construirea propriului kernel Linux

Recent, noile versiuni ale nucleelor \u200b\u200bau fost lansate destul de des. O lansare stabilă este lansată la fiecare câteva luni. Și candidații instabili pentru eliberare ies și mai des. Linus Torvalds și mulți dezvoltatori din întreaga lume lucrează constant pentru a îmbunătăți noile nuclee și pentru a le adăuga din ce în ce mai multe funcționalități.

Cu fiecare nouă versiune, nucleul Linux adaugă suport pentru mai multe dispozitive noi, cum ar fi procesoare noi, plăci video sau chiar ecrane tactile. Recent, suportul pentru hardware nou sa îmbunătățit dramatic. De asemenea, noi sisteme de fișiere sunt incluse în nucleu, stiva de rețea este îmbunătățită, erorile și erorile sunt remediate.

Dacă aveți nevoie de informații mai detaliate despre modificările într-o anumită versiune de kernel, consultați Changelog-ul său la kernel.org și în acest articol vom analiza actualizarea kernel-ului Linux la cea mai nouă versiune. Voi încerca să nu leg instrucțiunea de o anumită versiune de nucleu, nucleele noi sunt lansate destul de des și vor fi relevante pentru fiecare dintre ele.

Luați în considerare actualizarea nucleelor \u200b\u200bUbuntu și CentOS. În primul rând, să aruncăm o privire la modul de actualizare a nucleului pe Ubuntu 16.04.

Să vedem mai întâi ce kernel ați instalat. Pentru a face acest lucru, deschideți un terminal și rulați:

De exemplu, în prezent am versiunea 4.3 și pot face upgrade la cea mai nouă versiune. Dezvoltatorii Ubuntu s-au asigurat deja că utilizatorii lor nu construiesc nucleul manual și fac pachete deb ale noii versiuni de nucleu. Acestea pot fi descărcate de pe site-ul oficial Canonical.

Aș putea lista comenzile wget pentru descărcare aici dacă versiunea kernel-ului ar fi cunoscută, dar în cazul nostru ar fi mai bine să folosim un browser. Accesați http://kernel.ubuntu.com/~kernel-ppa/mainline/. Aici se află toate nucleele compilate de echipa Ubuntu. Nucleele sunt construite pentru distribuții specifice, cu un nume de cod de distribuție, precum și pentru cele generale. Mai mult, nucleele de la Ubuntu 16.10 vor funcționa cel mai probabil în 16.04, dar de la 9.04 în Ubuntu 16.04 nu ar trebui să instalați un nucleu.

Derulați în partea de jos, aici se află versiunile mai noi ale nucleelor:

În plus, în partea de sus există un folder zilnic / curent, care conține cele mai recente versiuni nocturne de nuclee. Selectați versiunea corectă a kernel-ului și descărcați cele două fișiere Linux-header și linux-image pentru arhitectura dvs.

După finalizarea descărcării, puteți trece la instalare. Pentru a face acest lucru, faceți următoarele în terminal:

Accesați dosarul cu pachetele de instalare, de exemplu ~ / Descărcări:

Rulați instalarea:

Dacă această comandă nu a funcționat, puteți merge pe altă cale. Instalați utilitarul gdebi:

sudo apt-get install gdebi

Apoi utilizați-l pentru a instala nucleul:

sudo gdebi linux-headers * .deb linux-image - *. deb

Nucleul este instalat, rămâne să actualizați bootloader-ul:

sudo update-grub

Acum puteți reporni computerul și puteți vedea ce se întâmplă. După repornire, asigurați-vă că actualizarea kernel-ului Linux la cea mai nouă versiune a avut succes:

După cum puteți vedea, nucleul a fost instalat și a funcționat cu succes. Dar nu vă grăbiți să ștergeți vechea versiune a nucleului, este recomandat să aveți mai multe versiuni ale nucleului în sistem, astfel încât în \u200b\u200bcaz de probleme să puteți porni din vechea versiune de lucru.

Actualizări automate de kernel Linux în Ubuntu

Mai sus, am văzut cum se instalează manual versiunea necesară a nucleului. Ubuntu obișnuia să aibă un PPA pentru versiunile zilnice de nucleu, dar acum este închis. Prin urmare, puteți actualiza nucleul doar descărcând pachetul deb și instalându-l. Dar toate acestea pot fi simplificate cu un script special.

Instalați scriptul:

cd / tmp
$ git clone git: //github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater / install

Verificarea actualizărilor:

KernelUpdateChecker -r yakkety

Opțiunea -r vă permite să specificați ramura distribuției pentru care doriți să căutați nucleele. Pentru xenial, nucleele nu mai sunt construite, dar nucleele din următoarea versiune vor funcționa bine aici. În plus, opțiunea -no-rc poate indica utilității să nu folosească candidați de lansare, iar opțiunea -v specifică versiunea exactă a nucleului de instalat. Dacă nu vă pasă care distribuție este nucleul, atâta timp cât cea mai recentă, utilizați opțiunea --any-release. Scenariul va produce următorul rezultat:

Înainte de a instala nucleul, puteți vedea detaliile deschizând fișierul / tmp / kernel-update:

Aici putem vedea că a fost efectuată o căutare pentru yakkety, iar versiunea kernel 4.7-rc6 este disponibilă în prezent. Putem instala:

sudo / tmp / kernel-update

Scriptul ne va arăta versiunea kernelului curent, precum și versiunea kernel-ului care va fi instalat, data construirii acestuia și alte detalii. De asemenea, vi se va cere dacă trebuie să păstrați un jurnal al modificărilor. Urmează instalarea:

Nucleele vechi, în caz că nu ștergeți (n):

Gata, actualizarea kernelului la cea mai nouă versiune este finalizată, reporniți acum computerul (y):

Verificați dacă actualizarea kernel-ului Ubuntu a funcționat efectiv:

Mai mult, scriptul a fost adăugat la pornire și acum va verifica automat actualizările la 60 de secunde după conectare. Comanda rapidă de încărcare automată se află în fișier:

vi ~ / .config / autostart / KernelUpdate.desktop

Îl puteți schimba după cum aveți nevoie sau îl puteți șterge. Dacă doriți să eliminați complet scriptul din sistem, rulați:

rm ~ / .config / autostart / KernelUpdate.desktop
$ sudo rm / usr / local / bin / KernelUpdate (Checker, ScriptGenerator)

Nu se descarcă

Dacă au apărut erori în timpul instalării sau kernelul nu a fost actualizat corect, iar sistemul nu pornește acum cu noul kernel, puteți utiliza vechiul kernel. De asemenea, este posibil ca sistemul să nu pornească dacă utilizați un driver propriu pentru placa video NVIDIA, în acest caz, nu vă grăbiți să descărcați cea mai recentă versiune a nucleului, utilizați doar nuclee stabile, de regulă, suportul pentru acest modul a fost deja le-a adăugat.

Și pentru a restabili sistemul, selectați elementul Opțiuni avansate pentru Ubuntu în meniul Grub:

Și porniți nucleul de lucru anterior:

După pornire, rămâne să eliminați nucleul instalat incorect și să actualizați din nou Grub, înlocuiți versiunea necesară a nucleului în loc de 4.7:

sudo apt elimina linux-header-4.7 * linux-image-4.7 *

sudo update-grub

Sistemul dvs. a revenit acum la starea sa anterioară. Puteți încerca să instalați o versiune mai veche a nucleului sau să încercați din nou.

Actualizarea Linux Kernel la 4.4 pe CentOS

Acum să aruncăm o privire la cum să actualizăm cel mai recent kernel Linux pe CentOS. Instrucțiunile au fost testate pe CentOS 7, dar cel mai probabil vor funcționa pe RedHat 7, Fedora și alte distribuții similare.

De regulă, noile nuclee nu sunt incluse în depozitele oficiale CentOS, deci pentru a obține cea mai recentă versiune stabilă va trebui să adăugăm depozitul ELRepo. Acesta este un depozit de pachete Enterprise Linux și este, de asemenea, acceptat de RedHat și Fedora.

Urmați acești pași pentru a adăuga un depozit:

Mai întâi trebuie să importați cheia:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Adăugați depozitul și componentele necesare la RHEL / Scientific Linux / CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum instalează yum-plugin-fastestmirror

Fedora 22 și versiunile ulterioare:

De ce ar vrea cineva să compileze un nou nucleu? De multe ori nu este necesar, deoarece nucleul implicit livrat cu Debian gestionează majoritatea configurațiilor. De asemenea, Debian oferă adesea mai multe nuclee alternative. Așadar, poate doriți să verificați mai întâi dacă există un pachet de imagine de nucleu alternativ care să corespundă mai bine hardware-ului dvs. Cu toate acestea, poate fi util să compilați un nou nucleu pentru a:

Nu vă fie teamă să încercați să compilați nucleul. Este distractiv și profitabil.

Pentru a compila un kernel în modul Debian, aveți nevoie de câteva pachete: și câteva altele care sunt probabil deja instalate (consultați lista completă).

Această metodă va face un .deb al sursei dvs. de nucleu și, dacă aveți module non-standard, va face un .deb dependent sincronizat și al acestora. Este o modalitate mai bună de a gestiona imaginile din nucleu; va conține nucleul, System.map și un jurnal al fișierului de configurare activ pentru compilare.

Rețineți că nu avea pentru a compila nucleul dvs. „în modul Debian”; dar găsim că utilizarea sistemului de ambalare pentru a vă gestiona nucleul este de fapt mai sigură și mai ușoară. De fapt, puteți obține sursele de nucleu chiar de la Linus în loc de, totuși utilizați metoda de compilare.

Rețineți că veți găsi sub documentație completă despre utilizarea. Această secțiune conține doar un scurt tutorial.

În continuare, vom presupune că aveți frâu liber asupra mașinii dvs. și că veți extrage sursa kernelului undeva în directorul de acasă. De asemenea, vom presupune că versiunea dvs. de nucleu este 3.16. Asigurați-vă că vă aflați în directorul unde doriți să despachetați sursele de nucleu, extrageți-le folosind și treceți la directorul care va fi creat.

Acum, vă puteți configura nucleul. Rulați dacă X11 este instalat, configurat și rulează; rulați altfel (va trebui instalat). Faceți-vă timp pentru a citi ajutorul online și alegeți cu atenție. Când aveți dubii, este de obicei mai bine să includeți driverul de dispozitiv (software-ul care gestionează perifericele hardware, cum ar fi cardurile Ethernet, controlerele SCSI și așa mai departe) de care nu sunteți sigur. Aveți grijă: alte opțiuni, care nu sunt legate de un anumit hardware, ar trebui lăsate la valoarea implicită dacă nu le înțelegeți. Nu uitați să selectați „Kernel module loader” în „Loadable module support” (nu este selectat în mod implicit). Dacă nu este inclus, instalarea Debian va avea probleme.

Curățați arborele sursă și resetați parametrii. Pentru a face asta, fă.

Acum, compilați nucleul :. Numărul versiunii „1.0” poate fi schimbat după bunul plac; acesta este doar un număr de versiune pe care îl veți utiliza pentru a urmări construcțiile dvs. de nucleu. La fel, puteți pune orice cuvânt doriți în locul „personalizat” (de exemplu, un nume de gazdă). Compilarea nucleului poate dura destul de mult, în funcție de puterea mașinii dvs.

Odată ce compilarea este completă, puteți instala nucleul personalizat ca orice pachet. Ca rădăcină, faceți. Piesa este o subarhitectură opțională, în funcție de ce opțiuni de kernel setați. va instala nucleul, împreună cu alte fișiere de suport. De exemplu, va fi instalat corect (util pentru depanarea problemelor cu nucleul) și va fi instalat, conținând setul dvs. curent de configurare. Noul pachet de kernel este, de asemenea, suficient de inteligent pentru a vă actualiza automat încărcătorul de boot pentru a utiliza noul kernel. Dacă ați creat un pachet de module, va trebui să instalați și acel pachet.

Este timpul să reporniți sistemul: citiți cu atenție orice avertisment pe care pasul de mai sus l-ar fi putut produce, atunci.

Pentru mai multe informații despre nucleele Debian și compilarea nucleelor, consultați Manualul Debian Linux pentru kernel. Pentru mai multe informații despre, citiți documentația fină din.

Dacă vă amintiți, nu cu mult timp în urmă am învățat cum să compilați kernel-ul FreeBSD din sursă. Întrebarea este, de ce să nu învățăm cum să facem același lucru cu kernel-ul Linux? Motivele pentru construirea nucleului Linux de la sursă sunt, în general, aceleași - obținerea celei mai recente versiuni a nucleului, aplicarea urgentă a patch-urilor de securitate, optimizarea pentru sarcini specifice și hardware specific, precum și dorința de a participa la dezvoltare a nucleului, chiar și în rolul QA.

Important! Respectarea instrucțiunilor din această postare poate duce la pierderea datelor dvs. Faceți copii de rezervă și amintiți-vă că faceți totul în întregime pe propriul risc și risc. Tot ce este descris mai jos a fost testat pe Ubuntu 14.04 LTS. Dar pe alte versiuni de Ubuntu, precum și pe alte distribuții Linux, diferențele ar trebui să fie minime.

Configurarea bootloaderului

Modificăm / etc / default / grub astfel:

GRUB_DEFAULT \u003d 0
# GRUB_HIDDEN_TIMEOUT \u003d 10
# GRUB_HIDDEN_TIMEOUT_QUIET \u003d adevărat
GRUB_TIMEOUT \u003d 10
GRUB_DISTRIBUTOR \u003d `lsb_release -i-s2\u003e / dev / null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT \u003d "stropire liniștită"
GRUB_CMDLINE_LINUX \u003d ""

După editare, spunem:

sudo update-grub

Ca rezultat, înainte de a porni sistemul, vi se va solicita timp de 10 secunde să selectați nucleul cu care doriți să porniți. Foarte la îndemână dacă ați încurcat ceva cu configurația kernel-ului și doriți să porniți din versiunea anterioară!

Adăugați dependențe

Avem nevoie de cel puțin următoarele pachete:

sudoapt-get installgitgccmakebc fakeroot dpkg-dev \\
libncurses5-dev libssl-dev

Cu toate acestea, pe multe sisteme, toate vor fi deja prezente.

Primim sursele

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.4.tar.xz
tar - xz-xvf linux-4.6.4.tar.xz
cd linux-4.6.4

Sau, dacă doriți cel mai proaspăt, puteți prelua sursele direct de la Git:

# Oglindă: https://github.com/torvalds/linux
git clone'git: //git.kernel.org/pub/scm/linux/kernel/git/ '\\
„Torvalds / linux.git”
cd linux

Judecând după faptul că nu am putut găsi eticheta v4.6.4 în Git, versiunile kernel Linux sunt emise exclusiv sub formă de arhive tar comprimate.

Dacă, în locul unui nucleu de vanilie, ați dori să construiți un nucleu cu patch-uri de la Canonical:

git clone git: //kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
cd ubuntu-trusty
git tag | mai puțin
git checkout Ubuntu-lts-4.4.0-31.50_14.04.1

Din propria mea experiență, dacă utilizați Ubuntu, atunci puteți utiliza în siguranță nucleul de vanilie. Este puțin probabil să aveți probleme cu acesta.

Notă: Interesant, dintre distribuțiile Linux relativ populare, doar Gentoo, Slackware și Arch Linux par să folosească un kernel fără propriile patch-uri.

Oricum, acum aveți sursele.

Asamblarea și instalarea nucleului

Selectăm opțiunile cu care va fi construit nucleul:

Dacă este necesar, modificați setările, faceți clic pe Salvare, apoi pe Ieșire. Aceasta va crea un fișier care conține parametrii selectați.

Când reînnoire kernels (oricum folosiți deja un fel de kernel?) este convenabil să luați configurația kernelului curent și să setați valorile implicite pentru noile opțiuni:

zcat / proc / config.gz\u003e ./.config
faceți olddefconfig

În cele din urmă, colectăm:

make-j4 bindeb-pkg LOCALVERSION \u003d -custom

Este nevoie de mult timp pentru a asambla miezul. Pe laptopul meu, versiunea a durat 1 oră și 15 minute. Cu toate acestea, din acest moment b desprecea mai mare parte a acestuia este cheltuită construind un pachet gigant de nucleu cu simboluri de depanare.

Construirea și configurarea manuală a kernel-ului Linux

Ansamblul acestui pachet poate fi dezactivat comentând parametrul CONFIG_DEBUG_INFO din config. Vă rugăm să rețineți că acest pachet este necesar de SystemTap și de alte instrumente utile.

În plus față de nucleul în sine, puteți colecta și documentație:

# există, de asemenea, „make pdfdocs` și altele, vezi„ make help`
face htmldocs
Chrome-browser Documentation / DocBook / index.html

La finalul adunării în fiică director vedem ceva de genul:

linux-firmware-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-headers-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom_4.4.13-custom-1_amd64.deb
linux-image-4.4.13-custom-dbg_4.4.13-custom-1_amd64.deb
linux-libc-dev_4.4.13-custom-1_amd64.deb

Instalăm toate pachetele deb, cu excepția versiunii dbg a nucleului cu cea obișnuită și repornim. După repornire, ne uităm la ieșirea comenzii. Asigurați-vă că porniți efectiv cu noul kernel. Dacă ceva nu este în regulă cu noul kernel, în bootloader îl selectăm pur și simplu pe cel cu care a fost pornit sistemul înainte. După pornirea cu vechiul nucleu, eliminăm rapid pachetele noului nucleu și voila - sistemul a revenit la starea sa anterioară.

În plus, după încărcarea unui nou kernel, puteți rula teste pe acesta:

sudomake kselftest
sudomake kselftest-clean

Felicitări, acum știi cum să construiești un kernel Linux!

Concluzie

Internele kernel-ului Linux:

  • KernelNewbies.org, un site pentru începători în kernel-ul Linux cu lista sa de e-mail, canalul IRC, forumul, wiki și multe altele;
  • LKML.org, un site pentru citirea confortabilă a listei de corespondență a dezvoltatorilor de kernel Linux printr-un browser. Fii atent, de multe ori strică formatarea literelor! În acest sens, arhiva listei de corespondență de pe marc.info este mult mai bună;
  • Linux Cross Reference, un site pentru citirea confortabilă a codului kernel Linux printr-un browser;
  • Cartea Linux Kernel Development, 3rd Edition este cea mai recentă carte despre kernel-ul Linux în engleză (2010, kernel 2.6.x), există o traducere în limba rusă;
  • Linux-Treiber entwickeln, Ediția a 4-a este mai recent (2015, kernel 4.x), dar este scris în germană și nu are traducere;
  • Cartea gratuită Linux Insides de Alexander Kuleshov a.k.a @ 0xAX pare cea mai accesibilă și relevantă, dar în acest moment este încă în curs de scriere;
  • Uneori puteți găsi ceva util în Linux Kernel HTML Documentation, documentația oficială din sursele kernel-ului Linux;
  • Exemple pentru cartea Linux Device Drivers, ediția a 3-a, care încearcă să fie actualizate, plus codul sursă pentru ediția a 4-a, care este încă în curs de scriere;

Construiți nucleul din sursă și, dacă da, de ce? 🙂

Plus: Ați putea fi, de asemenea, interesat de Adevărul scandalos despre depanarea codului kernel Linux.

Etichete: Linux, Ring0.

Compilare kernel Linux


Mulți consideră că este o pierdere de timp inutilă pentru a se dovedi a fi un „Linuxoid” inteligent și avansat. De fapt, compilarea nucleului este foarte importantă. Să presupunem că ați cumpărat un laptop nou și camera dvs. web nu funcționează. Actiunile tale? Căutați un motor de căutare și căutați o soluție la o problemă cu privire la această problemă. Destul de des se poate dovedi că camera dvs. web rulează pe un kernel mai nou decât al dvs. Dacă nu știți ce versiune aveți, introduceți uname -r în terminal, ca urmare veți obține versiunea kernel (de exemplu, linux-2.6.31-10). Compilarea kernelului este, de asemenea, utilizată pe scară largă pentru a crește performanța: faptul este că în mod implicit în distribuții, nucleele sunt compilate „pentru toată lumea”, motiv pentru care include un număr mare de drivere de care este posibil să nu aveți nevoie. Deci, dacă cunoașteți bine hardware-ul folosit, puteți dezactiva driverele inutile în etapa de configurare. De asemenea, este posibil să activați suport pentru mai mult de 4 Gigabytes de RAM fără a modifica adâncimea de biți a sistemului.

Cum se construiește un nucleu Linux? Construirea kernel-ului Linux

Deci, dacă tot trebuie să ai propriul kernel, să începem să compilăm!


Primul lucru de făcut este să obțineți codul sursă pentru versiunea corectă a nucleului. De obicei, trebuie să obțineți cea mai recentă versiune stabilă. Toate versiunile oficiale ale nucleului sunt disponibile la kernel.org.

Dacă aveți deja instalat un server X (computer de acasă), puteți accesa site-ul din browserul dvs. preferat și puteți descărca versiunea necesară în arhiva tar.gz (gzip comprimat). Dacă lucrați în consolă (de exemplu, nu ați instalat încă serverul X sau configurați serverul), puteți utiliza un browser de text (de exemplu, elinks).

De asemenea, puteți utiliza managerul standard de descărcare wget:


tar -zxvf cale_pentru_arhivare

Configurarea nucleului.

Compilare.
make && make install
Așteptăm de la 20 de minute la câteva ore (în funcție de puterea computerului). Nucleul este instalat. Pentru ca acesta să apară în lista grub (2), tastați (de la superutilizator)
update-grub


Arhiva articolelor:
Mai 2017
Martie 2017
Aprilie 2016
Martie 2016
octombrie 2013
Septembrie 2013
Mai 2013
Martie 2013
Noiembrie 2012
Iulie 2012
Iunie 2012
Aprilie 2012
Martie 2012
Februarie 2012
Aprilie 2011
Martie 2011
Februarie 2011
Ianuarie 2011
Decembrie 2010
2010 noiembrie
Octombrie 2010
Septembrie 2010
August 2010
Iulie 2010
Iunie 2010
Mai 2010
Aprilie 2010
Martie 2010

Aleatoriu:

Planetariul virtual Stellarium: o prezentare generală a noilor caracteristici

BOINC: Calcul pentru știință

Gambas: Dezvoltare de bază pe Linux

Diagrame secvențiale SSH 2.0

Linuxnow.ru: Planuri pentru viitor

Ai brusc epuizat spațiu pe disc? Poate că problema se află în jurnale.

Colegi: toți
Linux pentru toată lumea

Bannerele noastre:


Setați banner

Configurarea kernel-ului Linux

Verificarea pachetelor sursă

Pentru a recompila un nucleu, aveți nevoie de sursele acestuia.

Blog de administrare a sistemului. Articole despre Linux, Windows, stocare NetApp și virtualizare.

Red Hat găzduiește sursele de nucleu într-un singur pachet de rpm, dar nu este instalat în mod implicit. Numele acestui pachet este:

kernel-source-2.4.2-2.1386.rpm

În plus față de codul sursă, este necesar un compilator pentru a recompila nucleul, care constă din două componente:

face utilitate;

compilatorul real C este gcc sau egcs.

Crearea unei copii de rezervă a nucleului curent se realizează în trei etape:

1. Crearea unei copii de rezervă a codului sursă al nucleului, care vă permite să o restaurați dacă configurația este deteriorată.

2. Copierea de rezervă a nucleului în sine ca un lansator de sistem de lucru cunoscut.

3. Crearea unei noi intrări pentru încărcătorul sistemului de operare, conform căruia va fi posibil să porniți din copia de rezervă a nucleului.

Crearea unei copii de rezervă a surselor se face prin copierea directorului cu codurile sursă ale nucleului pe disc. Recuperarea se realizează prin copiere în direcția opusă.

Când un nucleu este recompilat, nucleul vechi este scris într-un fișier cu extensia .old. Cu toate acestea, această copie a nucleului nu poate fi încă utilizată pentru a porni sistemul. Acest lucru explică necesitatea de a efectua operațiunile de mai sus.

Un sistem de încărcare a sistemului de operare, cum ar fi LILO, utilizat în mod obișnuit pentru a porni Linux, este configurat prin setarea unei referințe la un fișier nucleu din sistemul de fișiere rădăcină.

După ce s-a făcut backup pentru kernel, trebuie adăugată încă o intrare în /etc/lilo.conf pentru a porni Linux cu vechiul kernel:

deschideți fișierul / etc / lilo. conf într-un editor de text;

creați o copie a întregii secțiuni;

modificați două poziții în copie:

înlocuiți numele fișierului kernel cu numele copiei sale de rezervă (împreună cu extensia);

înlocuiți eticheta partiției cu ceva de genul Linux. original (Linux original) sau Linux-precedent (Linux vechi).

liniile care încep cu initrd trebuie înlocuite cu cele de rezervă corespunzătoare, de exemplu, initrd-2 .4.2-2. orig. Img;

scrieți modificările în fișierul / etc / lilo. conf.

introduceți comanda / sbin / lilo pentru a injecta o nouă intrare în bootloader. Când se execută comanda lilo, etichetele imaginilor introduse în încărcătorul sistemului de operare sunt afișate pe ecran.

Data viitoare când sistemul este repornit, noul identificator de nucleu va apărea pe ecran în promptul grafic al încărcătorului LILO.

Configurarea unui nou kernel

La configurare, se decide ce funcții să includă în kernel, care să nu fie incluse etc. Puteți alege între configurarea nucleului vechi și instalarea / configurarea celui nou. De exemplu, folosind Red Hat Linux 7.1, puteți reconfigura un kernel 2.4.2 existent setând noi parametri. De asemenea, puteți descărca și instala noul kernel 2.4.4. Deși detaliile de configurare sunt diferite în aceste două cazuri, utilitățile utilizate și metodologia de configurare sunt aceleași.

Linux are trei utilitare de configurare separate, fiecare cu specificul său.

Utilitar linie de comandă. Utilizatorul răspunde în mod constant la întrebări despre caracteristicile care trebuie incluse în nucleu. Acest utilitar este convenabil pentru cei calificați în kernel și pentru cei care au scripturi de configurare pentru utilitate.

Utilitar cu meniu mod text. Meniul pe mai multe niveluri al acestui utilitar vă permite să setați și să resetați parametrii kernelului în orice ordine.

Utilitar GUI. Acesta este cel mai atractiv utilitar, dar rulează doar pe sistemul grafic X Window.

Utilitățile enumerate creează același fișier de configurare folosit de utilitatea make atunci când compilați complet sau parțial nucleul.

Parametrii nucleului

Când priviți parametrii din orice program de configurare (linie de comandă, interfață textuală sau grafică), este necesar să înțelegeți clar efectul acestor parametri asupra funcționării nucleului.

Identificarea parametrilor în fiecare program este diferită, dar în toate trei este prezentat același set de aceștia. Parametrii sunt împărțiți în două grupe principale:

modular;

nemodulară.

Dacă blocul de program corespunzător acestui parametru nu este încărcat ca un modul kernel, acesta poate fi unul dintre cele două lucruri:

[*] o parte integrantă a nucleului;

Parte neintegrală a nucleului.

Simbolurile între paranteze pătrate (împreună cu parantezele) corespund etichetelor parametrilor din meniul programelor de configurare (cu excepția utilitarului de linie de comandă).

Există trei opțiuni de instalare posibile pentru parametrii modulari (în funcție de prezentarea lor în meniul utilitarelor de configurare):

<> nu este inclus în kernel și nu este creat ca un modul care poate fi încărcat ulterior:

<*> este inclus în kernel, deci nu este nevoie să-l încărcați ulterior ca modul:

<М> Inclus ca modul, dar nu ca parte a nucleului. Blocul poate fi instalat sau eliminat din nucleu în orice moment.

Uneori, valoarea unui parametru nu poate fi modificată înainte de a seta un alt parametru. De exemplu, puteți instala asistență pentru un anumit dispozitiv SCSI după ce ați activat în general suportul pentru aceste dispozitive.

Când instrumentele necesare (utilitarul make și compilatorul gcc) și sursele sunt instalate pe sistem, puteți rula unul dintre utilitarele de configurare și puteți începe configurarea kernel-ului.

Configurator GUI

Utilitarul de configurare cu o interfață grafică este lansat în următoarea secvență.

Porniți sistemul X Windows (cu orice mediu grafic și desktop).

Deschideți o fereastră de emulator terminal (fereastră linie de comandă).

La fel cu lansarea utilitarului anterior, mai multe mesaje despre compilarea utilitarului vor clipi pe ecran și, după câteva minute, se va deschide fereastra principală.

Smochin. 8. Utilitar pentru configurarea nucleului cu o interfață grafică: butoane de meniu pentru setarea valorilor parametrilor

Utilitatea grafică nu este prea diferită de utilitatea menuconf ig. Parametrii sunt, de asemenea, clasificați aici; după ce faceți clic pe o anumită categorie, se deschide o casetă de dialog cu o listă de parametri, fiecare dintre aceștia putând fi setat la o valoare care determină că instrumentul corespunzător ar trebui să fie folosit ca parte a nucleului, ca modul încărcabil sau nu la toate.

O astfel de casetă de dialog este prezentată în Fig.

Smochin. 9. Casetele de dialog ca aceasta setează parametrii de configurare a nucleului

Nucleul 2.4.2 de pe Red Hat Linux acceptă în mod implicit o arhitectură multiprocesor simetrică. Trebuie să setați opțiunea corespunzătoare la n dacă computerul dvs. are un singur procesor.

În dreapta fiecărei opțiuni este un buton Ajutor.

Un mare avantaj al utilitarului de configurare grafică (apreciat în special de cei care configurează nucleul pentru prima dată) este faptul că meniul reflectă dependențele dintre diferiți parametri. De exemplu, sub Blocare dispozitive, nu puteți instala suport RAID pentru kernel decât dacă activați Suportul pentru driverul de dispozitive multiple.

Dacă în utilitarul menuconfig dependența parametrilor unul de celălalt este arătată prin indentarea numelor parametrilor din meniu, atunci în utilitarul grafic este pur și simplu imposibil să setați combinații neautorizate de parametri. Lucrul cu un utilitar grafic vă ajută să înțelegeți dependențele dintre diferite module.

La sfârșitul meniului principal al utilitarului grafic, există comenzi similare comenzilor corespunzătoare ale utilitarului cu meniul în modul text.

Salvează și ieși. Creează un fișier de configurare a nucleului și părăsește utilitarul.

Renunță fără a salva. Ieșirea din utilitar fără a crea un fișier de configurare a nucleului.

Fără crearea unui fișier de configurare a nucleului folosind unul dintre utilitarele enumerate, recompilarea nucleului este imposibilă.

Încărcați configurația din fișier. Se încarcă fișierul de configurare creat anterior.

Stocați configurația în fișier. Scrierea datelor de configurare într-un fișier cu numele specificat (pentru utilizare ulterioară sau transfer către un coleg). Acest lucru nu afectează necesitatea comenzii Salvare și ieșire, care creează un fișier de configurare pentru recompilarea nucleului.

Compilarea și rularea unui nou kernel

După finalizarea configurației, trebuie să verificați un nou fișier de configurare (.config) situat în directorul / usr / src / linux-2 .4.2 (în funcție de numărul versiunii). Dacă fișierul .config este la locul său, puteți utiliza comanda make pentru a recompila nucleul.

De obicei, recompilarea nucleului durează de la 15 minute la câteva ore. Depinde de viteza procesorului, de cantitatea de memorie RAM și de o serie de alți factori, deci este convenabil să combinați toate comenzile introduse în timpul compilării într-una singură, separate prin punct și virgulă, astfel încât să fie executate secvențial.

Începerea procesului de recompilare

Comenzile de mai jos sunt destinate să creeze un nou nucleu, recompilând toate modulele sale și scriindu-le în directoarele de sistem corespunzătoare. (Acolo vor fi disponibile pentru comenzile kernelului.)

Pentru a recompila sistemul, introduceți următoarele comenzi.

# make dep; face curat; face bzlmage; realizează module; face module__instalați

Fiecare comandă make poate fi introdusă separat după finalizarea celei anterioare.

După introducerea acestor comenzi, liniile cu o descriere a directoarelor accesate de programul make și lansarea compilatorului gcc vor începe să clipească pe ecran. pentru a compila diferite fișiere sursă și a lega diferite blocuri. Fiecare dintre aceste comenzi va dura câteva minute pentru a fi finalizată.

Acum puteți crea un disc de boot pentru noul nucleu folosind comanda

Înainte de a executa această comandă, trebuie să introduceți o dischetă formatată în unitate. Discul de încărcare finalizat trebuie testat. Reporniți computerul fără a scoate discheta de pe unitate.

După executarea comenzilor de compilare a nucleului și revenirea la linia de comandă, se creează un nou nucleu. Pentru a porni sistemul cu un nou nucleu, acesta trebuie mutat în directorul standard din care va rula. Acest lucru se face prin introducerea comenzii

# cf /usr/src/linux-2.4.2/arch/i386/boot/bzlmage /boot/vmlinuz-2.4.2-2

În cele din urmă, rulați comanda lilo pentru a actualiza bootmap-ul:

Puteți specifica numărul versiunii în numele imaginii nucleului copiat. Este important ca numele acestui fișier să se potrivească cu numele specificat în fișierul /etc/lilo.conf.

Testarea noului nucleu

După mutarea noului fișier nucleu în directorul standard (specificat în fișierul lilo.conf), sistemul poate fi repornit cu nucleul respectiv.

Imediat după repornire, verificați funcționarea noilor instrumente pentru care a început recompilarea. Puteți face următoarele.

Compararea volumelor nucleelor \u200b\u200bvechi și noi. Verificați cantitatea de memorie utilizată de sistemul de operare prin emiterea comenzii gratuite.

Instalarea unui sistem de fișiere sau încercarea de a accesa un dispozitiv fără a încărca un modul kernel pentru a-l suporta (dacă suportul pentru acest dispozitiv este încorporat în kernel).

Utilizarea resurselor de rețea (de exemplu, aliasuri IP) care nu erau disponibile în nucleul anterior.

Poate fi necesar să verificați marcajul de timp al fișierului kernel curent. Pentru a face acest lucru, introduceți comanda uname. Acest lucru vă permite să vă asigurați că sistemul funcționează în prezent cu nucleul recompilat. Ștampila de timp și dată a nucleului trebuie să se potrivească cu ora de recompilare a nucleului.

Dacă răspunsul de la uname indică faptul că sistemul nu este pornit cu un nou kernel, tratez cu încărcătorul de încărcare LILO. Verificați dacă numele nucleului încărcat este corect în fișierul /etc/lilo.conf.

VEZI MAI MULT:

Compilarea și instalarea kernel-ului Linux de la sursă în Debian

Material de la Bryansk Linux Users Group și www.rm.pp.ru

Fiecare distribuție are propriile sale specificități pentru construirea unui nucleu, iar acest articol se concentrează exact asupra modului de a face acest lucru în Debian Etch. De asemenea, este dezvăluită întrebarea cum să aplicați acest patch sau altul la kernel, atunci când trebuie să acceptați o anumită funcționalitate sau hardware nou în sistemul dvs. Articolul este destinat în primul rând utilizatorilor mai avansați și nu există garanții că această metodă va funcționa așa cum ar trebui și că toate acțiunile și responsabilitatea descrise revin dvs.

  1. Notă
  2. Prima metodă. Construirea nucleului în pachete .deb
  3. Aplicați patch-uri
  4. Configurarea nucleului
  5. Compilarea nucleului
  6. Instalarea unui nou kernel
  7. Metoda a doua. mod „tradițional”
  8. Probleme
  9. Link-uri

Notă

Vor fi descrise două modalități de a construi un nucleu. În primul rând, vom descrie opțiunea de construire pentru pachetele .deb care pot fi instalate pe sistemul dvs. sau pe alt sistem.

A doua metodă, așa-numita cale „tradițională”.

Prima metodă. Construirea nucleului în pachete .deb

Instalarea pachetelor necesare pentru a compila nucleul

Mai întâi, să actualizăm listele de pachete:

# apt-get update

Instalați pachetele de care avem nevoie:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Descărcarea surselor de nucleu

Accesați directorul / usr / src, accesați www.kernel.org și selectați versiunea necesară a kernel-ului. În acest caz, va fi luată în considerare versiunea linux-2.6.23.1.tar.bz2. Descărcarea:

# cd / usr / src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Să despachetăm sursele și să creăm o legătură simbolică:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (eliminați linkul simbolic anterior) # ln -s linux-2.6.23.1 linux # cd / usr / src / linux

Aplicarea patch-urilor

Opțional și inutil, nu faceți acest lucru!

Uneori aveți nevoie de drivere sau instrumente care nu sunt acceptate în nucleul existent, cum ar fi tehnologia de virtualizare sau alte specificități care nu se află în versiunea curentă. În orice caz, acest lucru este corectat prin aplicarea așa-numitelor patch-uri (dacă există).

Deci, să presupunem că ați descărcat patch-ul necesar (să-l numim patch.bz2 de exemplu) în / usr / src. Să aplicăm patch-ul descărcat la sursele noastre (ar trebui să fiți în continuare în directorul / usr / src / linux):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 — run-run # bzip2 -dc /usr/src/patch.bz2 | patch -p1

Prima comandă este doar un test și nu se vor aplica modificări surselor. Dacă nu sunt raportate erori după prima comandă, puteți rula a doua comandă pentru a aplica patch-ul. Nu executați în niciun caz a doua comandă dacă au fost emise erori după prima!

În acest fel puteți corela sursele kernelului. De exemplu, există unele caracteristici care sunt disponibile numai în nucleul 2.6.23.8, iar sursele nu conțineau funcționalitatea necesară, dar patch-2.6.23.8.bz2 a fost lansat. Puteți aplica acest patch la sursele nucleului 2.6.23, dar nu la 2.6.23.1 sau 2.6.23.3 etc. Puteți citi mai multe despre acest lucru la:

Pre-corecții (pre-patch-uri) - echivalente cu versiunile alfa; patch-urile trebuie aplicate versiunii anterioare complete cu o versiune din 3 cifre (de exemplu, patch-ul 2.6.12-rc4 poate fi aplicat surselor 2.6.11, dar nu 2.6.11.10.)

Aceasta înseamnă că, dacă dorim să construim nucleul 2.6.23.8, trebuie să descărcăm codul sursă 2.6.23 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23 .tar.gz) aplicat în al doilea mod "traditonal"!

Aplicați patch-2.6.23.8.bz2 la nucleul 2.6.23:

# cd / usr / src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd / usr / src / linux # bzip2 -dc / usr / src / patch-2.6.23.8.bz2 | patch -p1 — run-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | patch -p1

Configurarea nucleului

Nu este o idee rea să folosești și fișierul de configurare existent al nucleului care rulează și pentru cel nou. Prin urmare, copiem configurația existentă în / usr / src / linux:

# make clean && make mrproper # cp / boot / config-`uname -r` ./.config

# face menuconfig

după care va fi încărcat meniul de configurare a nucleului grafic. Selectați elementul „Încărcați un fișier de configurare alternativ” din meniul configuratorului și faceți clic pe „OK”. Apoi (dacă este necesar) faceți modificările necesare la configurația kernelului navigând prin meniu (detaliile configurației kernelului pot fi găsite la www.google.com). Când ați terminat și faceți clic pe „Ieșire”, întrebarea „Doriți să salvați noua configurație de nucleu?” Va fi pusă, vom răspunde afirmativ „Da”.

Construirea kernel-ului Linux

Compilarea nucleului

Nucleul este construit în doar două comenzi:

# make-kpkg clean # fakeroot make-kpkg —initrd —append-to-version \u003d -cybermind kernel_image kernel_headers

După --append-to-version \u003d, puteți scrie orice nume doriți, dar trebuie să înceapă cu un semn minus (-) și să nu aibă spații.

Procesul de compilare și construire a pachetelor .deb poate dura destul de mult. Totul va depinde de configurația kernel-ului și de capacitățile procesorului dvs.

Rezolvarea problemei cu crearea initrd.img

Recent, a apărut o eroare în Debian că, după instalarea pachetelor cu nuclee compilate în modul descris aici, fișierul corespunzător /boot/initrd.img nu este creat. Pentru a o remedia pentru un kernel deja instalat, va trebui să creați manual initrd.img:

update-initramfs -c -k<полная-версия-ядра>

Pentru a rezolva problema „pentru viitor” - comentați, după cum se arată, a doua dintre liniile citate mai jos în fișierul /etc/kernel/postinst.d/initramfs-tools:

# kernel-package trece un argument suplimentar; hack pentru a nu rula sub kernel-package # [-z "$ 2"] || ieșire 0

Instalarea unui nou kernel

Când construirea nucleului se finalizează cu succes, două pachete .deb vor fi create în directorul / usr / src:

# cd / usr / src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - nucleul propriu-zis și linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb - headers nucleele necesare pentru a construi alte module (de exemplu, atunci când construiți module de driver nVidia). Instalați-le:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb

(Aceste pachete pot fi acum instalate pe alt sistem și nu va mai fi nevoie să le construiți din nou.)

Gata, instalarea este completă, meniul bootloader, instalarea unui nou disc RAM și kernel se va face automat. Tot ce rămâne este să reporniți:

Metoda a doua. mod „tradițional”

Realizăm toate punctele descrise mai sus ÎNAINTE de punctul „Compilarea nucleului”.

# make all # make modules_install # make install

Ca de obicei, versiunea poate dura mult timp, în funcție de configurația kernelului și de capacitățile procesorului.

Principalul dezavantaj al acestei metode este că, dacă actualizați frecvent nucleele, atunci după un timp se va acumula un număr mare de ele și veți dori să ștergeți cele neutilizate. Pentru a fi mai ușor, puteți construi nucleul și alte fișiere care sunt instalate în sistem folosind comenzile „make modules_install” și „make install” din pachetul deb (sau mai bine zis, două începând de la kernel 2.6.27) similar cu prima metodă, dar vom folosi aici scripturile nucleului în sine:

# face totul # face deb-pkg

Două fișiere .deb vor apărea în director la un nivel deasupra directorului sursă. Am compilat nucleul în directorul /usr/src/linux-2.6.27.10 și fișierele au apărut în directorul / usr / src /

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Nucleul este instalat cu comanda

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Nucleele vechi pot fi eliminate, de exemplu, din synaptic'a

Pasii urmatori

Nucleul este construit și instalat, dar acum trebuie să creați un disc RAM (fără de care nucleul pur și simplu nu va porni) și trebuie să actualizați încărcătorul de încărcare GRUB. Pentru a face acest lucru, efectuați următoarele:

# depmod 2.6.23.1 # apt-get install yaird

Instalați discul RAM:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Să actualizăm bootloader-ul cu ușurință și fără durere:

Gata, bootloader-ul și noul kernel sunt gata, trebuie doar să reporniți:

Probleme

Dacă după repornire, noul nucleu pe care l-ați selectat nu pornește, reporniți și selectați nucleul dvs. anterior și puteți încerca să faceți din nou întregul proces pentru a construi un nucleu funcțional. În acest caz, nu uitați să ștergeți liniile nucleului care nu funcționează în /boot/grub/menu.lst.

Compilare kernel Linux

De ce să vă deranjați să compilați singur nucleul?
Poate că întrebarea principală care se pune despre compilarea nucleului este: "De ce ar trebui să fac asta?"
Mulți consideră că este o pierdere de timp inutilă pentru a se dovedi a fi un „Linuxoid” inteligent și avansat. De fapt, compilarea nucleului este foarte importantă. Să presupunem că ați cumpărat un laptop nou și camera dvs. web nu funcționează. Actiunile tale? Căutați un motor de căutare și căutați o soluție la o problemă cu privire la această problemă. Destul de des se poate dovedi că camera dvs. web rulează pe un kernel mai nou decât al dvs. Dacă nu știți ce versiune aveți, introduceți uname -r în terminal, ca urmare veți obține versiunea kernel (de exemplu, linux-2.6.31-10). Compilarea kernel este, de asemenea, utilizată pe scară largă pentru a crește performanța: faptul este că, în mod implicit, în distribuții nucleele sunt compilate „pentru toată lumea”, motiv pentru care include un număr mare de drivere de care este posibil să nu aveți nevoie. Deci, dacă cunoașteți bine hardware-ul folosit, puteți dezactiva driverele inutile în etapa de configurare.

De asemenea, este posibil să activați suport pentru mai mult de 4 Gigabytes de RAM fără a modifica adâncimea de biți a sistemului. Deci, dacă tot trebuie să ai propriul kernel, să începem să compilăm!

Obținerea sursei nucleului.
Primul lucru de făcut este să obțineți codul sursă pentru versiunea corectă a nucleului. De obicei, trebuie să obțineți cea mai recentă versiune stabilă. Toate versiunile oficiale ale nucleului sunt disponibile la kernel.org. Dacă aveți deja instalat un server X (computer de acasă), puteți accesa site-ul din browserul dvs. preferat și puteți descărca versiunea necesară în arhiva tar.gz (gzip comprimat). Dacă lucrați în consolă (de exemplu, nu ați instalat încă serverul X sau configurați serverul), puteți utiliza un browser de text (de exemplu, elinks). De asemenea, puteți utiliza managerul standard de descărcare wget:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.1.tar.gz
Vă rugăm să rețineți, totuși, că trebuie să cunoașteți numărul de versiune exact pe care îl doriți.

Despachetarea arhivei sursă.
După ce ați primit arhiva cu codul sursă, trebuie să despachetați arhiva într-un folder. Acest lucru se poate face de la administratorii de fișiere grafice (delfin, nautilus etc.) sau prin intermediul mc. Alternativ, utilizați comanda tradițională tar:
tar -zxvf cale_pentru_arhivare
Acum aveți un folder și un cod sursă, navigați la acesta folosind comanda cd kernel_source_directory (pentru a lista directorele dintr-un folder, utilizați comanda ls).

Configurarea nucleului.
După ce ați trecut la directorul sursă al nucleului, trebuie să efectuați o configurație a nucleului „20 de minute”. Scopul său este să lase doar driverele și funcțiile necesare. Toate comenzile trebuie deja executate în numele superutilizatorului.

face config - modul consolă al configuratorului.

faceți menuconfig - modul consolă ca listă.

make xconfig - modul grafic.

După efectuarea modificărilor necesare, salvați setările și ieșiți din configurator.

Compilare.
Este timpul pentru etapa finală a asamblării - compilare. Acest lucru se face cu două comenzi:
make && make install
Prima comandă va compila toate fișierele în codul mașinii, iar a doua va instala noul kernel pe sistemul dumneavoastră.
Așteptăm de la 20 de minute la câteva ore (în funcție de puterea computerului).

Configurarea și compilarea kernel-ului Linux

Nucleul este instalat. Pentru ca acesta să apară în lista grub (2), tastați (ca rădăcină)
update-grub
Acum, după repornire, apăsați „Escape” și veți vedea noul nucleu listat. Dacă nucleul nu pornește, atunci pur și simplu porniți cu vechiul nucleu și configurați-l mai atent.

KernelCheck - compilarea nucleului fără a intra în consolă.
KernelCheck vă permite să construiți nucleul într-un mod complet grafic pentru Debian și distribuțiile bazate pe acesta... După lansare, KernelCheck va oferi cele mai recente versiuni ale nucleului și patch-urilor, iar după consimțământul dvs., va descărca codul sursă, va lansa configuratorul grafic. Programul va compila nucleul în pachetele .deb și le va instala. Trebuie doar să reporniți.

Arhiva articolelor:
Mai 2017
Martie 2017
Aprilie 2016
Martie 2016
octombrie 2013
Septembrie 2013
Mai 2013
Martie 2013
Noiembrie 2012
Iulie 2012
Iunie 2012
Aprilie 2012
Martie 2012
Februarie 2012
Aprilie 2011
Martie 2011
Februarie 2011
Ianuarie 2011
Decembrie 2010
2010 noiembrie
Octombrie 2010
Septembrie 2010
August 2010
Iulie 2010
Iunie 2010
Mai 2010
Aprilie 2010
Martie 2010

Aleatoriu:

Aurorae: motorul de decorare a ferestrelor pentru KDE

Sblogul va fi rescris în .NET

Linuxnow.ru: Planuri pentru viitor

Bolgenos. Refutarea „Telekon”

Recuperare rapidă GRUB 2

Free Software Foundation și Copyleft.

Colegi: toți
Linux pentru toată lumea

Bannerele noastre:


Setați banner

Construirea kernel-ului Linux
Buna dragi cititori. Astăzi vă voi povesti despre o lecție atât de interesantă cum se construiește nucleul Linux... De ce ai avea nevoie să construiești singur nucleul? De fapt, pot exista numeroase motive: necesitatea de a utiliza caracteristici suplimentare ale nucleului, de a optimiza nucleul pentru computer, de a actualiza nucleul la cea mai recentă versiune. În acest articol, vă voi ghida prin procesul de obținere a sursei, configurarea, compilarea și instalarea unui kernel Linux pentru a vă ajuta să obțineți suportul cryptoloop (criptare loopback) în kernel.

Obținerea codului sursă
În primul rând, trebuie să obținem codul sursă, acest lucru se poate face în moduri diferite și din surse diferite. Propun să luăm în considerare doar două: depozite de sistem, site-ul oficial al nucleului. Depozitele vor conține cel mai probabil versiuni ale nucleului care sunt mai vechi decât site-ul oficial, dar aceste surse ar trebui să includă patch-uri și remedieri de la producătorul distribuției dvs. Linux. Această abordare este de preferat dacă nu aveți nevoie de o nouă tehnologie sau caracteristică care este acceptată doar de nucleele mai noi. Puteți vizualiza toate versiunile surselor de nucleu care sunt conținute în depozitele sistemului dvs. introducând în terminal (acest lucru este valabil pentru Ubuntu Linux, în alte distribuții numele pachetului poate diferi):

Căutare Apt-cache linux-source

Comanda va lista pachetele disponibile:


După cum puteți vedea, am doar un pachet cu versiunea curentă și un pachet cu versiunea 3.5 (de fapt, versiunea curentă a nucleului este și 3.5). Pentru a extinde lista de nuclee disponibile în acest mod, merită să conectați depozite suplimentare. Putem obține nucleul cu comanda: sudo apt-get install linux-source

linux-source - numele pachetului cu codul sursă, în cazul dvs. poate fi diferit.
După finalizarea comenzii, un fișier va apărea în directorul / usr / src, în cazul meu - linux-source-3.5.0.tar.bz2. Să mergem în dosar, să despachetăm arhiva și, pentru comoditate, să creăm un link simbolic:

Cd / usr / src sudo tar -xjvf linux-source-3.5.0.tar.bz2 sudo ln -s linux-source-3.5.0 linux

Dacă aveți nevoie de cea mai recentă versiune a nucleului, o puteți descărca oricând de pe kernel.org. Este demn de remarcat faptul că site-ul conține atât versiuni stabile ale nucleelor, cât și versiuni destinate testării și revizuirii (de obicei numele lor conține abrevierea „RC” - Release candidate). Dacă nu doriți probleme inutile cu sistemul, vă sfătuiesc să descărcați versiunea stabilă:

Să salvăm arhiva cu sursele în folderul / usr / src. Pentru a despacheta arhiva rezultată, poate fi necesar să instalați utilitare suplimentare:

Sudo apt-get install xz-utils

Acum, ca și în cazul descărcării nucleului din depozite, trebuie să despachetăm arhiva cu sursele și să creăm un link:

Cd / usr / src sudo tar -xpJf linux-3.8.5.tar.xz sudo ln -s linux-3.8.5.tar.xz linux

Configurare și compilare.
Așa că ajungem la cel mai interesant lucru. Înainte de a începe, să instalăm câteva pachete suplimentare:

sudo apt-get install build-essential kernel-package libncurses-dev

Vom crea o nouă configurație bazată pe nucleul utilizat în prezent de sistem:

Cd / usr / src / linux sudo face oldconfig

Dacă configurați o versiune mai nouă a nucleului decât este pe sistem, atunci este probabil să fi apărut în acesta parametri care nu se află în configurația nucleului curent. În acest caz, programul vă va cere să faceți o alegere, puteți lăsa valorile implicite pur și simplu apăsând tasta Enter. În orice caz, configurația nu este încă completă. Acum putem face setările de care avem nevoie prin meniul de creare a configurației:

Sudo face menuconfig

Programul de configurare va începe în terminal:

Aici, opțiunile de configurare sunt împărțite în secțiuni pentru o navigare mai ușoară. După cum am spus mai sus, trebuie să includ suport kriptoloop în kernel. Pentru a face acest lucru, accesați secțiunea „Drivere de dispozitiv” și de la aceasta la subsecțiunea „Blocare dispozitive”:

Găsim parametrul „Cryptoloop Support”, alături este litera „M” ceea ce înseamnă că suportul pentru dispozitivele de criptare va fi adăugat ca un modul kernel care poate fi activat cu comanda modprobe. Trebuie să includem suport pentru această tehnologie direct în nucleu, astfel încât să fie întotdeauna acceptată. Mutați focalizarea pe parametrul „Asistență Cryptoloop” și apăsați bara de spațiu. Litera „M” trebuie înlocuită cu simbolul „*”, ceea ce înseamnă că suportul pentru această tehnologie va fi „cusut” în nucleu. Atenție, un gol înseamnă că tehnologia nu va fi acceptată deloc.

Apăsați tasta „Tab” și apăsați butonul „Exit” până când vi se solicită să salvați modificările:

Răspundem „Da”. Am finalizat cu succes configurația!
Să începem să compilăm. Mai întâi, ștergem fișierele rămase din ansamblurile anterioare, dacă porniți asamblarea pentru prima dată, nu este necesar să executați această comandă: sudo make-kpkg clean

Începem compilarea:

Sudo make-kpkg -j4 --initrd --append-to-version \u003d -mykernel kernel_image kernel_headers

J4 este un indicator care indică câte fire de utilizat pentru compilare. Va accelera foarte mult compilarea pe procesoarele multi-core. Numărul 4 de aici indică 4 fluxuri. Setați la fel de multe subiecte pe cât numărul de nuclee ale procesorului dvs. „vede” sistemul.
-mykernel - prefix care indică faptul că nucleul a fost compilat manual, îl puteți schimba, de fapt, nu afectează nimic.

Deci procesul de compilare a început. Poate dura de la 10 minute la câteva ore, în funcție de cât de puternic este computerul:

Instalarea nucleului pe sistem

După finalizarea compilării, două fișiere cu extensia „deb” ar trebui să apară în directorul / usr / src, acestea sunt pachetele de instalare ale noului nostru nucleu și pot fi instalate folosind utilitarul dpkg:

sudo dpkg -i linux-image-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb

Felicitări! Kernel-ul este instalat, acum sistemul va porni în mod implicit cu acest kernel, dar dacă aveți probleme cu noul kernel, puteți porni oricând cu cel vechi selectându-l pe ecranul de boot - Grub. Aceasta încheie articolul de astăzi și vă doresc succes, dragi cititori!

Informațiile disponibile despre construirea unui kernel variază foarte mult, așa că vom descrie construirea unui kernel special pentru Ubuntu. Vom încerca. astfel încât să nu existe erori în comenzile scrise în acest articol. Atunci când descriem procesul de compilare, nu ne vom gândi doar la obținerea nucleului. Obținerea unui nucleu funcțional nu este suficient. Pentru deținătorii de carduri nVidia, iată cum puteți obține un sistem cu grafică de lucru pe noul kernel. Mai mult, grafica va funcționa atât în \u200b\u200bvechiul nucleu, cât și în cel nou.

1. Instalarea surselor de nucleu

În primul rând, avem nevoie de sursele de nucleu. Pentru Ubuntu 7.04 sunt deja în depozit, trebuie să găsiți pachetul linux-sursa-factura (în cazul nostru va fi linux-source-2.6.20) și instalați-l (toate acestea se pot face prin Sinaptic). După instalarea acestui pachet, în director / usr / src un fișier numit linux-source-2-6-20.tar.bz2.

Facem sub sudo comanda

chmod 777 / usr / src

Mergem ca utilizator obișnuit în director / usr / src și despachetați acest fișier

tar -jxvf linux-source-2-6-20.tar.bz2

Va apărea un director cu surse / usr / src / linux-source-2-6-20... Ștergeți fișierul arhivă (veți avea nevoie de drepturi de root).

2. Instalarea pachetelor însoțitoare

Pentru a construi, veți avea nevoie de mai multe pachete kernel-package, libncurses5-dev, fakeroot... Le instalăm prin Sinaptic... Desigur, compilatorul trebuie instalat și pe sistem. gcc și dev-pachete pentru biblioteci de sistem, cum ar fi libc6-dev.

3. Crearea unui fișier de configurare a nucleului

Acum avem nevoie de o configurare a nucleului cu care a fost construit nucleul pentru Ubuntu. Accesați directorul / boot, și vedem acolo un fișier de genul config-2.6.20-15-generic... Avem nevoie de ea. Copiați-l în directorul sursă / usr / src / linux-source-2-6-20 și redenumiți-l în .config... Vă rugăm să rețineți că numele fișierului începe cu un punct, nu este o greșeală de scriere.

Acum fiind în director / usr / src / linux-source-2-6-20, dăm comanda sub utilizatorul obișnuit

aceasta va lansa interfața de configurare a nucleului bazată pe text. De asemenea, puteți rula configurația în modul grafic

În ambele cazuri, se va deschide o interfață cu bife, prin care configurăm nucleul. Se pare că fișierul este deschis în mod implicit. .config, care conține în prezent configurația kernel-ului standard Ubuntu.

Ce doriți să configurați - gândiți-vă singur, există o mulțime de documentații în limba rusă despre această problemă pe internet. Scopul acestui articol este doar de a descrie pașii efectivi implicați în compilarea nucleului Ubuntu.

La sfârșitul configurării, selectați elementul „Salvați deșeurile de configurare”, specificați numele fișierului, altul decât .config, de exemplu .config_my_01... Plecăm.

Acum redenumiți .config în .config_ubuntu... Și vei ajunge cu două fișiere - .config_ubuntu și .config_my_01... Puteți vedea diferențele dintre setările implicite și configurația dvs., astfel

diff .config .config_my_01

Acum vă copiați configurația .config_my_01 sub nume .config... Acestea. veți primi 3 fișiere de configurare. Compilația va utiliza fișierul .config... Dosare .config_ubuntu și .config_my_01 vom fi ajutați în viitor pentru o nouă compilație. Acest lucru se întâmplă în cazul în care noul nucleu se dovedește a fi inoperabil sau buggy.

4. Compilație

Înainte de compilare, asigurați-vă că verificați disponibilitatea spațiului liber (în secțiunea în care se află sursele). Ar fi frumos să 4-5Gb (!) în rezervă. În timpul compilării, dimensiunea directorului sursă poate crește 3,5 GB... Puteți verifica spațiul liber cu ajutorul comenzii

Acum, fiind un utilizator obișnuit în director / usr / src / linux-source-2-6-20, dăm o comandă care va șterge în codul sursă obiectele compilate de cineva, care au rămas din compilarea anterioară și au fost în arhivă.

Apoi, prin sudo, obținem drepturi de root și începem compilarea.

make-kpkg --initrd --revision \u003d mybuild.1.0 kernel_image kernel_headers

Unde în loc de „ mybuild.1.0„scrieți ce aveți nevoie. Sunt permise litere, cifre, puncte în engleză. Nu sunt permise punctele de subliniere și liniuțele.

De fapt, într-un mod amiabil, compilarea kernel-ului ar trebui făcută sub drepturile unui utilizator obișnuit. În mod formal, crearea unui binar de nucleu nu diferă de compilarea unui binar pentru orice alt program. Dar nu compilăm manual (prin comenzi precum faceți module bzImage), și în semiautomat (prin make-kpkg). Și acest program, după ce a trecut compilarea, va rula programul de sub el însuși dpkg-deb A obtine deb-pachet cu nucleu. În acest moment vor fi necesare drepturile rădăcinii.

Acum să vedem ce face comanda de mai sus. Începe să compileze nucleul și apoi creează deb-pachet numit linux-image-version.deb, care va conține modulele kernel binare și kernel (acest lucru se va face datorită obiectivului kernel_image). Și va fi creat și deb-pachet numit linux-headers-version.deb, va conține anteturile nucleului (acest lucru se face datorită obiectivului kernel_headers). Pachetele primite vor fi în director / usr / src.

Vedeți ce fișiere sunt în acestea deb-pachete, puteți cuceritor (în Kubuntu) făcând clic dreapta pe elementul de interes deb-fișier și alegerea " Meniul pachetului Kubuntu" -> "Afișați informațiile despre pachetInformațiile se vor forma destul de încet, aproximativ un minut, deoarece pachetele sunt mari.

5. Instalarea nucleului

Acum instalăm nucleul. Să ai drepturi de superutilizator în director / usr / src, dăm porunca

dpkg -i linux-image-version.deb

după care nucleul dvs. (fișier vmlinuz-2.6.20.3-ubuntu1) va fi plasat în director / boot (nici kernelurile anterioare nu vor merge nicăieri, vor rămâne în locurile lor) și în director / lib / modules, lângă directorul cu module de nucleu obișnuite (în Ubuntu 7.04 numit /lib/modules/2.6.20-15-generic) va apărea un director cu module ale noului dvs. nucleu (în cazul nostru va fi /lib/modules/2.6.20.3-ubuntu1). Noul kernel va fi scris automat în /boot/grub/menu.lst.

În principiu, puteți reporni deja și în ecranul de încărcare Grub va apărea un element nou cu nucleul dvs. Noul nucleu va apărea în partea de sus a listei. Dar nu ne grăbim încă, dar vom da o altă poruncă

dpkg -i linux-headers-version.deb

care va instala anteturile nucleului în director / usr / src / linux-headers-version, în cazul nostru va fi directorul /usr/src/linux-headers-2.6.20.3-ubuntu1... Vom avea nevoie de aceste anteturi, de exemplu, pentru a recompila driverele nVidia pentru un nou nucleu.

6. Reporniți

Suprasarcină și în meniu Grub veți vedea două elemente noi - boot normal cu nucleul dvs. și boot în modul consolă minimă. Alegeți primul element. Dacă miezul nu a căzut imediat în Panica miezuluiatunci acesta este un semn bun. Așteptați finalizarea descărcării. Dacă aveți noroc, Ubuntu va porni în modul grafic și va afișa un mesaj grafic de conectare. În acest caz, nu trebuie să citiți mai departe.

Dar pentru utilizatorii de carduri nVidiacare utilizează driverele instalate prin „Managerul de driver proprietar” sau folosesc driverele din pachet nvidia-glx (sau acolo nvidia-glx-new), Garantez 99% că nu veți avea noroc! Și nu veți vedea grafica sub noul kernel!

7. Instalarea driverelor nVidia de pe nvidia.com

Pentru ca X-urile să funcționeze sub noul kernel, primul lucru care îmi vine în minte este să instalați driverele de pe site-ul nvidia.com sub noul kernel. Și aceasta este decizia greșită! De îndată ce lemnul de foc este instalat sub noul nucleu, graficele din vechiul dvs. nucleu verificat nu vor mai funcționa (datorită faptului că fișierele driverului nVidia sunt strâns legate de versiunea și numele nucleului). Și din moment ce nu ați testat cu adevărat performanța noului nucleu, puteți obține un sistem „cu un nucleu nativ, dar fără grafică” și „un nucleu buggy, dar cu grafică”. Cred că această situație nu se va potrivi nimănui.

În popularul articol „Fizică nucleară pentru gospodine”, există instrucțiuni despre cum să obțineți grafică în ambele nuclee. Este sugerat următorul mod - pentru a avea pachetul de instalare a lemnului de foc gata de pe nvidia.com și, dacă doriți să porniți sub un anumit nucleu, trebuie mai întâi să porniți în modul consolă al acestui nucleu, să instalați lemnul de foc și apoi să porniți normal. Cred că această abordare va mulțumi și foarte puțini oameni.

Vom face ca grafica să funcționeze atât în \u200b\u200bnucleul vechi, cât și în cel nou, și pentru aceasta nu va trebui să rulați de fiecare dată instalarea (compilarea) lemnului de foc. Pentru a face acest lucru, va trebui să îndeplinim o singură condiție - ca lemnele de foc grafice sub diferite nuclee să aibă aceeași versiune.

Scurt plan de acțiune - punem lemne de foc de pe amplasament nvidia.com pentru nucleul standard în întregime. Asigurați-vă că funcționează. Apoi din același pachet am pus lemn de foc pentru un miez de casă, dar în modul „singurul modul grafic”.

8. Instalarea driverelor nVidia pentru un kernel obișnuit

Tot ce este scris mai jos este potrivit și pentru cei care tocmai au decis să instaleze noi lemne de foc nVidia sub miez standard!

Descărcarea de pe site nvidia.com lemn de foc pentru Linux. Am descărcat versiunea de lemn de foc pentru mine 96.43 ... Fișierul se numește NVIDIA-Linux-x86-96.43.01-pkg1.run... Dar puteți încerca alte versiuni stabile care sunt prezente pe site. nVidia.

Pentru instalare, creați în director / usr / src subdirector numit nvidia, copiați acest fișier acolo. Fiind în acest subdirector, acordăm fișierului permisiunea de a executa

chmod 777 NVIDIA-Linux-x86-96.43.01-pkg1.run

Asta-i tot, aici se termină lucrul în interfața grafică pentru o vreme. Înainte de a ieși din modul grafic, rulați Sinapticși asigurați-vă că aveți

  • aptitudine. Este un ambalaj frontal peste managerul de pachete pentru modul text.
  • linux-headers-2.6.20-15. Acestea sunt fișierele antet pentru nucleul dvs. standard.
  • linux-headers-2.6.20-15-generic. Nu voi spune exact de ce naiba este acest pachet, dar lasă-l să fie.

Un sfat bun este să aveți un text tipărit al acestui articol pe o bucată de hârtie sau să îl salvați într-un fișier text care poate fi vizualizat din modul text.

Repornim în modul consolă al nucleului obișnuit (în Grub există un astfel de punct). ÎN Ubuntu veți obține automat drepturi de root, chiar și parola nu este necesară pentru a intra. Acum trebuie să îndepărtăm lemnul nVidiacare sunt în sistem. Dacă ați instalat lemn de foc prin „Managerul de driver proprietar” (sau prin instalarea pachetului nvidia-glx sau nvidia-glx-new), apoi pachetul nvidia-glx / nvidia-glx-new trebuie să eliminați din sistem și nu doar să dezinstalați, ci să dezinstalați în modul purjare.

Sunt un utilizator destul de prost și, în loc să mă ocup de opțiuni dpkg, în consolă folosesc programul aptitudine... Tastați comanda

și te vei regăsi într-o cochilie care arată Sinaptic... Va fi un sfat cheie în partea de sus. Pentru a accesa meniul, apăsați Ctrl + t (incomod, dar ce să faci). În meniu
săgeți și taste introduce găsiți și selectați elementul " Găsi". Scriem un șir de căutare - nvidia-glx... Punctul culminant va atinge pachetul dorit. Apelăm din nou meniul și găsim elementul „ Purjare". Faceți clic pe acesta și pachetul cu intermitent va fi marcat pentru dezinstalarea completă a tuturor fișierelor sale din sistem (pachetul în sine va rămâne în cache, poate fi reinstalat dacă este necesar). Va apărea o solicitare în partea de jos - " e - Examinează ,! - elimina". Presa" e"- și vedeți ce pachete vor fi eliminate. Dacă din nvidia-glx pachetele vor depinde, vor fi și ele dezinstalate. Acesta este de obicei un pachet nvidia-glx-dev... Este în regulă să se retragă și el.

Acum apăsăm „ ! "(pentru cei înzestrați - Shift + 1), prin urmare, suntem de acord cu schimbările noastre. Apoi apăsăm „ q„(exit). La ieșire, programul va elimina pachetele pe care le-am marcat.

Acum un astfel de moment. Acum suntem la nivel init 1 (numai consolă, o grămadă de servicii nu rulează). Dacă rulați instalarea driverului nVidia, atunci va jura că poate serviciul dvs. nu funcționează devfscare începe de obicei de la nivel 3 ... Prin urmare, dăm porunca

telinit 3

iar sistemul va încărca serviciile necesare și, în același timp, va ieși din modul single-user (vor apărea mai multe console care pot fi comutate cu tastele ALT + F1...ALT + F6). Pentru lucrări suplimentare, avem nevoie doar de două console. Apropo, sistemul va încerca să încarce grafica; tocmai am scos șoferul. Și va rămâne înăuntru 7 consola cu ecran gol. Nu vă panicați, apăsați ALT + F1, vedem prima consolă, acolo introducem datele de conectare, parola, la fel ca în datele de conectare grafice (numai după autentificare și parolă, apăsăm introduce dar nu TAB).

După conectare, sunăm mc sub superutilizator

Accesați directorul / usr / src / nvidia

./NVIDIA-Linux-x86-96.43.01-pkg1.run -e

Opțiune " -e„ne \u200b\u200bva permite să vedem un raport despre acțiuni și să vedem fișiere conflictuale. Începem instalarea. Suntem de acord cu licența. ftp nvidia. Noi vorbim Bine că modulele vor fi create de noi. Întrebările de introducere a căilor, trebuie doar să faceți clic introduce.

În cele din urmă, înainte de instalarea în sine, va fi afișată o listă a fișierelor care vor fi instalate. Și la începutul acestei liste (dacă este găsit) va apărea fișiere conflictuale... Va fi scris „ Fisier de rezerva ..."- acestea sunt. În cazul meu, acestea erau dosare

/usr/lib/xorg/modules/extensions/libGLcore.so
/usr/lib/xorg/modules/extensions/libglx.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/lib/modules/2.6.20-15-generic/volatile/nvidia.ko
/usr/include/GL/glext.h
/usr/include/GL/gl.h
/usr/include/GL/glxext.h
/usr/include/GL/glx.h

Acestea sunt fișierele din pachet nvidia-restricționat-module... Faptul este că dacă pur și simplu ștergeți acest pachet, atunci împreună cu aceste fișiere, toate fișierele pentru nVidia-chipseturi ( nVidia la urma urmei, nu doar plăcile video). Și va trebui, de asemenea, să eliminați pachetele dependente linux-restricționat-module-2.6.20-15-generic, linux-restricționat-module-generice și linux-generic... Prin urmare, nu este de dorit să eliminați acest pachet. Prin urmare, vom acționa diferit.

De îndată ce vedeți o astfel de listă, conectați-vă la a doua consolă (tranziție - ALT + F2), alerga

și mutați metodic aceste fișiere aflate în conflict într-un director separat în directorul de acasă, referindu-vă la lista din prima consolă. De ce să transferați și să nu ștergeți? Faptul este că numele fișierelor din Linux sunt „lizibile de om” și puteți face cu ușurință o greșeală și șterge fișierul greșit.

După ștergerea tuturor fișierelor destinate Backup, reveniți la prima consolă. Întrerupeți instalarea ( Ctrl + c) și reporniți-l. În cazul în care un " Fisier de rezerva ...„nu mai mult, apoi finalizați instalarea. Totul ar trebui să meargă fără probleme. Puteți fi de acord cu soluția xorg.conf, un fișier de rezervă este încă disponibil.

Acum atenție! Cel mai important lucru este să nu supraîncărcați în acest moment! Și du-te la dosar / etc / default / linux-limited-modules-commonși adăugați la opțiune DISABLED_MODULES module nv și nvidia_new... Am făcut-o așa

DISABLED_MODULES \u003d "nv nvidia_new"

Dacă acest lucru nu se face, atunci descărcați fișierul (pe care l-ați șters!) /lib/modules/2.6.20-15-generic/volatile/nvidia.ko va automat restaurat din pachet nvidia-restricționat-module... Și fișierul pe care l-ați compilat la instalarea driverelor este numit /lib/modules/2.6.20-15-generic/kernel/drivers/video/nvidia.ko... Deci, când X începe, va fi găsit primul fișier. Și nu va ajunge la fișierul dvs. Și X-urile nu vor putea porni.

Repornim în nucleul standard în modul complet. Dacă totul este făcut corect, X va începe. Bucură-te, măcar ai încă un sistem de lucru.

9. Instalarea driverelor nVidia pentru un nucleu de casă

Acum rămâne ultimul pas - pentru a face grafica să funcționeze în noul kernel. Totul este destul de simplu aici. Porniți în modul consolă al nucleului de casă. Dăm porunca

conectați-vă și la prima rulare a consolei

Accesați directorul / usr / src / nvidia și începeți să instalați lemn de foc cu comanda

./NVIDIA-Linux-x86-96.43.01-pkg1.run -Ke

Opțiuni " -Bine"vă permite să construiți doar modulul grafic nvidia.ko pentru nucleul curent (iar fișierul va fi plasat în director / lib / modules / current_kernel_name / kernel / drivers). Niciun alt fișier comun, care, de exemplu, ar fi localizat în / usr / lib ... ca atunci când este compilat cu opțiunea „-e”, nu va fi generat.

În același mod ca atunci când compilăm în nucleul standard, suntem de acord cu căile apăsând introduce... Ajungem la ecranul în care vor fi listate fișierele care vor fi instalate. Dacă există fișiere conflictuale la începutul acestei liste " Fisier de rezerva ...", comutați la consola adiacentă și ștergeți (transferați) aceste fișiere.

După eliminarea fișierelor aflate în conflict, în prima consolă, întrerupeți instalarea ( Ctrl + c) și rulați-l din nou (cu „ -Bine„natural). După finalizarea instalării, reporniți selectând Grub în modul complet cu nucleul dvs.

X ar trebui să înceapă. Vă puteți bucura a doua oară - aveți un sistem cu un nucleu de casă și grafică de lucru.

În orice moment, puteți porni acum sub nucleul dorit, iar grafica ar trebui să funcționeze peste tot. Asta e tot.

Începătorii care încep să cunoască Linux, își pun în primul rând o întrebare rezonabilă: cum și de unde să descarce Linux? S-ar părea că acest lucru este dificil, dar întrebarea apare totuși și sunt adesea întrebat.

Decideți o distribuție Linux

Pentru început, cel mai probabil trebuie să descărcați o distribuție Linux. Deoarece cuvântul general Linux poate fi înțeles ca nucleul Linux, precum și orice distribuție Linux. Mai târziu, în articol, voi folosi uneori aceste două cuvinte ca echivalent. Întrebarea alegerii unui kit de distribuție depășește scopul acestui articol. Vă puteți familiariza cu distribuțiile Linux din directorul distribuțiilor Linux.

Să presupunem că ați ales un kit de distribuție pentru dvs. și doriți să îl descărcați. Fiecare distribuție Linux poate fi de obicei descărcată gratuit în diferite formate. De obicei sunt fișiere ISO. Un fișier ISO este o imagine a unui CD sau DVD. Cel mai adesea, versiunile CD sau DVD diferă doar prin faptul că versiunile DVD au mai multe programe diferite pe care le puteți instala direct de pe disc, fie în timpul procesului de instalare Linux, fie după instalare în orice moment.

Ce Linux descărcați (i386, x86_64, amd64 ...)

Linux poate fi descărcat și pentru diverse platforme. Dezvoltatorii de distribuție oferă de obicei versiuni de Linux pe 32 și 64 de biți. Pe care îl alegeți depinde în primul rând de bititatea procesorului. De regulă, toate procesoarele moderne au 64 de biți.

Versiunile Linux pe 32 de biți sunt denumite de obicei i386, iar versiunile pe 64 de biți sunt x86_64 (pentru procesoare Intel) și amd64 (pentru procesoare Amd).

De asemenea, puteți întâlni nume precum arm, mips, ppc și altele. Acestea sunt versiuni Linux special construite pentru procesoarele Arm, Mips, PowerPC.

Computerele și laptopurile de acasă folosesc de obicei procesoare Intel sau Amd, deci cel mai probabil vă va interesa exact i386, x86_64, amd64.

De unde să descărcați distribuția Linux

Deci, ați decis o distribuție Linux. Trebuie doar să accesați site-ul dezvoltatorului kitului de distribuție și să găsiți o secțiune pentru descărcare acolo, se poate numi ceva de genul Descărcări, Obțineți-l, Obțineți ISO, Descărcați, Descărcați.

Una dintre cele mai rapide modalități de a descărca Linux este utilizarea fișierelor torrent. Funcționează după cum urmează. Vă descărcați un fișier torrent și utilizați clientul torrent pentru a începe descărcarea Linux în sine. Clienții Torrent pentru Linux pot fi găsiți în catalogul de programe din secțiunea „Clienți Torrent”.

Aceeași versiune a unei distribuții Linux poate fi găzduită pe diferite servere (oglinzi). Cu cât serverul este mai aproape de dvs. geografic și cu cât lățimea de bandă este mai mare, cu atât veți descărca mai repede Linux. O oglindă populară rusă de unde puteți descărca Linux este o oglindă de la Yandex: https://mirror.yandex.ru sau versiunea FTP ftp://mirror.yandex.ru

Voi lua în considerare mai multe locuri de unde puteți descărca distribuții Linux populare gratuit:

Set de distribuțieUnde pot descărca
Ubuntu
  • Descărcați Ubuntu Desktop (Ubuntu de bază pentru uz casnic)
Debian
Arch Linux
Gentoo
Opensuse
Fedora
  • Imagine ISO Fedora (Workstation Personal Edition)
  • Oglindă FTP pe Yandex (pentru uz personal, alegeți versiunea stației de lucru)
Slackware
AlteDirectorul distribuțiilor Linux (pe pagina fiecărei distribuții există un link către site-ul oficial).

De unde să descărcați nucleul Linux

Orice versiune a sursei kernel-ului Linux poate fi descărcată întotdeauna de pe kernel.org.

Cum se comandă un disc Linux

Dacă niciuna dintre metode nu vi se potrivește, atunci puteți găsi entuziaști în orașul dvs. care vor fi de acord să vă ofere un disc Linux. Mai mult, există o mulțime de comunități Linux diferite acum.

Se încarcă ...Se încarcă ...