Avertisment :
Acest document nu este valid şi nu mai este întreţinut.
|
Ghidul complet Gentoo Linux de migrarea la kernel-ul 2.6
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.
-
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.
-
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)
General setup --->
[*] Support for hot-pluggable devices
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
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
|
|