Jump to content
!_30

[Tutorial] Compilare kernel

Recommended Posts

Salut !

Voi prezenta o problema "frecventa " , care apare la incepatori cat si la ceilalti , cand vine vorba : " A aparut kernelul ala nou " vanilla " si vreau sa-l am si eu pe server.( Desigur in paralel cu cel vechi , ca la posibile "erori - kernel panic" sau diversitati .. sa putem intra pe cel vechi.

Am auzit ca aceasta problema este complicata , si useri noi au probleme si o lasa balta.Nu este asa , cel mult in 2-3 ore , daca-ti bati capul , ( + download peste 30 de mega de sursa kernel ) , scapi si de erori , kernel panic-uri si restu , si poti boota frumos dupa kernelul nou.

Pentru a putea intelege mai bine , trebuie facute niste referiri la kernel , rolul acestuia si unele lucruri , care sunt intelese uneori gresit de "incepatori".

Ce este defapt kernelul ?

Asta e intrebarea , pe care multi o rateaza din start.

-kernel este nucleul sistemului de operare . E bine , mai departe , adica ?

-Practic , nucleul , adica kernelul este o aplicatie ( low-level ) care are rolul de a "sa zicem" controla , oferi access la hardware.Cineva trebuia sa faca asta.

-Practic daca citim definitia sistemului de operare , observam ca kernelul Linux ( numit nativ Linux la inceput ) este un OS ( mai primitiv ) care nu are sofisticarii , ci doar face treaba de OS ( no interfata grafica , etc ).

-Fara sa intram in detalii distro-urile ( distributiile Linux ) gen Fedora , Ubuntu ,Debian ( am ales mai cunoscute ) , care sunt UNIX-like ( deoarece nu au cumparat / platit numele ) , rezolva completarea nucleului ( OS-ul ) , adaugandu-i pachete , GUI , posibilitati ce fac ca acesta sa fie mai usor de folosit si manuit.GUI este decat un pachet , aplicatie care ne ofera o interfata vizuala acceptabila , infara consolei.

Ne tot tinem la vorba , hai sa trecem la compilarea propiu-zisa.

Ce avem de facut

Practic prima data trebuie sa ne hotaram daca vrem defapt sa punem acel kernel nou , are vrun rost ? ne ajuta ? nu ne ajuta .. vrem doar sa invatam ?

Sa zicem ca am trecut peste prima parte ( peste care multi sar ) , si am ajuns la partea a doua.E relativ simplu , daca vrem un nou kernel ( fie alternativ ) , pe sistemul nostru , avem nevoie de o sursa de kernel. ( Daca vrem sa instalam o aplicatie , intai downloadam pachetul ).

De unde ? ( Avem destule surse de kernel ) . Voi oferi mai jos niste link-uri :

http://www.linuxhq.com/ ( kernelul curent adica , chiar de azi 20-septembrie este : 2.6.18 si-l puteti lua de aici :

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2

Daca nu vreti cel curent , puteti alege dintr-o arhiva impresionanta de kernele 2.6 de aici : http://www.linuxhq.com/kernel/v2.6/index.html

il puteti gasi si aici : http://kernel.org

Voi da exemplele pe kernelul de azi 2.6.18 - 20 sept 2006

Download kernel

Ca sa nu ne chinuim prima data dam un cd /usr/src ( pentru a intra in directorul propice de download kernel ) apoi ( presupunem ca dorim ultima versiune 2.6.18 ) il downloadam in /usr/src unde suntem acum :

wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 Atentie : acest tutorial e de acum exemplat pentru versiunea de kernel 2.6.18 , si downloadul acestei versiuni , este un exemplu , daca doriti alta versiune , nu ezitati sa incluiti dupa model , nu poate fi greu , nici pentru un incepator.

Fitit sigur ca aveti macar minimul necesar de programe pentru a putea compila kernelul cel nou

- GCC , este neaparat , deoarece este folosit la compilarea propiu-zisa a noului kernel .

Daca folositi Debian folositi comanda :

apt-get install gcc pentru a downloada si instala gcc.

Daca folositi Fedora folositi comanda :

yum install gcc

Desigur , se poate instala si in alte moduri , dar am dat un exemplu rapid , pentru ca incepatori sa nu aiba probleme inca de aici ( Desi practic , GCC-ul ar trebui sa fie deja instalat , daca este e bine ).

Dupa ce ati downloadat sursa kernelului decompresati ( pwd arata tot /usr/src cu bzip2 -d [sursa kernel.tar.bz2] apoi dezarhivati cu tar -xvf [sursa kernel.tar] apoi intrati in acest director cu cd [sursa kernel] .Parantezele patrate nu se pun :P.

Configurare kernel

Acum ii configuram optiunile , care vrem sa le includa noul kernel .

Folosim comanda make menuconfig din directorul sursei ultimului kernel , care va face cateva chestii apoi va aparea o fereastra , modificam pe acolo apoi dam exit de jos de tot , si daca cere save , ii dam save ( la sfarsit ).

Mai sunt si alte comenzi gen : make xconfig , din GUI pe KDE sau make gconfig , din GUI pe Gnome.

Compilare propiu-zisa

Acum urmeaza compilarea propiu-zisa a kernelului cu urmatoarele comenzi , in ordine :

* make

* make modules

* make modules_install

* make install ( instalare proiu-zisa kernel ).

Daca pe parcursul acestor operatii intampinam erori , care duc la stoparea imediata a proceselor de compilare / instalare , trebuie sa verificam daca avem programele necesare pentru noul kernel.Sunt mai multe de discutat si nu intru in detalii , se gasesc ..

Comenzile de mai sus vor instala trei fisiere in /boot . Uitati-va si veti observa.

Daca folositi GRUB dati update-grub , restart si Evrika , new kernel .Daca folositi lilo , poate va descurcati si voi , v-am dat greul , ramane pe voi ..

Spor !

:)

Link to comment
Share on other sites

Spawn te inseli amarnic... Kernelul sistemului de operare windows este o parte cat mai ascunsa fata de utilizator in primul rand datorita faptului ca microsoft nu a publicat sursa. In al 2-lea rand este imposibil sa folosesti comenzi gen make,tar,etc in windows... Ti-am raspuns eu ca sa il scutesc pe !_30 care cred ca nu ar fi fost atat de amabil. Ca sa te lamuresti cum e cu linuxul te sfatuiesc sa citesti un pic...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...