Differences

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

Link to this comparison view

so2:laboratoare:lab_compilare [2013/02/10 02:10]
127.0.0.1 external edit
so2:laboratoare:lab_compilare [2013/05/24 13:38] (current)
ghennadi.procopciuc [Instalare imagine kernel]
Line 57: Line 57:
 Observații:​ Observații:​
   *cerințele de mai sus sunt valabile pentru versiunea de kernel 2.6.31.6.   *cerințele de mai sus sunt valabile pentru versiunea de kernel 2.6.31.6.
-  *utilitarele ​{{{e2fsprogs}}}{{{jfsutils}}}{{{reiserfsprogs}}}{{{xfsprogs}}} sunt folosite pentru sistemul de fișiere asociat +  *utilitarele ​''​e2fsprogs''​''​jfsutils''​''​reiserfsprogs''​''​xfsprogs'' ​sunt folosite pentru sistemul de fișiere asociat 
-  *{{{PPP}}} și {{{isdn4k-utils}}} sunt necesare numai dacă legăturile sistemului la Internet sunt de tip PPP sau ISDN.+  *''​PPP'' ​și ''​isdn4k-utils'' ​sunt necesare numai dacă legăturile sistemului la Internet sunt de tip PPP sau ISDN.
  
 ==== Ce hardware există în sistem? ==== ==== Ce hardware există în sistem? ====
  
 Un kernel compilat poate oferi suport doar pentru hardware-ul utilizatorului,​ micșorând astfel dimensiunea imaginii obținute. De asemenea, cunoașterea hardware-ului în sistem este necesară pentru un kernel mai rapid și alegerea opțiunilor de compilare și a driver-elor de dispozitiv corecte. Un kernel compilat poate oferi suport doar pentru hardware-ul utilizatorului,​ micșorând astfel dimensiunea imaginii obținute. De asemenea, cunoașterea hardware-ului în sistem este necesară pentru un kernel mai rapid și alegerea opțiunilor de compilare și a driver-elor de dispozitiv corecte.
-Informații despre controller-ele Ethernet, VGA, placa de sunet se află cu ajutorul comenzii ​{{{lspci}}} (din pachetul ​{{{pciutils}}}):+Informații despre controller-ele Ethernet, VGA, placa de sunet se află cu ajutorul comenzii ​''​lspci'' ​(din pachetul ​''​pciutils''​):
  
 <​code>​ <​code>​
Line 77: Line 77:
 </​code>​ </​code>​
  
-Tipul procesorului se află cu ajutorul ​{{{procfs}}} (montat în {{{/proc}}}).+Tipul procesorului se află cu ajutorul ​''​procfs'' ​(montat în ''​/proc''​).
  
 <​code>​ <​code>​
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:
  
 <​code>​ <​code>​
Line 114: Line 114:
 </​code>​ </​code>​
  
-Se dezarhivează sursele. Se recomandă crearea unei legături simbolice cu numele ​{{{linux}}} către directorul ce contine sursele.+Se dezarhivează sursele. Se recomandă crearea unei legături simbolice cu numele ​''​linux'' ​către directorul ce contine sursele.
  
 <​code>​ <​code>​
Line 156: Line 156:
 </​code>​ </​code>​
  
-Pentru utilizarea unei interfețe text-based (ncurses), va trebui instalat pachetul ​{{{libncurses-dev}}}. Pentru utilizarea unei interfețe folosind front-end GTK (de obicei într-un desktop environment GNOME) vor trebui instalate pachetele ​{{{libgtk2.0-dev}}} și {{{libglade2.0-dev}}}. Pentru QT va trebui instalat pachetul ​{{{libqt4-dev}}}.+Pentru utilizarea unei interfețe text-based (ncurses), va trebui instalat pachetul ​''​libncurses-dev''​. Pentru utilizarea unei interfețe folosind front-end GTK (de obicei într-un desktop environment GNOME) vor trebui instalate pachetele ​''​libgtk2.0-dev'' ​și ''​libglade2.0-dev''​. Pentru QT va trebui instalat pachetul ​''​libqt4-dev''​.
  
 Avantajul folosirii interfetei ncurses este faptul că este relativ ușor de utilizat și nu necesită prezenta unui mediu grafic. Avantajul folosirii interfetei ncurses este faptul că este relativ ușor de utilizat și nu necesită prezenta unui mediu grafic.
Line 175: Line 175:
 </​code>​ </​code>​
  
-rezultă în afișarea unui meniu. Acesta conține mai multe intrări de configurare ({{{General setup}}}{{{Networking}}}{{{Device drivers}}}{{{File systems}}}, etc.) care pot fi utilizate pentru configurări ale unui subdomeniu. Acestea pot conține, la rândul lor, alte subdomenii de configurare.+rezultă în afișarea unui meniu. Acesta conține mai multe intrări de configurare (''​General setup''​''​Networking''​''​Device drivers''​''​File systems''​, etc.) care pot fi utilizate pentru configurări ale unui subdomeniu. Acestea pot conține, la rândul lor, alte subdomenii de configurare.
  
-O opțiune finită de configurare (spre exemplu ​{{{Device Drivers -> Block Devices -> Normal floppy disk support}}}) poate prezenta utilizatorului trei optiuni de configurare:​+O opțiune finită de configurare (spre exemplu ​''​Device Drivers -> Block Devices -> Normal floppy disk support''​) poate prezenta utilizatorului trei optiuni de configurare:​
  
-  *absența completă din kernel-ul finit (se apasa {{{<N>}}}+  *absența completă din kernel-ul finit (se apasa ''​<N>''​
-  *compilarea acesteia în cadrul imaginii de kernel (**built-in**) (se apasa {{{<Y>}}}+  *compilarea acesteia în cadrul imaginii de kernel (**built-in**) (se apasa ''​<Y>''​
-  *compilarea acesteia sub forma de **modul de kernel** (se apasa {{{<M>}}})+  *compilarea acesteia sub forma de **modul de kernel** (se apasa ''​<M>''​)
  
  
-Compilarea **built-in** înseamnă introducerea codului obiect asociat opțiunii în imaginea de kernel care va rezulta. Compilarea în forma de **modul de kernel** înseamnă că pentru activarea acelei facilități,​ kernel-ul va încărca modulul (codul obiect asociat) și îl va descărca atunci când nu are nevoie de el. Kernel-ul este astfel extensibil și pentru adăugarea anumitor facilități nu este nevoie de recompilare. Pentru lucrul cu module de kernel vor trebui adăugate opțiunile din Loadable module support ({{{Enable loadable module support}}}).+Compilarea **built-in** înseamnă introducerea codului obiect asociat opțiunii în imaginea de kernel care va rezulta. Compilarea în forma de **modul de kernel** înseamnă că pentru activarea acelei facilități,​ kernel-ul va încărca modulul (codul obiect asociat) și îl va descărca atunci când nu are nevoie de el. Kernel-ul este astfel extensibil și pentru adăugarea anumitor facilități nu este nevoie de recompilare. Pentru lucrul cu module de kernel vor trebui adăugate opțiunile din Loadable module support (''​Enable loadable module support''​).
  
 Multe opțiuni nu vor fi încorporate în cadrul kernel-ului întrucât nu sunt necesare. Altele pot fi compilate numai **built-in**. Opțiunile care suportă varianta **modul de kernel** sau **built-in** se recomandă a fi compilate ca **module de kernel** pentru a fi încărcate la nevoie. Pe procesoarele moderne, timpul în care se încarcă/​descarcă module este suficient de mic încat compilarea ca **modul de kernel** sau **built-in** să nu afecteze performanța. Multe opțiuni nu vor fi încorporate în cadrul kernel-ului întrucât nu sunt necesare. Altele pot fi compilate numai **built-in**. Opțiunile care suportă varianta **modul de kernel** sau **built-in** se recomandă a fi compilate ca **module de kernel** pentru a fi încărcate la nevoie. Pe procesoarele moderne, timpul în care se încarcă/​descarcă module este suficient de mic încat compilarea ca **modul de kernel** sau **built-in** să nu afecteze performanța.
Line 192: Line 192:
 Precizarea tipului de procesor și a arhitecturii este un pas necesar pentru a crea un kernel eficient. Majoritatea opțiunilor țin de preferințele utilizatorilor (desi probabil multi vor alege suport de networking, sunet etc.) sau de hardware-ul existent. Precizarea tipului de procesor și a arhitecturii este un pas necesar pentru a crea un kernel eficient. Majoritatea opțiunilor țin de preferințele utilizatorilor (desi probabil multi vor alege suport de networking, sunet etc.) sau de hardware-ul existent.
  
-Dacă se dorește crearea unui kernel pentru dezvoltare (development) atunci vor trebui activate opțiunile din {{{Kernel hacking}}}; acestea oferă informații de debug suplimentare,​ cu dezavantajul unui kernel mai mare și mai lent.+Dacă se dorește crearea unui kernel pentru dezvoltare (development) atunci vor trebui activate opțiunile din ''​Kernel hacking''​; acestea oferă informații de debug suplimentare,​ cu dezavantajul unui kernel mai mare și mai lent.
  
-Configurația este salvată în cadrul fișierului ​{{{.config}}} din directorul rădăcină al surselor. Este indicat să se realizeze un backup al acestui fișier înainte de configurare pentru a avea o configurație sigură la care să se revină în cazul apariției de probleme.+Configurația este salvată în cadrul fișierului ​''​.config'' ​din directorul rădăcină al surselor. Este indicat să se realizeze un backup al acestui fișier înainte de configurare pentru a avea o configurație sigură la care să se revină în cazul apariției de probleme.
  
 ==== 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 205: Line 205:
  
  
-  *{{{Device Drivers -> ATA/​ATAPI/​MFM/​RLL support}}} - de obicei trebuie compilate **built-in** driverele IDE specifice hardware-ului folosit pentru a putea beneficia de modurile Ultra DMA. Daca nu, se pot pune driverele generice ({{{generic/​default IDE chipset support}}} și {{{Generic PCI IDE Chipset Support}}}+  *''​Device Drivers -> ATA/​ATAPI/​MFM/​RLL support'' ​- de obicei trebuie compilate **built-in** driverele IDE specifice hardware-ului folosit pentru a putea beneficia de modurile Ultra DMA. Daca nu, se pot pune driverele generice (''​generic/​default IDE chipset support'' ​și ''​Generic PCI IDE Chipset Support''​
-  *{{{Device Drivers -> SCSI device support}}} +  *''​Device Drivers -> SCSI device support''​ 
-  *{{{File systems}}} (va trebui configurat ca **built-in** suportul pentru sistemul de fișiere rădăcină)+  *''​File systems'' ​(va trebui configurat ca **built-in** suportul pentru sistemul de fișiere rădăcină)
  
  
-Pentru utilizarea initrd este necesar pachetul ​{{{initrd-tools}}}.+Pentru utilizarea initrd este necesar pachetul ​''​initrd-tools''​.
  
 ==== (re)denumirea versiunii de kernel ​ ==== ==== (re)denumirea versiunii de kernel ​ ====
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 ====
  
-Instalarea presupune copierea imaginii de kernel și a modulelor in locurile prevăzute și configurarea bootloader-ului pentru a boot-a noul kernel. Acest pas se leagă de directorul ​{{{/boot}}} unde se găsesc toate fișierele importante.+Instalarea presupune copierea imaginii de kernel și a modulelor in locurile prevăzute și configurarea bootloader-ului pentru a boot-a noul kernel. Acest pas se leagă de directorul ​''​/boot'' ​unde se găsesc toate fișierele importante.
  
 ==== Instalare imagine kernel ==== ==== Instalare imagine kernel ====
  
-Imaginea de kernel și fișierele asociate sunt copiate în directoarele necesare cu ajutorul comenzii ​{{{make install}}}.+Imaginea de kernel și fișierele asociate sunt copiate în directoarele necesare cu ajutorul comenzii ​''​make install''​.
  
  
-Pașii executați prin intermediul comenzii ​{{{make install}}} sunt detaliați mai jos.+Pașii executați prin intermediul comenzii ​''​make install'' ​sunt detaliați mai jos.
  
-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 264: Line 264:
 </​code>​ </​code>​
  
-Modulele sunt instalate in {{{/​lib/​modules/​2.6.24.2mykernel}}}.+Modulele sunt instalate in ''​/​lib/​modules/​2.6.24.2mykernel''​.
  
 Daca s-a configurat sistemul pentru a folosi //initrd//, va trebui creată imaginea de //​ramdisk//​. Pentru aceasta se ruleaza comanda: Daca s-a configurat sistemul pentru a folosi //initrd//, va trebui creată imaginea de //​ramdisk//​. Pentru aceasta se ruleaza comanda:
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>​
  
-Comanda va inspecta directorul ​{{{/​lib/​modules/​2.6.24.2mykernel}}} si va crea imaginea de ramdisk corespunzatoare.+Comanda va inspecta directorul ​''​/​lib/​modules/​2.6.24.2mykernel'' ​si va crea imaginea de ramdisk corespunzatoare.
  
 ==== Configurare GRUB ==== ==== Configurare GRUB ====
Line 283: Line 283:
 Există două versiuni majore de GRUB, 1 și 2. Mai departe ne vom ocupa de configurare GRUB2. Există două versiuni majore de GRUB, 1 și 2. Mai departe ne vom ocupa de configurare GRUB2.
  
-Pentru a adăuga o intrare în meniul GRUB-ului se editează fișierul ​{{{/​etc/​grub.d/​40_custom}}} și apoi se rulează comanda:<​code>​+Pentru a adăuga o intrare în meniul GRUB-ului se editează fișierul ​''​/​etc/​grub.d/​40_custom'' ​și apoi se rulează comanda:<​code>​
 # update-grub # update-grub
 </​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.
  
-O metoda de troubleshooting este compararea unei configurații functionale cu cea curentă prin inspecția fișierelor ​{{{.config}}} asociate.+O metoda de troubleshooting este compararea unei configurații functionale cu cea curentă prin inspecția fișierelor ​''​.config'' ​asociate.
 ==== Link-uri ==== ==== Link-uri ====
  
Line 338: Line 338:
 Din păcate, kernel-ul de Windows nu vine cu opțiuni de configurare,​ astfel încat procesul se rezumă la rularea comenzii de compilare și la instalarea noului kernel. Dacă se dorește un tip special de funcționalitate vor trebui alterate sursele. Din păcate, kernel-ul de Windows nu vine cu opțiuni de configurare,​ astfel încat procesul se rezumă la rularea comenzii de compilare și la instalarea noului kernel. Dacă se dorește un tip special de funcționalitate vor trebui alterate sursele.
  
-De asemenea, kernel-ul poate fi compilat numai pe un sistem Windows 2003 SP1 sau Windows XP x64. Versiunea curentă (WRK-1.2) nu poate fi compilată pe un sistem Windows XP x86. Sursele sunt disponibile în directorul ​{{{C:​\cygwin\home\Administrator\so2\WRK\}}} din cadrul [[http://​elf.cs.pub.ro/​so/​vm/​|mașinii virtuale de Windows]].+De asemenea, kernel-ul poate fi compilat numai pe un sistem Windows 2003 SP1 sau Windows XP x64. Versiunea curentă (WRK-1.2) nu poate fi compilată pe un sistem Windows XP x86. Sursele sunt disponibile în directorul ​''​C:​\cygwin\home\Administrator\so2\WRK\'' ​din cadrul [[http://​elf.cs.pub.ro/​so/​vm/​|mașinii virtuale de Windows]].
  
 Etapele de compilare sunt prezentate și în fișierul **README.txt** din rădăcina surselor. Etapele de compilare sunt prezentate și în fișierul **README.txt** din rădăcina surselor.
Line 344: Line 344:
 ==== Compilare ==== ==== Compilare ====
  
-Pentru compilarea surselor se parcurg următorii pași (vom utiliza de acum inainte ​{{{%wrk%}}} ca rădăcina surselor de kernel de Windows):+Pentru compilarea surselor se parcurg următorii pași (vom utiliza de acum inainte ​''​%wrk%'' ​ca rădăcina surselor de kernel de Windows):
  
 <​code>​ <​code>​
Line 355: Line 355:
 </​code>​ </​code>​
  
-Imaginea de kernel obținută se va regăsi în {{{%wrk%\base\ntos\BUILD\EXE}}} și va purta numele ​{{{wrkx86.exe}}} pentru un sistem cu arhitectura x86. Imaginea obținută este doar nucleul; modulele de kernel folosite vor fi cele existente în sistem în acel moment.+Imaginea de kernel obținută se va regăsi în ''​%wrk%\base\ntos\BUILD\EXE'' ​și va purta numele ​''​wrkx86.exe'' ​pentru un sistem cu arhitectura x86. Imaginea obținută este doar nucleul; modulele de kernel folosite vor fi cele existente în sistem în acel moment.
  
 ==== Instalare ==== ==== Instalare ====
  
-Procesul de instalare presupune copierea imaginii kernel-ului în {{{%SystemRoot%\system32}}}:+Procesul de instalare presupune copierea imaginii kernel-ului în ''​%SystemRoot%\system32''​:
  
 <​code>​ <​code>​
Line 365: Line 365:
 </​code>​ </​code>​
  
-Totuși, în afara imaginii de kernel, va trebui precizată imaginea de HAL (Hardware Abstraction Layer) care va fi utilizată. Va trebui gasită imaginea corecta de HAL; există trei imagini de HAL disponibile in {{{%wrk%\WS03SP1HALS\x86}}}. Pentru a afla care imagine este cea corectă va trebui utilizat linker-ul (folosind ​ comanda ​{{{link}}} și analizată imaginea de HAL existentă în acest moment în sistem).+Totuși, în afara imaginii de kernel, va trebui precizată imaginea de HAL (Hardware Abstraction Layer) care va fi utilizată. Va trebui gasită imaginea corecta de HAL; există trei imagini de HAL disponibile in ''​%wrk%\WS03SP1HALS\x86''​. Pentru a afla care imagine este cea corectă va trebui utilizat linker-ul (folosind ​ comanda ​''​link'' ​și analizată imaginea de HAL existentă în acest moment în sistem).
  
 <​code>​ <​code>​
Line 376: Line 376:
 </​code>​ </​code>​
  
-Motivul pentru care în ieșirea comenzii nu apare șirul ​{{{halaacpi.dll}}} este că a fost dezactivat [[http://​en.wikipedia.org/​wiki/​ACPI|ACPI]] pe mașina virtuală de Windows 2003.+Motivul pentru care în ieșirea comenzii nu apare șirul ​''​halaacpi.dll'' ​este că a fost dezactivat [[http://​en.wikipedia.org/​wiki/​ACPI|ACPI]] pe mașina virtuală de Windows 2003.
  
-Asocierea dintre ieșirea comenzii de mai sus și imaginile disponibile în {{{%wrk%\WS03SP1HALS\x86}}} este (după cum este precizat și în README.txt):​+Asocierea dintre ieșirea comenzii de mai sus și imaginile disponibile în ''​%wrk%\WS03SP1HALS\x86'' ​este (după cum este precizat și în README.txt):​
  
 <​code>​ <​code>​
Line 386: Line 386:
 </​code>​ </​code>​
  
-De obicei, imaginea căutată va fi {{{halmacpi.dll}}}.+De obicei, imaginea căutată va fi ''​halmacpi.dll''​.
  
-Imaginea corectă de HAL va fi copiată tot în {{{%SystemRoot%\system32}}}:+Imaginea corectă de HAL va fi copiată tot în ''​%SystemRoot%\system32''​:
  
 <​code>​ <​code>​
Line 396: Line 396:
 ==== Configurare boot.ini ==== ==== Configurare boot.ini ====
  
-Pentru a boota proaspătul kernel va trebui adaugată o intrare în {{{C:\boot.ini}}}, fișierul de configurare pentru loader-ul de Windows NT. Se recomandă copierea unei linii de bootare existente și modificarea ei pentru a boota noul kernel și noua imagine de HAL, ca mai jos:+Pentru a boota proaspătul kernel va trebui adaugată o intrare în ''​C:\boot.ini''​, fișierul de configurare pentru loader-ul de Windows NT. Se recomandă copierea unei linii de bootare existente și modificarea ei pentru a boota noul kernel și noua imagine de HAL, ca mai jos:
  
 <​code>​ <​code>​
Line 409: Line 409:
 </​code>​ </​code>​
  
-Pentru vizualizarea ​{{{boot.ini}}} în Windows Explorer, va trebui să accesați ​{{{Tools -> Folder Options -> View -> Hide protected operating system files (Recommended)}}}. Fișierul este implicit read-only; pentru editare va trebui să anulați această opțiune. Alternativ puteți face acest lucru din linia de comanda:+Pentru vizualizarea ​''​boot.ini'' ​în Windows Explorer, va trebui să accesați ​''​Tools -> Folder Options -> View -> Hide protected operating system files (Recommended)''​. Fișierul este implicit read-only; pentru editare va trebui să anulați această opțiune. Alternativ puteți face acest lucru din linia de comanda:
  
 <​code>​ <​code>​
Line 415: Line 415:
 </​code>​ </​code>​
  
-După configurarea ​{{{boot.ini}}}, sistemul poate boota în noul kernel compilat.+După configurarea ​''​boot.ini''​, sistemul poate boota în noul kernel compilat.
  
   *[[http://​support.microsoft.com/​kb/​323427/​en-us|How to manually edit the Boot.ini file in a Windows Server 2003 environment]]   *[[http://​support.microsoft.com/​kb/​323427/​en-us|How to manually edit the Boot.ini file in a Windows Server 2003 environment]]
   *[[http://​support.microsoft.com/​kb/​833721/​en-us|Available switch options for the Windows XP and the Windows Server 2003 Boot.ini files]]   *[[http://​support.microsoft.com/​kb/​833721/​en-us|Available switch options for the Windows XP and the Windows Server 2003 Boot.ini files]]
  
so2/laboratoare/lab_compilare.1360455039.txt.gz · Last modified: 2013/02/24 17:53 (external edit)
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