Asamblarea nucleului in ubuntu

Asamblarea nucleului în Ubuntu. Instrucțiuni pas cu pas.

Informațiile disponibile pe construirea kernel-ul variază foarte mult, astfel încât vom descrie nucleu construit special pentru Ubuntu. Vom încerca. că, în instrucțiunile scrise în acest articol, nebylo erori. În descrierea procesului de compilare nu se oprește numai la primirea nucleului. Ia un nucleu funcțional - acest lucru nu este suficient. Pentru proprietarii de carduri nVidia, aici este o descriere a modului de a obtine sistemul de a lucra cu grafica de pe noul miez. Mai mult decât atât, programul va funcționa în vechiul nucleu și nou.

1. Instalați sursa de kernel

În primul rând, vom avea nevoie sursele de kernel. Pentru Ubuntu 7.04 acestea sunt deja în magazia, aveți nevoie pentru a găsi pachetul linux-source-tratata (in cazul nostru va fi un linux-source-2.6.20) și instalați-l (acest lucru se poate face prin Synaptic). După instalarea Pactului, în directorul / usr / src va fi un fișier numit linux-source-2-6-20.tar.bz2.

Noi facem o comanda sudo

chmod 777 / usr / src


Du-te utilizatorul obișnuit în directorul / usr / src și despacheta acest fișier

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


Va sursă directorul / usr / src / linux-source-2-6-20. Fișierul arhivă este șters (va avea nevoie de acces root).


2. Instalarea pachetului de însoțire

Pentru a asambla nevoia este încă kernel-pachet. libncurses5-dev. fakeroot. Setați-le prin Synaptic. Desigur, sistemul trebuie să fie, de asemenea, instalat compilatorul gcc și dev -packet pentru bibliotecile de sistem, cum ar fi, de exemplu, libc6-dev.


3. Crearea unui fișier de configurare kernel

Acum avem nevoie de o configurație de bază, care se duce la miezul Ubuntu. Mergem în / boot. și a vedea în cazul în care tipul de fișier de configurare-2.6.20-15-generic. El ne este necesar. Copiați-l în directorul de sursa / usr / src / linux-source-2-6-20, și redenumiți-l .config. Rețineți că numele de fișier începe cu un punct, nu este o greșeală de scriere.

Acum, fiind în directorul / usr / src / linux-source-2-6-20. dând ca o comandă normală utilizator


Aceasta va lansa o interfață de configurare a kernel-ului de text. Puteți rula, de asemenea, de configurare în modul GUI


În ambele cazuri, deschide interfeysik cu căpușe, prin care configurăm kernel-ul. Se pare ca implicit doar deschide fișierul .config. care este în prezent o configurație standard și cuprinde ubuntu nucleu.

La finalul configurării, selectați elementul „Save kofiguratsiyu tratata“, altele decât numele fișierului .config. de exemplu .config_my_01. Plecăm.

Acum, redenumiți .config în .config_ubuntu. Și veți obține două fișiere - .config_ubuntu și .config_my_01. Puteți vedea diferența dintre standard și configurația dumneavoastră ca aceasta

dif .config .config_my_01


Acum, copiați .config_my_01 de configurare sub numele .config. Ie veți obține 3 fișier de configurare. Când compilarea de a utiliza fișierul .config. .config_ubuntu .config_my_01 fișiere și ne va ajuta în viitor pentru o nouă compilație. Acesta este doar în cazul în care noul kernel va fi nefuncțională sau buggy.

Înainte de compilarea în mod necesar verifica disponibilitatea de spațiu liber (la secțiunea în care se află sursa). Ar fi frumos Met 4-5Gb (!) În stoc. Atunci când elaborează un repertoriu de dimensiunea sursei poate creste pana la 3,5Gb. Verificați spațiul liber cu comanda


Acum, fiind un utilizator normal în directorul / usr / src / linux-source-2-6-20. Noi da comanda, care va șterge codul sursă compilat de cineva obektniki, care a rămas de compilare anterioară și stocate în arhivă.


Apoi, prin intermediul sudo obține acces root și porniți compilarea.

make-kpkg --initrd --revision = mybuild.1.0 kernel_image kernel_headers


În cazul în care în loc de „mybuild.1.0“ scrie ceea ce ai nevoie. litere permise în engleză, cifre, perioade. Subliniere și liniuțe nu sunt permise.

De fapt, într-un mod amiabil, compilarea de kernel, este necesar să se facă un utilizator normal. Formal, crearea kernel-ul binar este același ca și compilarea executabilele dintr-un alt program. Dar noi nu compila manual (prin comenzi, cum ar fi module make bzImage), cât și în semi (prin make-kpkg). Și acest program, după trecerea de compilare va fi rulat dintr-un program de dpkg-deb pentru a obține deb -Package cu kernel-ul. Aici, la acest punct și va necesita acces root.

Acum, să ne uităm la ceea ce face comanda de mai sus. Se compilează kernel-ului și apoi creează deb -packet numit linux-image-versiya.deb. care va fi module de kernel și kernel binare (acest lucru se realizează prin scop kernel_image). Și, de asemenea, va crea un deb -Package numit linux-headers-versiya.deb. acesta va fi antetele kernel (acest lucru se face prin scop kernel_headers). Pachetele rezultate vor fi în directorul / usr / src.

A se vedea ce fișiere sunt în aceste deb -Package pot fi în Konqueror (în Kubuntu), făcând clic dreapta pe interesat deb-fișier și selectând „meniu pachet Kubuntu“ -> „Afișare informații pachet“. Informațiile vor fi formate destul de încet, timp de aproximativ un minut, ca ambalajele mari.

Acum ne-am stabilit kernel-ul. Fiind ca root în directorul / usr / src. vom da comanda

dpkg linux-image -i-versiya.deb


după care kernel-ul (fișierul vmlinuz-2.6.20.3-ubuntu1) vor fi plasate în directorul / boot (toate de bază anterioare, de asemenea, nu merg nicăieri, va rămâne în vigoare), și în directorul / lib / module. lângă directorul cu module de nucleu obișnuit (în Ubuntu 7.04 numit /lib/modules/2.6.20-15-generic) apare cu directorul module de noul kernel (în cazul nostru va /lib/modules/2.6.20.3-ubuntu1). Noul kernel va fi înregistrată automat în /boot/grub/menu.lst.

În principiu, acesta poate fi deja supraîncărcată și ecran de boot Grub va fi un nou element de bază pentru dumneavoastră. Noul kernel-ul va apărea în listă. Dar, în timp ce nu în grabă, și să o alta echipa

dpkg linux-headers -i-versiya.deb


care se va instala antetele de kernel în directorul / usr / src / linux-antete-versiune. în cazul nostru va /usr/src/linux-headers-2.6.20.3-ubuntu1 director. Aceste antete avem nevoie, de exemplu, pentru a recompilați driverele nVidia pentru noul kernel.

Dar utilizatorii de carduri nVidia. care a fost utilizat de către conducătorul auto, instalat prin „driver manager de proprietate“, sau de a folosi un driver din pachetul nvidia-GLX (sau acolo nvidia-glx-nou), am da o garanție de 99% că nu ești norocos! Iar grafica sub noul kernel, nu veți vedea!


7. Instalarea driverelor site-ului nvidia.com nVidia

Pentru a obține un X care lucreaza sub noul kernel, primul lucru care vine în minte - este de a instala un nou site nvidia.com de nucleu. Și este o decizie greșită! De îndată ce lemnul va fi stabilită în conformitate cu noul nucleu din vechiul nucleu verificat programul nu va mai funcționa (datorită faptului că șoferii nVidia fișiere legat rigid la versiunea și numele kernel-ului). Și, din moment ce performanța noului kernel, nu ați verificat într-adevăr, puteți obține sistemul „cu nucleul nativ, dar nu și grafică“ și „nucleu buggy, dar cu grafica.“ Cred că una o astfel de situație nu se potrivește.

În popular articol „fizică nucleară pentru gospodine“, există recomandări privind modul de a planifica pentru ambele nuclee. Propunem următorul mod - să aibă la pachetul de instalare gata cu foc nvidia.com, și, dacă doriți să încărcați un nucleu specific, trebuie să porniți mai întâi în modul consolă acest foc set de bază, iar apoi au pornit în mod normal. Cred că această abordare prea puțini oameni se bucură.

Ne vom asigura că grafica va funcționa cu nuclee mai vechi, iar în noul kernel, și nu trebuie să fie de fiecare dată când executați instalarea (compilare) de lemn de foc. Pentru a face acest lucru vom avea nevoie pentru a efectua doar o singură condiție - ca lemn de foc grafic din diferite nuclee au fost aceeași versiune.

Un plan de acțiune scurtă - a pus foc site-ul nvidia.com pentru kernel-ul implicit în întregime. Ne asigurăm că acestea funcționează. Apoi, din același pachet am pus lemnele pentru kernel-ul home-made, dar modul de „numai modulul grafic“.


8. Instalarea driverelor nVidia sub kernelul normale

Ceva mai jos este scris, și este potrivit pentru cei care tocmai au decis să instaleze lemn noi nVidia sub kernel standard,!

Descărcarea de pe site-ul de foc nvidia.com sub linuh. M-am scuturat lemn de foc versiunea 96.43. Fișierul este numit NVIDIA-Linux-x86-96.43.01-pkg1.run. Dar puteți încerca alte versiuni stabile, care sunt prezente pe site-ul nVidia.

Pentru a instala, a crea directorul directorul / usr / src numit nvidia. pentru a copia acest fișier. În timp ce în acest subdirector, de a da fișierul executa permisiunea

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


Totul despre această lucrare în interfața grafică pe expirarea timpului. Înainte de a părăsi grafrezhima, executați Synaptic. și asigurați-vă că aveți

  • aptitudini. Această interfață coajă de managerul de pachete pentru mod text.
  • linux-headers-2.6.20-15. Aceste fișiere antet (headere) de kernel implicit.
  • linux-headers-2.6.20-15-generic. Doar nu spun de ce dracu acest pachet, dar lăsați-l să fie.


Un sfat bun - aveți un text raspechatany al acestui articol pe o bucată de hârtie, sau salvați-l ca un fișier text care poate fi vizualizat într-un mod text.

Transferat la un modul nucleu consola convențional (în Grub are un punct). În Ubuntu, veți primi automat drepturi de root, chiar și parola introduse în mod necorespunzător. Acum avem de a elimina lemn de foc nVidia. care sunt în sistem. Dacă ați instalat lemnul printr-un „manager de conducător auto de proprietate“ (sau prin instalarea pachetului nvidia-glx sau nvidia-glx-nou), pachetul nvidia-glx / nvidia-glx-nou este necesar pentru a elimina din sistem, și nu doar dezinstalarea și dezinstalarea în mod de purjare.

Sunt utilizator destul de prost, și în loc să se ocupe de opțiuni dpkg. în programul consola de utilizare de aptitudini. tastați comanda


și vă veți găsi într-o carapace care seamănă cu otalenno Synaptic. In partea de sus se va răsturna cheile. Pentru a ajunge la meniul, apăsați Ctrl + T (incomod, dar ce să facă). În meniul
săgeți și butonul Enter găsi și selectați elementul „Find“. Scrierea unui șir de căutare - nvidia-glx. Repere va primi pachetul dorit. Apelul meniu, și de a găsi acolo un punct de „Purjare“. Push-l, și un pachet pe care există iluminare, vor fi marcate pentru dezinstalare completă toate fișierele de sistem (pachetul în sine va rămâne în memoria cache, va fi posibil să reinstalați, dacă este necesar). În partea de jos vi se va cere - „e - Examinați -. Eliminați“. Apăsați „e“ - și a vedea ce pachete vor fi eliminate. În cazul în care pachetele vor depinde de nvidia-glx, atunci ei vor fi dezinstalate. De obicei, acest pachet nvidia-glx-dev. Nu-ți face griji, va fi de asemenea șterse.

Acum apăsați (pentru supradotati - Shift + 1), Astfel, suntem de acord cu amendamentele noastre „!“. Apoi apăsați "Q" (output). Când ieșiți din program va elimina pachetele ne marcate.

Acum, un astfel de moment. Suntem acum la un nivel de 1 init (consola doar, o mulțime de servicii nu sunt difuzate). Dacă începe instalarea driverelor nVidia. se va plânge că este posibil să nu rulați DevFS serviciu. care începe de obicei la nivelul 3. Prin urmare, da comanda

și sarcina de sistem este serviciul dorit, și, în același timp, dintr-un singur mod de către utilizator (acesta va apărea mai multe console, care pot fi activate tastele ALT + F1. ALT + F6). Pentru munca viitoare, avem nevoie doar de două console. Apropo, sistemul va încerca să încarce programul, nu va reuși, pentru că conducător auto tocmai am eliminat. Și va rămâne în consolă al 7-lea, cu un ecran gol. Nu intrați în panică, apăsați ALT + F1. Vedem prima consolă, în cazul în care introduceți numele de utilizator, parola, precum și în intrarea grafică (numai după autentificare și parola apăsați Enter în loc de TAB).

Conectare, suna mc superutilizator


Du-te la / usr / src directorul de instalare / nvidia și începe comanda lemn de foc


Opțiunea „-e“ ne va permite să vedem raportul privind acțiunea și a vedea fișierele în conflict. Vom începe instalarea. Suntem de acord cu licența. Refuzăm reluarea surse din ftp Nvidia. Noi spunem OK, care va fi creat de noi ins. Pe întrebările căile de intrare trebuie doar să apăsați Enter.

În final, chiar înainte de instalare va fi afișată o listă de fișiere care vor fi instalate. La începutul listei (dacă este găsit) par fișiere aflate în conflict. Acesta va fi scris „fișier copie de rezervă.“ - aici este ceea ce au. În cazul meu a fost fișierele

De îndată ce vedeți o listă logintes a doua consolă (du-te - ALT + F2), executați


și metodic transporta aceste fișiere aflate în conflict la un fir într-un dosar separat în directorul acasă, referindu-se la lista din prima consolă. De ce să îndure și să nu ștergeți? Faptul este că numele de fișier în Linuhe „chelovekonechitaemye“, și puteți face cu ușurință o greșeală și a șterge fișierul greșit.

Odată ce ați eliminat toate fișierele pentru backup. înapoi la prima consolă. Întrerupe setarea (Ctrl + C) și rulați-l din nou. În cazul în care „fișierul copie de siguranță.“ Nu va mai fi, atunci va termina instalarea. Totul ar trebui să meargă fără probleme. Puteți de acord cu xorg.conf de corecție. vseravno sodastsya fișier de backup.

Acum, atenție! Cel mai important lucru în acest moment nu se restarta! Și du-te la fișierul / etc / default / restricționat-linux-module-comune. și se adaugă modulele de opțiune DISABLED_MODULES nv și nvidia_new. Am făcut acest lucru


Dacă acest lucru nu se face, atunci data viitoare fișierul (care v-ați șters!) /lib/modules/2.6.20-15-generic/volatile/nvidia.ko va fi automat din pachetul nvidia-restricționate-module. Și fișierul pe care ați compilat în timpul instalării de drivere, numite /lib/modules/2.6.20-15-generic/kernel/drivers/video/nvidia.ko. Deci, primul fișier va fi găsit atunci când rulați „X“. Și nu va veni la fișierul. Și X nu va fi capabil să boot-eze.

Reboot în kernel-ul standard, în modul complet. Dacă este făcută corect, zapustyatsya X lui. Bucură-te, cel puțin încă aveți un sistem funcțional.


9. Instalarea driverelor nVidia pentru nucleu de casă

Acum, un ultim pas - face programul de lucru în noul kernel. Este destul de simplu. Boot în consolă modul nucleu de casă. vom da comanda


Conectări, și a alerga în prima consolă