Gentoo Logo

Avertisment : Acest document nu este valid şi nu mai este întreţinut.


Ghidul complet Gentoo Linux de migrarea la kernel-ul 2.6

Conţinut:

1.  Introducere

Ce e nou în Linux 2.6?

Această întrebare nu este una uşoară. Kernel-ul linux 2.6 este rezultatul a peste 2 ani de dezvoltare rapidă şi de implementare a unor noi tehnologii şi, ca arhitectură, este destul de diferit de omologul său 2.4. Câteva dintre cele mai semnificative schimbări sunt enumerate mai jos:

  • Îmbunătăţiri la nivel de Scheduler/Interactivitate: Linux este foarte responsiv pe sistemele desktop şi se descurcă mult mai bine decât 2.4 în condiţii de utilizare intensă
  • Scalabilitate: Linux scaleaza mult mai eficient acum pe orice sistem - dispozitive mici integrate sau sisteme multiprocesor.
  • Performanţă: productivitatea aplicaţiilor normale este mult îmbunătăţită
  • Suport hardware: Linux suportă acum mult mai multe arhitecturi diferite şi dispozitive hardware în mod implicit decât orice alt sistem de operare.

Joseph Pranevich a scris un document foarte detaliat, Minunata lume a Linux 2.6 pe care aţi putea fi tentaţi să aruncaţi o privire. Dacă vă interesează amănuntele mai tehnice, puteţi să vă uitaţi pe Documentul post-halloween - dar ţineţi cont de faptul că acest document nu prea mai este de actualitate.

Gentoo şi 2.6

Începând cu versiunea 2005.0 a Gentoo Linux, versiunea de kernel implicită este ultima serie de kernel 2.6. Profilul implicit al sistemului este preluat din /etc/make.profile care in 2005.0 sau în versiunile mai noi este un link simbolic la /usr/portage/profiles/default-linux/x86/2005.0 sub care se află setări importante.

Dacă utilizaţi un profil 2.4, vă rugăm să îl modificaţi către cel ce suportă un kernel 2.6 prin următoarea operaţie.

Cod 1.1: Comutarea profilului

# rm -f /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile

Ce este udev?

În trecut, Gentoo îi sfătuia pe utilizatori să folosească devfs pentru managementul directorului /dev, ce conţine o serie de interfeţe ce permit aplicaţiilor să comunice cu dispozitivele hardware (prin intermediul kernel-ului).

devfs, deşi este bun ca idee, are unele probleme interne, şi a îndepărtat din sursele de kernel începând cu versiunea 2.6.13.

udev reprezintă noua modalitate de management a acestor interfeţe. Soluţionează problemele managerelor precedente şi de asemenea încearcă să rezolve şi alte probleme.

Cele de mai sus pot să nu aibă înţeles pentru dumneavoastră dar fiţi fără grijă, dezvoltatorii Gentoo au muncit din greu pentru ca trecerea de la udev la devfs să se realizeze foarte uşor. Vă rugăm să consultaţi Ghidul Gentoo pentru udev pentru mai multe informaţii în legătură cu aceasta.

Ce este ALSA?

ALSA, sau Advanced Linux Sound Architecture, este un nou set de drivere audio cu un API îmbunătăţit, prezent în kernel-ul Linux 2.6. Este compatibil cu aplicaţiile OSS, cu condiţia să selectaţi opţiunile potrivite la configurarea kernel-ului.

Notă: Dacă nu dispuneţi de un dispozitiv audio, puteţi să săriţi peste instrucţiunile legate de ALSA din acest document.

Ce este LVM?

Logical Volume Management (LVM) este un set de unelte ce vă permit administrarea stocării datelor pe disk intr-o manieră foarte flexibilă. Printre altele, permite un control foarte bun asupra partiţiilor (de exemplu: redimensionarea unei partiţii fără repornire), şi execută operaţii cum ar fi schimbări în dispozitivele de stocare relativ uşor. LVM este o alternativă la administrarea standard pe bază de partiţii a discului.

Suportul pentru LVM a fost implementat în premieră în Linux 2.4. Linux 2.6 oferă o nouă versiune a acestui set de utilitare, denumit LVM2. Procesul de trecere de la LVM la LVM2 presupune instalarea noilor versiuni ale utilitarelor din setul de unelte, dar informaţia stocată va rămâne intactă!

Dacă nu folosiţi LVM pentru administrarea stocării datelor, atunci trecerea la LVM2 nu se aplică în cazul dumneavoastră. În această situaţie, puteţi omite ghidul LVM din acest document. Actualizarea la Linux 2.6 nu necesită stocarea informaţiei pe partiţii LVM - puteţi să vă păstraţi datele în formatul standard pentru partiţii.

Dacă nu folosiţi LVM, dar credeţi că v-ar folosi, puteţi să vă convertiţi discurile la acest format oricând doriţi, urmând ghidul Ghidul de Instalare LVM2 pentru Gentoo. Haideţi deocamdată să ne concentrăm asupra migrării fără probleme la kernel-ul 2.6.

2.  Pregătire

Actualizarea sistemului

Unele dintre schimbările aduse de Linux 2.6 necesită deasemenea unele schimbări în aplicaţiile de bază ale sistemului. Înainte de a trece mai departe, trebuie să aveţi grijă ca sistemul dumneavoastră să fie relativ la zi. Pentru a asigura acest lucru, ar trebui sa actualizaţi toate programele world şi system pentru care sunt disponibile versiuni noi.

În particular, asiguraţi-vă că aveţi instalate ultimele versiune ale următoarelor pachete:

  • sys-apps/baselayout
  • sys-apps/util-linux
  • sys-kernel/genkernel (doar dacă doriţi să folosiţi genkernel în loc de configurarea manuală a kernel-ului)

Cod 2.1: Actualizarea tuturor pachetelor:

# emerge --sync
# emerge -ua world

modutils vs module-init-tools

sys-apps/modutils este pachetul care oferă unelte precum modprobe, rmmod and insmod pentru Linux 2.4.

Linux 2.6 introduce un nou format pentru module, drept urmare necesită utilitare noi pentru lucrul cu module. Acestea sunt conţinute in pachetul sys-apps/module-init-tools.

În acest moment ar trebui să dezinstalaţi modutils şi să instalaţi module-init-tools:

Cod 2.2: Trecerea de la modutils la module-init-tools

# emerge --unmerge sys-apps/modutils
# emerge module-init-tools

Notă: Nu vă îngrijoraţi - deşi tocmai aţi dezinstalat modutils, module-init-tools asigură compatibilitatea cu kernelul Linux 2.4, deci încă mai puteţi porni cu Linux 2.4 şi manipula module pentru acesta.

Notă: Din acest motiv, module-init-tools ar putea să fie deja instalat şi să funcţioneze cu kernelul 2.4 deja existent. În acest caz, sistemul dumneavoastră este deja capabil să lucreze cu modulele linux 2.6.

Instalarea udev

Aici nu este necesară nici o configurare. Folosiţi pur şi simplu emerge pentru a instala udev:

Cod 2.3: Instalarea udev

# emerge -a udev

În acest moment ar trebui să citiţi Ghidul udev pentru Gentoo pentru a vă face o idee completă despre diferenţele dintre udev şi devfs.

Verificarea nodurilor-dispozitiv esenţiale:

Când sistemul porneşte, are nevoie de unele noduri-dispozitiv esenţiale. Cum udev nu este inclus în kernel, nu este activat imediat. Pentru a ocoli această problemă, trebuie să vă asiguraţi că aveţi nodurile-dispozitiv esenţiale pe disc.

Fişierele de instalare din fişierele stage Gentoo ar fi trebuit să creeze dispozitivele necesare în timpul instalării iniţiale. Totuşi, unii utilizatori au semnalat faptul că acest lucru nu se întâmplă tot timpul. Cu această ocazie vom verifica dacă nodurile dispozitiv există, şi în caz contrar, le vom creea.

Cum managerul de dispozitive va fi montat în /dev, nu putem să-l accesăm direct. Aşa că vom mount-a cu bind partiţia rădăcină într-o altă locaţie şi vom accesa directorul /dev de acolo.

Cod 2.4: Mount-area cu bind a partiţiei rădăcină şi afişarea dispozitivelor statice:

# mkdir -p /mnt/temp
# mount -o bind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null

Dacă comanda ls de mai sus a raportat că fie console fie null nu există, trebuie să le creaţi dumneavoastră, ca mai jos:

Cod 2.5: Crearea nodurilor console şi null:

# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3

Acum ar trebui să de-mount-aţi partiţia rădăcină mount-ată cu bind, chiar dacă nu a trebuit să creaţi acele dispozitive.

Cod 2.6: De-mount-area partiţiei rădăcină mount-ată cu bind:

# cd
# umount /mnt/temp
# rmdir /mnt/temp

Instalarea utilitarelor ALSA

ALSA cere să aveţi unele pachete instalate, pentru ca aplicaţiile să poată folosi API-ul ALSA. Aceste pachete vă vor permite controlul asupra mixerului şi volumului. Instalaţi utilitarele necesare după cum urmează:

Cod 2.7: Instalarea utilitarelor şi librăriilor ALSA:

# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss

3.  Instalarea surselor Linux 2.6

Alegerea şi instalarea unui kernel

Primul lucru pe care îl aveţi de făcut este să instalaţi sursele unui kernel 2.6, la alegere. Cele 2 kernel-uri 2.6 suportate de gentoo sunt gentoo-sources (pentru staţii desktop) şi hardened-sources (pentru servere). Sunt şi altele disponibile, consultaţi Ghidul Gentoo Linux pentru Kernel pentru alte opţiuni.

Cod 3.1: Instalarea gentoo-sources

# emerge -a gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild  NS   ] sys-kernel/gentoo-sources-2.6.10-r4

Do you want me to merge these packages? [Yes/No] y

În timp ce se execută comanda de mai sus, dacă observaţi că vrea să instaleze o versiune 2.4 a gentoo-sources (de exemplu gentoo-sources-2.4.26), atunci înseamnă că profilul pe care îl folosiţi nu este conceput pentru utilizatorii kernelului 2.6. Vă rugăm citiţi Documentul pentru Actualizarea Gentoo pentru a trece la un profil bazat pe 2.6, şi apoi reîncercaţi să instalaţi sursele 2.6.

Diverse componente ale utilitarelor Gentoo se bazează pe link-ul simbolic /usr/src/linux către sursele kernelului pe care îl rulaţi sau în raport cu care vreţi să compilaţi.

Acum vom actualiza link-ul /usr/src/linux ca sa indice calea spre sursele pe care tocmai le-am instalat:

Cod 3.2: Actualizarea link-ului simbolic /usr/src/linux

# cd /usr/src
# ln -sfn linux-2.6.10-gentoo-r4 linux

4.  Greşeli comune la trecerea la kernelul 2.6

Înainte de a împotmoli la configurarea kernelului, vom încerca să detaliem unele dintre cele mai comune erori pe care le fac utilizatorii ce trec la linux 2.6; ţinând cont de acestea, vă veţi descurca mai uşor.

Notă: Nu toate aceste erori sunt relevante în acest stadiu, dar vor fi detaliate toate aici, şi vă puteţi întoarce la ele când doriţi.

Nu folosiţi "make oldconfig" cu un .config de kernel 2.4

Notă: Dacă nu ştiţi ce înseamnă asta, nu vă faceţi griji, nu veţi face această greşeală dacă urmaţi restul ghidului cu atenţie..

Vă vor fi puse foarte multe întrebări, deoarece au intervenit foarte multe schimbări. Mulţi utilizatori care încearcă make oldconfig de la un .config (fişier de configurare) 2.4 ajung să creeze un kernel nefuncţional (exemplu: care nu afişează nimic pe ecran, nu merge tastatura). Vă rugăm scutiţi-vă de complicaţii şi folosiţi metoda tradiţională de configurare menuconfig, măcar de această dată.

Nu folosiţi ide-scsi pentru scrierea mediilor CD/DVD

În Linux 2.4, singura modalitate prin care puteau fi obţinute rezultate bune la scrierea mediilor CD şi DVD era prin activarea (destul de incomodă) a emulării ide-scsi. Din fericire, odată cu Linux 2.6, layerul IDE a fost extins şi acum suportul pentru dispozitivele de inscripţionare CD/DVD este mult mai bun.

Nu este necesar să activaţi opţiuni suplimentare pentru scrierea CD-urilor. Aveţi grijă doar să nu activaţi ide-scsi aşa cum obişnuiaţi.

PC Speaker este acum o opţiune configurabilă

Nu veţi avea parte de obişnuitele sunete în consolă (sau orice alt răspuns din partea difuzorului) dacă nu activaţi îm mod intenţionat opţiunea pentru speaker (CONFIG_INPUT_PCSPKR):

Cod 4.1: Locaţia opţiunii PC speaker

Device Drivers  --->
 Input device support  --->
  [*] Misc
   <*>   PC Speaker support

Notă: Prin PC Speaker se înţelege dispozitivul analog care face beep când sistemul dumneavoastră porneşte, şi nu dispozitivele audio normale folosite pentru a asculta muzică, etc.

Noul driver pentru dispozitivele de stocare a datelor pe USB e problematic uneori

Foarte recent, un driver faorte nou pentru dispozitivele dUSB de stocare a datelor a fost introdus în kernel. În timpul scrierii acestui document, acest driver ("ub") este încă într-un stadiu incipient şi unii utilizatori îl consideră nesigur. Dacă aveţi probleme la accesarea discurilor, dispozitivelor flash-disk, card-reader sau a camerelelor digitale pe USB, atunci aţi putea încerca să reveniţi la driverul mai vechi în stil SCSI.

Cod 4.2: Dezactivarea ub

Device Drivers  --->
 Block devices  --->
  < > Low Performance USB Block driver

Notă: Driverul vechi în stil SCSI (USB Mass Storage support) este activat implicit. Poate fi găsit în "Device Drivers --> USB support" dar în general nu va funcţiona atât timp cât şi ub este prezent.

usbdevfs redenumit usbfs

Dacă v-aţi editat fişierul /etc/fstab pentru a modifica modul în care sistemul de fişiere al dispozitivelor USB este montat, s-ar putea să trebiască să modificaţi tipul sistemului de fişiere de la usbdevfs la usbfs.

Notă: Versiunile de kernel 2.4 recente vă vor permite deasemenea să folosiţi "usbfs" la fel de bine ca şi "usbdevfs", deci nu afectaţi compatibilitatea inversă făcând această schimbare.

Dacă sunteţi utilizatorul unui sistem de tip desktop bazat pe kernelul 2.4, s-ar putea să vă fi configurat sistemul astfel încât să ruleze serverul grafic X cu prioritate mai mare, pentru o mai bună performanţa (în unele cazuri) a sistemului desktop.

Au avut loc multe schimbări la nivel de scheduler în kernel-ul Linux 2.6 care modifică acest comportament. Dacă veţi continua sa rulaţi X cu prioritate ridicată, exact acest lucru se va întâmpla (rularea serverului grafic cu o prioritate foarte ridicată) şi veţi constata consecinţe precum sacadarea sunetului şi deschiderea încetinită a aplicaţiilor pentru că procesorul iroseşte prea mult timp servind numai şi numai serverul grafic X.

În linux 2.6 nu aveţi nevoie să modificaţi priorităţile de rulare a aplicaţiilor pentru a obţine o interactivitate sporită. Vă rugăm renunţaţi la modificările făcute în acest sens.

Fişierul de configurare X11 ar trebui de acum să includă /dev/input/mice pentru mauşi PS/2 şi USB mice

Una dintre schibările pe care o instalare implicită udev o introduce este organizarea diferită a nodurilor dispozitiv pentru maus. Anterior, ar trebui să fi avut noduri precum /dev/psaux şi /dev/mouse. Acum veţi avea noduri precum /dev/input/mouse0, /dev/input/mouse1, şi un nod colectiv /dev/input/mice care combină mişcările tuturor mauşilor.

Cod 4.3: Eroare comuna la pornirea X pe un sistem cu udev pentru prima oară

(EE) xf86OpenSerial: Cannot open device /dev/mouse
  No such file or directory.
(EE) Mouse0: cannot open input device
(EE) PreInit failed for input device "Mouse0"
No core pointer

Pentru a corecta acest lucru, editaţi fişierul de configurare al X, şi actualizaţi secţiunea InputDevice> pentru maus, setând dispozitivul /dev/input/mice. Un exemplu este arătat mai jos:

Cod 4.4: Editarea fişierului de configurare X11

# nano -w /etc/X11/xorg.conf

Notă: Dacă încă mai folosiţi XFree86, fişierul dumneavoastră de configurare ar trebui să fie /etc/X11/XF86Config

Cod 4.5: Exemplu de secţiune InputDevice pentru maus

Section "InputDevice"
  Identifier  "Mouse0"
  Driver      "mouse"
  Option      "Protocol" "auto"
  Option      "Device" "/dev/input/mice"
EndSection

Notă: Dacă folosiţi un maus serial, noua cale către dispozitiv va fi /dev/tts/0 în loc de /dev/ttyS0.

Noile drivere Serial-ATA (SATA) denumesc dispozitivele diferit

Dacă aţi folosit driverele originale SATA sub linux 2.4, probabil v-aţi obişnuit ca dispozitivele SATA să aibă denumiri precum /dev/hde.

Linux 2.6 introduce nişte drivere SATA noi (libata) care sunt bazate pe subsistemul SCSI. Din acest motiv, acum discurile SATA de care dispuneţi vor apărea ca dispozitive SCSI. Primul disc SATA va fi numit /dev/sda. Va trebui să editaţi fisierul /etc/fstab pentru a reflecta aceste schimbări, şi să reţineţi noua denumire când veţi alege parametrul de boot root/real_root pentru kernel.

Notă: libata a fost adaptată şi introdusă şi în versiunile recente ale kernelului linux 2.4, astfel că s-ar putea să fiţi deja obişnuiţi cu noile denumiri ale dispozitivelor.

bootsplash nu mai este menţinut

Dacă aţi folosit kernel-ul gentoo-sources-2.4, aţi fi putut folosi funcţionalitatea bootsplash ca să vă bucuraţi de o consola framebuffer plina de culoare.

Dezvoltatorul bootsplash aparent şi-a pierdut interesul în proiectul său, date fiind unele probleme de design. Totuşi, dezvoltatorul Gentoo Michał Januszewski elaborează un seccesor, gensplash, care este inclus în kernel-ul gentoo-sources-2.6. Puteţi urma tutorialul lui Michał Gensplash în 5 paşi simpli pentru a vă familiariza cu modul în care gensplash funcţionează.

Driverele I2C sunt acum incluse în kernel

Dacă folosiţi lm_sensors pentru a monitoriza temperaturile şi voltajele în sistem, înainte trebuia să instalaţi pachetul i2c pentru a asigura suportul pentru componentele dvs. hardware.

Driverele I2C sunt acum incluse în kernelul Linux 2.6, nici un pachet extern nu este necesar. Nu uitaţi să activaţi suportul pentru dispozitivele I2C specifice sistemului dumneavoastră atunci când configuraţi kernel-ul. Veţi putea apoi să folosiţi lm_sensors la fel ca inainte.

5.  Configurarea, compilarea, şi instalarea kernelului

Încă de la linux 2.4, aveţi la dispoziţie două metode (opţiuni) pentru compilarea unui nou kernel.

  1. Metoda de bază este configurarea manuală a kernel-ului. Aceasta poate părea descurajantă dar este cea mai potrivită metodă atât timp cât cunoaşteţi componentele sistemului. Dacă doriţi să configuraţi manual noul kernel, vă rugăm citiţi mai departe la capitolul următor.
  2. Metoda alternativă este să folosiţi genkernel pentru a configura, compila şi instala automat noul dumneavoastră kernel. Dacă doriţi să folosiţi genkernel atunci omiteţi capitolul ce urmează, direct la folosirea genkernel.

6.  Implicit: Configurarea manuală

Configurarea kernelului

Vom trece mai departe la configurarea kernelului. Deschideţi menuconfig prin metoda uzuală:

Cod 6.1: Apelarea menuconfig

# cd /usr/src/linux
# make menuconfig

Probabil sunteţi obişnuiţi cu folosirea menuconfig dacă aţi mai configurat kernel-ul 2.4 până acum. Din fericire, interfaţa nu s-a schimbat aproape deloc, dar veţi observa o organizare mult mai buna a opţiunilor, plus multe opţiuni noi care nu erau prezente în 2.4.

Asiguraţi-vă că aţi activat următoarele opţiuni importante:

Cod 6.2: Opţiuni necesare

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
    
(următoarele sunt necesare pentru udev):
General setup  --->
 [*] Support for hot-pluggable devices
  
(următoarele sunt necesare pentru ALSA):
Device Drivers  --->
 Sound  --->
  <*> Sound card support
  Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   <M> Sequencer support
   <M> OSS Mixer API
   [*] OSS Sequencer API
   (şi nu uitaţi să selectaţi placa dvs de sunet din submeniuri!)

(următoarele sunt necesare dacă folosiţi LVM pentru administrarea discurilor):
Device Drivers  --->
 Multi-device support (RAID and LVM)  --->
  [*] Multiple devices driver support (RAID and LVM)
   <*>   Device mapper support

Atenţie: Înainte probabil că includeaţi suportul pentru sistemul de fişiere /dev (acum marcat ca DEPRECIAT). Nu activaţi suportul devfs. Am instalat udev, ce va fi folosit în locul lui devfs de-acum înainte.

De asemenea, nu uitaţi să activaţi suportul pentru sistemele de fişiere pe care le folosiţi, şi hardware-ul prezent în sistem. Asiguraţi-vă că aţi activat suportul pentru dispozitivul controller ide de pe placa de bază pentru a putea beneficia de accesarea rapidă prin DMA a discului. Consultaţi secţiunea Configurarea Kernel-ului din Manualul Gentoo pentru explicaţii adiţionale în această privinţă.

Compilarea kernel-ului

Acum că am configurat kernelul, putem începe procesul de compilare:

Cod 6.3: Compilarea surselor kernelului

# make && make modules_install

Notă: Vă amintiţi că trebuia să rulaţi şi make dep cu sursele Linux 2.4. Acest lucru nu mai este necesar.

Aşteptaţi încheierea procesului de compilare (şi observaţi rezultatele compilării afişate pe ecran într-o manieră mult mai clară).

Instalarea kernel-ului

Pasul următor este montarea partiţiei /boot şi copierea imaginii kernel-ului acolo. Apoi trebuie să actualizaţi configuraţia aplicaţiei bootloader.

Cod 6.4: Instalarea kernel-ului

# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4

Aveţi în vedere faptul că instrucţiunile de mai sus sunt doar nişte exemple. Urmaţi paşii uzuali cu care obişnuiţi să actualizaţi kernelul urmând instrucţiunile din Manualul Gentoo (vedeţi capitolul Configurarea Kernel-ului).

Când actualizaţi configuraţia aplicaţiei bootloader, nu ştergeţi înregistrarea care arată spre kernelul dumneavoastră 2.4 kernel. Astfel, veţi putea cu uşurinţă să treceţi de la unul la altul în caz că ceva nu merge cu noul kernel.

Acum continuaţi la secţiunea Configurarea modulelor.

7.  Alternativ: folosirea genkernel

Dacă preferaţi să folosiţi genkernel în loc să configuraţi manual kernel-ul, vă veţi bucura să ştiţi că folosirea genkernel pentru a produce kernel-uri 2.6 este foarte similară cu procesul pe care l-aţi executat când aţi produs kernel-ul anterior 2.4.

Ar trebui să apelaţi genkernel aşa cum este arătat mai jos:

Cod 7.1: Apelarea genkernel cu nişte argumente comune

# genkernel --udev --menuconfig --bootloader=grub all

În exemplul de mai sus, profităm de facilităţile genkernel de a deschide menuconfig pentru a vă permite să particularizaţi configuraţia kernelului (dacă doriţi), şi de a actualiza configuraţia aplicaţiei bootloader după compilare.

Ar trebui să alegeţi argumentele genkernel care vă convin, dar nu uitaţi să includeţi argumentul --udev! Consultaţi Ghidul Genkernel pentru Gentoo Linux şi capitolul Configurarea Kernel-ului din Manualul Gentoo pentru informaţii adiţionale.

Dacă vă hotărâţi să modificaţi manual configuraţia aplicaţiei bootloader-ului, atunci trebuie să vă amintiţi să includeţi parametrul udev. Un exemplu de fişier de configurare pentru GRUB este dat mai jos, dar aveţi grijă să adaptaţi parametrul real_root pentru sistemul propriu.

Cod 7.2: Exemplu de configurare GRUB pentru genkernel + udev

title=Gentoo Linux (2.6 kernel)
root (hd0,0)
kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r4

8.  Configurarea modulelor

Instalarea modulelor externe

Mulţi utilizatori se vor baza pe module de kernel adiţionale care sunt compilate în afara structurii kernel-ului. Exemple comune sunt driverele grafice binare ATI şi NVIDIA. Acum trebuie să instalaţi aceste module, care se vor compila în raport cu sursele kernelului 2.6 ce se găsesc în /usr/src/linux. Acesta este cazul uzual al emerge nume_pachet pentru toate modulele externe pe care le foloseaţi în mod obişnuit pe Linux 2.4.

Consultaţi din nou capitolul Configurarea Kernel-ului din Manualul Gentoo pentru informaţii adiţionale.

Încărcarea automată a modulelor

S-ar putea să vă fi decis să compilaţi unele componente ale kernelului ca module (în loc să le compilaţi direct în kernel) şi aţi dori ca acestea să se încarce automat la boot, aşa cum se întâmpla in linux 2.4. De asemenea, dacă aţi instalat şi alte module externe, probabil veţi dori să le încărcaţi automat şi pe acelea.

Puteţi realiza acest lucru la fel cum aţi făcut şi pentru linux 2.4. Pur şi simplu deschideţi fişierul /etc/modules.autoload.d/kernel-2.6 într-un editor text şi scrieţi numele modulelor pe care le doriţi încărcate automat.

Cod 8.1: Deschiderea listei module autoload în nano

# nano -w /etc/modules.autoload.d/kernel-2.6

Cod 8.2: Exemplu de listă autoload care încarcă modulele 3c59x şi nvidia

# /etc/modules.autoload.d/kernel-2.6:  kernel modules to load when system boots.
#
# Note that this file is for 2.6 kernels.
#
# Add the names of modules that you'd like to load when the system
# starts into this file, one per line.  Comments begin with # and
# are ignored.  Read man modules.autoload for additional details.

3c59x
nvidia

9.  Trecerea de la LVM la LVM2

Actualizarea la utilitarele LVM2

Notă: Dacă nu folosiţi LVM pentru administrarea stocării datelor, puteţi să săriţi acest capitol şi să treceţi fară probleme la următorul.

Din fericire, actualizarea de la utilitarele LVM1 la omoloagele LVM2 este foarte simplu:

Cod 9.1: Actualizarea utilitarelor de la LVM1 la LVM2

# emerge --unmerge lvm-user
# emerge lvm2

Notă: Uneltele LVM2 sunt total compatibile cu LVM1. Datale dumneavoastră for fi neatinse. Nu stricaţi compatibilitatea inversă prin asta, în continuare veţi putea să porniţi cu Linux 2.4 ca de obicei.

10.  Pornind cu Linux 2.6

Acum este timpul să boot-ăm în Linux 2.6. Închideţi toate aplicaţiile şi reporniţi:

Cod 10.1: Repornirea

# umount /boot
# reboot

La repornire, dacă aţi urmat pas cu pas instrucţiunile din acest document, veţi avea opţiunea în aplicaţia bootloader, de a porni fie Linux 2.4 fie Linux 2.6. Alegeţi Linux 2.6.

Dupa ce sistemul s-a încărcat din nou, verificaţi dacă totul merge corect. Dacă aţi făcut vreo greşeală în configurarea kernel-ului, nu vă faceţi probleme, puteţi să vă întoarceţi la capitolul Configurarea, compilarea, şi instalarea kernel-ului. Faceţi modificările, recompilaţi şi instalaţi noua imagine a kernel-ului, reporniţi şi încercaţi din nou!

Configurarea ALSA

Vom încheia acum configurarea ALSA. Pachetele ALSA oferă un utilitar foarte folositor care face acest proces foarte simplu.

Cod 10.2: Apelarea utilitarului ALSA de configurare automată

# alsaconf

Procesul este liniar: permiteţi actualizarea fişierului /etc/modules.d/alsa, şi apoi reîncărcarea ALSA. alsaconf apoi se va termina. Va trebui să îl rulaţi de mai multe ori dacă aveţi mai multe dispozitive audio în sistem.

Ar trebui acum sa adăugaţi alsasound la nivelul de execuţie boot, pentru ca volumele să fie salvate şi reîncărcate după boot:

Cod 10.3: Adăugarea alsasound la nivelul de rulare boot

# rc-update add alsasound boot

Notă: Utilitarul alsaconf setează nivelele iniţiale de volum. Probabil toate canalele audio vor fi setate pe 'fără sonor' ('mute'). Puteţi ajusta acest lucru oricând folosind utilitarul alsamixer.

Probleme imediate?

În acest stadiu consultaţi din nou secţiunea Greşeli comune la trecerea la kernelul 2.6 ce vă poate fi de ajutor la unele probleme care apar.

11.  Fişiere header şi NPTL

De acum rulaţi Linux 2.6 şi sperăm că aţi rezolvat toate problemele. Ar trebui acum să actualizaţi fişierele Linux kernel header şi să reinstalaţi glibc pentru ca aplicaţiile spaţiu-utilizator să poată beneficia de avantajele noilor facilităţi ale Linux 2.6.

Cod 11.1: Actualizarea la linux-headers

# emerge -u linux-headers

După ce aţi actualizat pachetul linux-headers, în general ar trebui să reinstalaţi glibc. Mai există aici o facilitate care v-ar putea interesa - NPTL. NPTL este un nou model de threading prezent în Linux 2.6, care oferă timpi mult mai scăzuţi de creare şi distrugere a threadurilor. Acest lucru nu va avea un impact semnificativ pe majoritatea sistemelor, dar aţi putea fi tentaţi să îl folosiţi cu ocazia acestui proces de migrare. Pentru a activa NPTL, editaţi /etc/make.conf, adăugând nptl ca variabilă USE.

Atenţie: Dacă alegeţi să activaţi de asemenea şi indicatorul "nptlonly", vă avertizăm că nu veţi mai putea să porniţi cu un kernel 2.4.

Acum, reinstalaţi glibc (ar trebui să faceţi asta chiar dacă aţi ales să nu activaţi NPTL).

Cod 11.2: Reinstalarea glibc în raport cu noile kernel headers

# emerge -a glibc

Dacă aţi activat NPTL, fişierele binare existente nu îl vor folosi decât dupa recompilare. Totuşi, orice fişier binar comilat de acum înainte va folosi NPTL. Aţi putea să recompilaţi acum toate binarele, de exemplu:

Cod 11.3: Recompillarea tuturor pachetelor din sistem

# emerge -e world

Alternativ, puteţi să vă lăsaţi sistemul să treacă în mod "natural" la NPTL, pe măsură ce actualizaţi pachetele la noile versiuni apărute.

12.  Încheiere

Probleme?

Dat fiind volumul incredibil de muncă investit în Linux 2.6, uneori este inevitabil ca unele lucruri care mergeau bine, să nu mai funcţioneze conform aşteptărilor.

Dacă aveţi orice problemă cu kernel-ul Linux 2.6, şi puteţi dovedi că problema respectivă nu există cu Linux 2.4, atunci declaraţi-o ca bug pe interfaţa Bugzilla. Vom investiga problema, şi dacă vom descoperi că este o problemă de kernel, atunci este posibil să vă solicităm să înaintaţi un raport complet centrului bugzilla dedicat kernel-ului.

Înlăturarea kernelului Linux 2.4 din sistem

După ce veţi fi rulat kernel-ul 2.6 mai mult timp, dacă decideţi că nu mai aveţi nevoie de kernel-ul 2.4, paşii care trebuie parcurşi pentru a curăţa sistemul sunt detaliaţi mai jos. Urmaţi procedurile descrise mai jos doar dacă sunteţi siguri că nu mai aveţi nevoie de kernel-ul 2.4 de acum înainte!

Sursele kernel-ului 2.4 pot fi înlăturate folosind uzual comanda emerge. De exemplu, presupunând că aveţi instalate versiuni 2.4 ale surselor de kernel vanilla-sources şi gentoo-sources, puteţi utiliza următoarea comandă pentu a le înlătura, pastrând intacte sursele de kernel 2.6:

Cod 12.1: Exemplu: Înlăturarea surselor Linux 2.4

# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*

Această comandă nu va înlătura complet sursele 2.4 instalate, pentru că există fişiere temporare create în urma compilării. Puteţi să înlăturaţi fişierele rămase fără nici un risc cu următoarea comandă:

Cod 12.2: Înlăturarea fişierelor temporare reziduale

# rm -rf /usr/src/linux-2.4.*

În plus, puteţi înlătura modulele şi celelalte fişiere legate de versiunile anterioare de kernel 2.4, acestea nemaifiind necesare.

Cod 12.3: Înlăturarea modulelor 2.4 instalate anterior

# rm -rf /lib/modules/2.4.*

Imaginile de kernel 2.4 cu care obişnuiaţi să boot-aţi pot fi deasemenea înlăturate fără risc. Mount-aţi partiţia /boot, şi ştergeţi acele imagini. Ar trebui de asemenea să actualizaţi configuraţia aplicaţiei bootloader astfel încât să nu mai facă referire la imaginile şterse.

Unii utilizatori ai kernel-ului 2.4 probabil şi-au instalat şi pachetul alsa-driver pentru a beneficia de noile capabilităţi audio ale kernelului 2.6. Dacă vă număraţi printre ei, şi aţi urmat instrucţiunile din acest document referitoare la compilarea ALSA direct în kernelul 2.6, atunci puteţi să îl eliminaţi pentru a evita eventualele conflicte.

De asemenea, utilizatorii kernel-ului 2.4 înainte foloseau lm-sensors folosind pachetul i2c pentru suport hardware. Acum, driver-ele I2C sunt incluse în kernel, deci şi acest pachet poate fi eliminat pentru a preveni viitoare conflicte.

Serviciul devfsd, care administra devfs poate de asemenea să fie eliminat, acum că folosim udev pentru administrarea dispozitivelor.

Cod 12.4: Eliminarea alsa-driver, i2c, and devfsd

# emerge --unmerge alsa-driver i2c devfsd

Dacă folosiţi LVM, aţi putea opta să vă convertiţi datele la formatul LVM2, pentru a putea beneficia de avantajele pe care acesta le oferă. Totuşi, această operaţie nu vă va mai permite să mai accesaţi vreodată datele respective cu un kernel 2.4. Dacă decideţi să mergeţi mai departe cu conversia datelor (este total opţional!), atunci ar trebui să studiaţi manualul vgconvert pentru instrucţiunile referitoare la realizarea acesteia. Un exemplu este oferit mai jos, în care main este numele grupului de partiţii.

Cod 12.5: Convertirea unei partiţii LVM1 la formatul LVM2

# vgconvert -M2 main


Imprimare

Actualizat la 6 Octombrie 2005

Versiunea originală a acestei traduceri nu mai este întreţinută

Sumar: Acest document vă va ajuta în procesul de migrare de la kernel-ul Linux 2.4 la Linux 2.6, de la devfs la udev, de la OSS la ALSA, şi de la LVM la LVM2.

Daniel Drake
Autor

Sergey Galkin
Contribuitor

Sergey Kuleshov
Contribuitor

Xavier Neys
Editor

Benny Chuang
Editor

Burlacu Bogdan
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.