Jump to content
zbeng

Configurarea Kernel-ului

Recommended Posts

Posted

Multa lume considera ca viteza de boot-are a unui sistem de operare depinde in primul rand de cat de bun este calculatorul. Lucrurile nu stau insa chiar asa. Lucru dominant la cum se misca un sistem de operare o reprezinta setarile. Acuma sa nu va asteptati ca un linux bine setat instalat pe 486 sa ajunga un Pentium III @800Mhz.

Linux-ul ca sa boot-eze ruleaza Kernel-ul. La instalarea Linux-ului creaza un Kernel mai general, marimea sa variand intre 1,2-2 Mb. Pe langa aceasta marime mare mai exista si probabilitatea sa fie exceptate anumite drivere, cum ar fi driverul de sunet. Pentru a crea un kernel optim pentru computerul dumneavoastra trebuie sa compilati sursele. Un Kernel "sanatos" include doar componentele pe care le aveti si are marimea intre 500Kb-1mb.

Inainte de a incepe trebuie sa verificati daca aveti tot ce va trebuie. In primul rand aveti nevoie de sursele Kernel-ului pe care doriti sa-l compilati. Acestea le gasiti pe Internet la http://ftp.kernel.org . Eu va recomand sa compilati Kernel 2.4.x, Kernel la care o sa ma refer in special in acest tutorial.Puteti alege intre Kernel 2.4.1 se gaseste pe chip 4/2001 si Kernel 2.4.19, ultimul stabil.

La inceput trebuie facuta "curatenie". Este posibil ca in computerul dumneavoastra sa existe sursele Kernel-ului care il rulati. Cum ati facut rost de sursele unui Kernel mai nou, cele vechi trebuiesc sterse. Asa ca intrati in directorul /usr/src si stergeti directorul linux* sau kernel*(daca exista). Apoi copiati sursele noului kernel in directorul /usr/src. Sursele se afla in general sub forma de arhiva. In cazul lui Kernel 2.4.19 arhiva se numeste linux-2.4.19.tar.bz2 .Dezarhivati sursele executand urmatoarele comenzi in consola:

bunzip2 linux-2.4.19.tar.bz2

tar -xf linux-2.4.19.tar

rm linux-2.4.19.tar

Dupa terminarea acestei operatii veti observa ca in /usr/src s-a creat directorul linux. In acest director se gasesc sursele kernel-ului.

Acum ca sursele sunt pregatite, vor trebui instalate si uneltele de compilare. In primul rand compilatorul de C standard, gcc , trebuie sa fie instalat si trebuie sa fie minim 2.91.66(ATENTIE!!!:Nu folositi gcc 3.x. Nici folosirea gcc 2.96 nu este recomandabila. Asa ca daca detineti un RedHat 7.2 sau mai mare este f recomandabil sa downgrad-ati gcc-ul la versiunea 2.95). Pentru a verifica ce versiune este executati comanda "gcc--version" in consola. Apoi aveti nevoie de make, care trebuie si el sa fie minim 3.77. Verificarea se face cu comanda "make --version". Alte componente ar mai fi binutils-2.9.1 (ld -v), util-linux-2.10o(fdformat --version), modutils2.4.0(insmod -V), e2fsprogs 1.19(tune2fs --version. Atentie, daca doriti sa folositi ext3 veti avea nevoie de e2fsprogs-1.27 minim),PPP 2.4.1(doar daca aveti modem recunoscut de linux si vreti sa va conectati la internet)(pppd--version). Instalarea lor este in general clasica, dar va recomand sa cititi la fiecare fisierul INSTALL. Programele le gasiti pe chip 3/2001 si pe site-ul oficial al producatorului distributiei pe care o aveti.

Considerand ca ati instalat cu succes ce scrie mai sus inseamna ca aveti computerul pregatit pentru partea cea mai grea din instalare: configurarea. Asta deoarece daca omiteti un driver este foarte probabil ca Linux sa nu mai porneasca (Kernel panic). De aceea va recomand sa cititi help-ul fiecarei optiuni.

In principiu trebuie sa va cunoasteti hardware-ul foarte bine si sa bifati doar ce este necesar. Cu cat Kernel-ul este mai mic, cu atat sistemul va porni mai repede si se va misca mai bine.

Prima comanda care trebuie efectuata este pentru pornirea configurarii. Aceasta se poate face in 3 moduri: make config, pentru configurarea Kernel-ului in mod text (nu v-o recomand), make menuconfig, pentru un meniu tot in mediul text(recomandata celor cu calculatoare mai slabe) si make xconfig, care are ca efect aparitia unui meniu in interfata XWindow(cea pe care v-o recomand in cazul in care aveti un computer mediu sau bun).

Inainte de a trece la optiunile propriu-zise trebuie sa va explic ce variante aveti la fiecare optiune: Y(Yes), M sau m(modul) si N sau spatiu gol(No). Folosirea modulelor are 2 avantaje: reducerea simtitoare a dimensiunii Kernel-ului si incarcarea acestora in memorie doar cand este necesar, fiind apoi automat descarcate. De aceea sfatul meu e sa folositi module unde puteti

Acum sa trecem la treaba. Dupa ce meniul este initializat veti observa foarte multe optiuni. Nu va speriati pentru ca de multe nu aveti nevoie. Prima optiune din meniu este Code maturity level options. Aceasta sectiune are o singura optiune pe care ar fi bine sa o bifati, pentru ca multe drivere, desi sunt in stadiu EXPERIMENTAL, totusi merg fara probleme. Nu va recomand insa sa bifati optiunile marcate cu EXPERIMENTAL decat daca aveti absoluta nevoie de ele. In Loadable module support, toate cele trei optiuni ar trebui sa fie bifate pe Y. Daca nu sunt trebuie sa le setati voi. La Procesor type and features selectati tipul dumneavoastra de procesor si debifati Symmetric multiprocessing support(daca aveti doar un procesor, bineinteles). In General Setup optiunile sunt in general setate corect. Trebuie totusi sa dezactivati suportul pentru PCMCIA(presupun ca nu aveti asa ceva). Tot aici puteti configura Advanced Power Management BIOS support(daca doriti; aici se gaseste si optiunea pentru stingerea computerului prin tehnologia ATX).

In continuare ar trebui sa dezactivati suporturile care, in general, nu se gasesc in sisteme normale si care incarca Kernel-ul degeaba: Memory Technology Devices, Multy-device support(RAID and LVM), Telephony Suppor (aceasta este pentru aplicatiile voice-over-IP in care doriti sa folositi un telefon obisnuit), SCSI support(sistemele de acasa nu dispun in general de astfel de interfete), IEEE 1394(FireWire) support, I2O device support, Amateur Radio support, irDA(infrared) support, ISDN subsystem(decat daca nu aveti; in caz contrar cititi ISDN HOWTO de la www.tldp.org pentru detalii), Old CD-ROM (not SCSI, non IDE) (nu cred ca aveti asa ceva).

Daca aveti o interfata SCSI in sistem sau un CD-RW( chiar daca e pe IDE, veti avea nevoie de SCSI emulation support) trebuie activat suportul acesta si sa selectati driverul corespunzator. Suportul pentru portul paralel trebuie activat decat daca aveti un periferic(imprimanta, ZIP drive etc.) legat la acesta. Deasemenea selectati si PC-style hardware.

Plug and play configuration este deja configurat si nu trebuie sa va mai ocupati de capitolul asta.

In Block devices singura optiune care ne intereseaza este Normal floppy disk support .

In Networking options trebuie activat Network packet filtering daca doriti sa configurati un firewall sau sa mascaradati conexiunea si trebuie activat IP:Netfilter Configuration. Din acest subdomeniu selectati Connection tracking(daca vreti sa fiti server pentru reteaua pe care o aveti) si selectati IPtables support si suboptiunile de care aveti nevoie din acest subcapitol. Sfatul meu e sa compilati totul ca modul de aici, pentru ca nu vor incarca kernel-ul decat cand sunt solicitate. Altfel riscati sa va lipseasca optiuni importante pentru retea. Tot aici gasiti si suport pt IPX/SPX, foarte necesar daca vreti sa rulati jocuri de windows prin wine si sa va jucati in retea

ATA/IDE/MFM/RLL support este absolut necesar si ar trebui sa fiti FOARTE ATENTI aici. Aici se afla driverele pentru chipsets-urile de pe placa de baza. Tot aici gasiti si SCSI emulation support.

La Network device suport selectati din subdomeniul Ethernet(10 or 100 Mbit) placa de retea de care dispuneti, iar daca nu aveti asa ceva dezactivati acest suport. Va recomand sa compilati driverul pentru placa de retea ca modul unde puteti. Daca doriti sa va conectati la internet prin intermediul unui modem veti avea nevoie de PPP(point-to-point protocol) support. Si aici va recomand din sectiunea PPP sa compilati totul ca modul, mai putin prima optiune care se refera la sincronizarea mai multor modemuri(ceea ce nu cred ca e cazul).

In Character devices majoritatea optiunilor sunt deja activate. Daca aveti AGP activati /dev/agpgart (AGP support) si selectati sub-optiunea corespunzatoare placii de baza pe care o aveti. De asemenea, daca aveti una din placile grafice urmatoare ar trebui asa activati si Direct Rendering Manager(XFree86 DRI support) alaturi de driverul corespunzator acesteia: 3dfx Banshee/Voodooo3 sau mai noi, 3dlabs GMX2000, ATI Rage 128, Ati Radeon, Intel i810 sau Matrox G200/G400.

In Multimedia devices veti regasi placile de captura video si placile radio tuner. Daca dispuneti de asa ceva selectati suportul pentru cipul sau placa respectiva.

Un meniu foarte important este File system de unde puteti selecta tipul de fisiere pe care vreti sa le suporte noul Kernel. Recomandarea mea este sa activati DOS FAT fs support, VFAT (WINDOWS95) fs support (daca doriti sa montati partitii FAT in Linux),Microsoft Jouliet CD-ROM extensions. Daca aveti mai mult de o partitie fat si una ext2 ar fi bine sa activati si suportul pentru montarea partitilor secundare. Din submeniul Network File system selectati smbfs pentru a putea monta sharuri de windows si de samba si nfs(pentru network file sistem). In Partiton Types nu este cazul sa intrati iar in Native Language Support va recomand sa compilati totul ca modul, pentru a nu avea probleme cu fonturile.

In meniul Console drivers selectati VGA text console. Aici puteti sa activati si Frame Bufer support, insa nu va recomand, pentru ca daca driverul nu este bun veti ramane fara imagine.

In Sound veti putea selecta driverul pentru placa de sunet. Selectati doar driverul de care aveti nevoie (nu are rost sa incarcati kernelul cu alte drivere). Si acest driver este foarte recomandat sa-l compilati ca modul.

Daca aveti periferice pe USB selectati USB support si alegeti categoria de componente si tipul celor de care dispuneti(configurati doar de la USB Device Class drivers in jos, restul fiind deja bine setate). Daca aveti o tastatura sau un mouse pe USB va trebui sa mergeti si in meniul Input core support.Daca nu aveti periferice pe USB va recomand sa dezactivati acest suport.

Ultima optiune, Kernel hacking, nu va recomand sa o activati. Inainte de a iesi din acest meniu salvati-va configuratia pe un suport sigur. Fisierul de configurare se creaza cu optiunea Save configuration to File si il veti gasi in /usr/src/director_surse_kernel sub numele cu care l-ati salvat. Este bine sa il puneti pe o discheta pentru ca aproape sigur veti mai avea nevoie de el (daca va cumparati o componenta noua veti face doar o modificare). Dupa ce l-ati salvat apasati pe Save and Exit.

Partea cea mai grea a trecut. Acum va urma o etapa de asteptare, cand se va compila propriu-zis Kernel-ul. Viteza de compilare depinde de puterea procesorului pe care il aveti. Pe un Pentium III la 500Mhz o compilare dureaza cam 5-10 minute.

Urmatoarea comanda este make dep , care va seta corect toate dependintele.

Acum urmeaza partea ce-a mai lunga. Presupunand ca nu ati primit nici o eroare pana acum urmeaza crearea fisierelor(2 la numar) ce vor contin Kernel-ul propriu-zis. Exista mai multe posibilitati. Daca doriti sa creati Kernel-ul pe hard va trebui sa scrieti make bzImage. Daca doriti sa creati o discheta boot-abila cu noul Kernel scrieti make bzdisk. Daca acestea 2 nu merg incercati cu make zImage si respectiv make zdisk. Daca aveti un hard mai mare de 6,4 GB veti avea nevoie de un lilo ceva mai nou pentru a putea boot-a Linuxul dupa hdd.

Dupa ce a terminat de compilat urmeaza compilarea modulelor. Aceasta este insa mai rapida, depinzand de numarul de module pe care le-ati integrat. Pentru a compila modulele executati comanda make modules .Dupa compilarea modulelor acestea trebuiesc instalate in noul Kernel. Pentru a instala modulele executati comanda make modules_install.

In acest moment Kernel-ul a fost creat. El mai trebuie doar instalat. Daca ati facut o discheta boot-abila cu noul Kernel puteti sari peste configurarea lilo-ului. Copiati fisierul bzImage(acesta este Kernel-ul) pe care il gasiti in /usr/src/linux/arch/i386/boot sub denumirea vmlinuz-2.4.19 in directorul /boot. Tot in /boot copiati si fisierul System.map din /usr/src/linux sub numele de System.map-2.4.19.

Acum urmeaza o parte in care trebuie sa fiti foarte atenti. Aceasta etapa este necesara daca lilo este instalat pe hard. Editati din /etc fisierul lilo.conf. Stergeti tot ce se afla in el si scrieti urmatoarele linii:

boot=/dev/hd#

read-only

prompt

timeout=100

image=/boot/vmlinuz-2.4.19

label=Linux

root=/dev/hd#*

image=/boot/vmlinuz-2.2.16(aici in loc de vmlinuz2.2.16 puneti numele kernel-ului vechi pe care il aveti).

label=LinuxOld

root=/dev/hd#*

other=/dev/hd#*

label=windows

(daca aveti asa ceva)

table=/dev/hd#*

#* trebuiesc inlocuite cu numele, respectiv numarul partitiei. Pentru mai multe informatii despre cum denumeste Linux partitiile cititi tutorialul Structura datelor din sectiunea elemente de baza.Acum va trebui sa executati ultima comanda. Executati comanda lilo. Daca ati primit un mesaj de eroare inseamna in general ca nu ati scris bine numele partitiei. Insistati pana nu veti mai primi mesaje de eroare. Este bine sa aveti la indemana si o dischetat de boot si o copie a vechiului lilo.conf in caz de esuare a upgrade-ului.

Daca nu ati primit nici un mesaj de eroare reporniti computerul. Pentru a boota noul Kernel scrieti Linux la prompterul lilo. Pentru a boota vechiul Kernel (daca upgrade-ul a esuat) scrieti LinuxOld. Daca upgrade-ul a reusit ar trebui sa vedeti la comanda cat proc/versionceva de genul:

Linux version 2.4.18 (root@romeo2) (gcc version 2.95.4 20011002 (Debian prerelease)) #1 Fri Jun 7 20:09:30 EEST 2002 (in fuctie de distributie,gcc si alti parametri)

Generatie 2.4 de Kernel dispune si de o boot-are grafica, cu ajutorul Linux Progress Patch. Nu am insistat pe ea deoarece sunt foarte putine drivere, si daca nu aveti driver pentru el, veti primi de fiecare data un mesaj care va pune sa alegeti modul grafic. Pentru mai multe informatii vizitati lpp.freelords.org .

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...