Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:laboratoare:lab_compilare [2013/02/24 17:59]
paul.vlase [initrd - ramdisk-ul inițial]
so2:laboratoare:lab_compilare [2013/05/24 13:38] (current)
ghennadi.procopciuc [Instalare imagine kernel]
Line 105: Line 105:
 Sursele de kernel de Linux pot fi obținute din pachete specifice distribuției sau pot fi descărcate sursele [[http://​www.kernel.org|oficiale]] ale lui [[http://​en.wikipedia.org/​wiki/​Linus_Torvalds|Linus Torvalds]]. Sursele de kernel de Linux pot fi obținute din pachete specifice distribuției sau pot fi descărcate sursele [[http://​www.kernel.org|oficiale]] ale lui [[http://​en.wikipedia.org/​wiki/​Linus_Torvalds|Linus Torvalds]].
  
-În cazul în care se alege varianta folosirii surselor oficiale, se recomandă folosirea unui [[http://www.kernel.org/​mirrors|mirror]] din [[http://​www.kernel.org/​mirrors/​countries/​html/​RO.html|Romania]].+În cazul în care se alege varianta folosirii surselor oficiale, se recomandă folosirea unui [[http://mirrors.kernel.org/​|mirror]] din [[http://​www.kernel.org/​mirrors/​countries/​html/​RO.html|Romania]].
  
 Sursele kernel-ului se găsesc în subdirectorul ''/​pub/​linux/​kernel/​v2.6''​ (pentru versiunea 2.6). Se poate folosi http sau ftp pentru obținerea surselor: Sursele kernel-ului se găsesc în subdirectorul ''/​pub/​linux/​kernel/​v2.6''​ (pentru versiunea 2.6). Se poate folosi http sau ftp pentru obținerea surselor:
Line 198: Line 198:
 ==== initrd - ramdisk-ul inițial ==== ==== initrd - ramdisk-ul inițial ====
  
-    ​**nitrd** (initial ramdisk) este un sistem de fișiere temporar având ca suport memoria RAM (ramdisk) care este folosit la pornirea sistemului (booting). Initrd este folosit pentru a încărca driver-ele necesare încărcării sistemului de fișiere rădăcina.+**initrd** (initial ramdisk) este un sistem de fișiere temporar având ca suport memoria RAM (ramdisk) care este folosit la pornirea sistemului (booting). Initrd este folosit pentru a încărca driver-ele necesare încărcării sistemului de fișiere rădăcina.
  
 Motivația folosirii initrd este flexibilitatea. Distributiile Linux au un kernel generic Linux care trebuie să boot-eze de pe sisteme cu hardware diferit. Kernel-ul inclus trebuie să fie modular, nefiind posibilă compilarea statică a tuturor opțiunilor fără a mări semnificativ imaginea kernel-ului. Este, în consecinta, necesar să se cunoască la booting locația sistemului de fișiere rădăcină și ce driver-e vor trebui încărcate în kernel. Această problemă este rezolvată prin introducerea initrd ca pas intermediar în pasul de boot-ing. Acesta actioneaza ca un sistem de fisiere rădăcină temporar. Conținutul acestui sistem rădăcină este dat de imaginea de initrd. Motivația folosirii initrd este flexibilitatea. Distributiile Linux au un kernel generic Linux care trebuie să boot-eze de pe sisteme cu hardware diferit. Kernel-ul inclus trebuie să fie modular, nefiind posibilă compilarea statică a tuturor opțiunilor fără a mări semnificativ imaginea kernel-ului. Este, în consecinta, necesar să se cunoască la booting locația sistemului de fișiere rădăcină și ce driver-e vor trebui încărcate în kernel. Această problemă este rezolvată prin introducerea initrd ca pas intermediar în pasul de boot-ing. Acesta actioneaza ca un sistem de fisiere rădăcină temporar. Conținutul acestui sistem rădăcină este dat de imaginea de initrd.
Line 220: Line 220:
 Faza de compilare presupune **obținerea** imaginii de kernel și compilarea **modulelor** de kernel. Acest lucru se realizează prin intermediul a doua comenzi: Faza de compilare presupune **obținerea** imaginii de kernel și compilarea **modulelor** de kernel. Acest lucru se realizează prin intermediul a doua comenzi:
  
-<​code>​+<​code ​make>
 # make bzImage # make bzImage
 # make modules # make modules
 </​code>​ </​code>​
  
-Prima comandă creează o imagine de kernel comprimată. Acest pas poate dura de la cateva ​minute până la câteva zeci, depinzând de configurația hardware. ​Dupa încheiere, imaginea comprimată se regasește în ''​arch/​i386/​boot/​bzImage''​ (pentru o arhitectura x86).+Prima comandă creează o imagine de kernel comprimată. Acest pas poate dura de la câteva ​minute până la câteva zeci, depinzând de configurația hardware. ​După încheiere, imaginea comprimată se regasește în ''​arch/​i386/​boot/​bzImage''​ (pentru o arhitectura x86).
  
-A doua comandă compilează **modulele** care pot fi încărcate de kernel. Acest pas poate dura de cateva ​ori mai mult decat pasul precedent. Fișierele obiect ce reprezintă modulele (cu extensia ''​.ko''​) rezidă în directoarele asociate, urmând a fi instalate.+A doua comandă compilează **modulele** care pot fi încărcate de kernel. Acest pas poate dura de câteva ​ori mai mult decât ​pasul precedent. Fișierele obiect ce reprezintă modulele (cu extensia ''​.ko''​) rezidă în directoarele asociate, urmând a fi instalate.
  
 ==== Instalare ==== ==== Instalare ====
Line 241: Line 241:
  
 Imaginea de kernel va trebui copiată în ''/​boot'':​ Imaginea de kernel va trebui copiată în ''/​boot'':​
-<​code>​+<​code ​bash>
 # cd /​usr/​src/​linux # cd /​usr/​src/​linux
 # cp arch/​x86/​boot/​bzImage /​boot/​vmlinuz-2.6.24.2mykernel # cp arch/​x86/​boot/​bzImage /​boot/​vmlinuz-2.6.24.2mykernel
Line 250: Line 250:
 În plus față de imaginea de kernel, se recomandă copierea fișierului de configurare și a tabelei de simboluri. În plus față de imaginea de kernel, se recomandă copierea fișierului de configurare și a tabelei de simboluri.
  
-<​code>​+<​code ​bash>
 # cd /​usr/​src/​linux # cd /​usr/​src/​linux
 # cp .config /​boot/​config-2.6.24.2mykernel # cp .config /​boot/​config-2.6.24.2mykernel
Line 270: Line 270:
 <​code>​ <​code>​
 # cd /boot # cd /boot
-mkinitrd ​-o /​boot/​initrd.img-2.6.24.2mykernel 2.6.24.2mykernel+mkinitramfs ​-o /​boot/​initrd.img-2.6.24.2mykernel 2.6.24.2mykernel
 </​code>​ </​code>​
  
Line 306: Line 306:
 Pentru rularea noului kernel, va trebui repornit sistemul și optat pentru noul kernel din meniul bootloader-ului. ​ Pentru rularea noului kernel, va trebui repornit sistemul și optat pentru noul kernel din meniul bootloader-ului. ​
  
-    ​*TENTIE**: Se recomandă păstrarea fostului kernel, în cazul în care apar probleme la noul kernel compilat. Probleme pot aparea din neincluderea driver-elor necesare în cazul în care nu se folosește initrd, omiterea driver-ului de sistem de fișiere necesar etc.+**ATENTIE**: Se recomandă păstrarea fostului kernel, în cazul în care apar probleme la noul kernel compilat. Probleme pot aparea din neincluderea driver-elor necesare în cazul în care nu se folosește initrd, omiterea driver-ului de sistem de fișiere necesar etc.
  
 E posibil sa avem la dispoziție un kernel care ruleaza dar caruia ii lipsesc funcționalitați (de exemplu networking),​ pentru ca s-a omis compilarea driver-elor pentru placa de rețea. În acest caz se poate recompila kernel-ul pentru introducerea noilor funcționalități. Noua compilare va dura mai puțin în cazul în care modificările sunt minime. E posibil sa avem la dispoziție un kernel care ruleaza dar caruia ii lipsesc funcționalitați (de exemplu networking),​ pentru ca s-a omis compilarea driver-elor pentru placa de rețea. În acest caz se poate recompila kernel-ul pentru introducerea noilor funcționalități. Noua compilare va dura mai puțin în cazul în care modificările sunt minime.
so2/laboratoare/lab_compilare.1361721569.txt.gz · Last modified: 2013/02/24 17:59 by paul.vlase
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0