Aquest article és una traducció al català de l'article original de Kerneltrap publicat per Jeremy Andrews en el qual s'exposa els pasos necessaris per posar en funcionament els nous nuclis de desenvolupament de linux, la sèrie dels 2.6.0-test*.
Espero que serveixi per tal que molta gent s'animi a provar els nous nuclis i aprofiti els comentaris de l'article per expresar les seves opinions, problemes o solucions.
Tinguent una mica de temps lliure, vaig decidir provar l'últim nucli 2.6.0-test4 al meu 550Mhz PIII, els resultats van ser molt bons.
A mesura que el 2.6 s'acosta, és molt important que s'incrementi el nombre d'usuaris (beta testers), especialment quan es una tasca molt agradable ajudar als desenvolupadors a trobar els seus propis bugs i a estabilitzar el seu treball.
L'objectiu d'aquest document és proporcionar ajuda i trucs als lectors que compilen els seus propis nuclis 2.4 però no han fet el salt als 2.6. Aquest és un nucli en desenvolupament, per tant hi poden haver problemes, però l'estabilitat i l'eficiència és impressionant i no puc recomanar suficientment que el provis avui mateix.
Audiència:
Aquest article està destinat als usuaris de linux que han compilat satisfactòriament els
seus propis nuclis de la sèrie 2.4. si mai has compilat un nucli, t'aconsello que comencis per aquest document:
The Linux Kernel HOWTO http://www.linux.org/docs/ldp/howto/Kernel-HOWTO/
A més a més, és molt aconsellable que qualsevol nou a la versió 2.6 del nucli consulti
el document 'post-halloween' de Dave Jones. És a dir, el que cal esperar de les versions 2.5
Pas 0: Fer una còpia de seguretat de les dades importants
Abans de començar, si aniràs a còrrer un nucli en desenvolupament cal estar segur de disposar d'una còpia de seguretat de qualsevol dada important. Encara que jo no he tingut cap problema utilitzant el 2.6.0-test4 encara hi han bugs ...
Pas 1: Obtenir el kernel 2.6
Totes les versions oficials de codi font del nucli de linux poden ésser trobades a
http://www.kernel.org. És molt aconsellable utilitzar la replica més ràpida per estalviar la càrrega que pateixen les màquines. La llista de rèpliques es pot trobar aquí: http://www.kernel.org/mirrors/
Al moment d'escriure aquest document, la versió actual del 2.6 és 2.6.0-test4, una versió
de desenvolupament. La següent versió serà -test5, llavors -test6 i així successivament fins
que el creador de Linux, Linus Torvalds, decideixi que ha arribat el moment d'alliberar la
versió 2.6.0, la primera versió del molt anticipat nucli 2.6.
Havent obtingut el codi, és una bona ideia baixar la signatura GnuPG i utilitzar-la per
verificar l'autenticitat i validesa del teu nou nucli. Per més informació cal anar a http://www.kernel.org/signature.html.
Pas 2: Revisar la documentació proporcionada
Com a mínim, caldria llegir el README del directori arrel i el fitxer Changes del directori
Documentation, ambdós distribuits amb el codi del nucli de linux.
El README es refereix al nucli com a versió del desenvolupament 2.5. Cal tenir en compte que
el 2.6.0-testX encara forma part de la fase de desenvolupament. (2.6.0 sense l'extenció -test
serà el primer nucli estable de la sèrie 2.6). Es poden trobar molt bons trucs en aquest
document que descriuen com compilar un nucli LINUX. El document comença:
"Hi ha "release notes" per les versions 2.5 del nucli. Llegeix-les detingudament ja que
et diuen com instal·lar el nucli i que cal fer si alguna cosa va malament."
El fitxer Documentation/Changes llista els nou requeriments pel nucli de desenvolupament 2.5, proporcionant una llista de programes que han d'ésser actualitzats per tal que puguin treballar correctament amb el nou nucli. Aquest document comença per:
Aquest document està dissenyat per proporcionar una llista del mínims programes necessaris
per fer funcionar els nuclis 2.6 proporcionant les instruccions que descriuen els problemes
que els usuaris poden trobar quan intenten viure al l'última (Bleeding Edge)."
Pas 3: Actualitza el sistema segons el fitxer Changes
Hi ha un nombre d'utilitats que cal actualitzar per tal que aquestes treballin correctament
amb el nou nucli 2.6. Algunes de les utilitats llistades a 'Changes' no han de preocupar
ja que poden ser específiques de determinats sistemes de fitxers.
No obstant, en necessari tenir uns mínims requeriments de versions pels següents programes.
(Consultar el document Changes ja que els requeriments poden haver canviat)
Name Mínima versió: Com trobar la versió
GNU C Compiler 2.95.3 gcc --version
GNU Make 3.78 make --version
binutils 2.12 ld -v
util-linux 2.10o fdformat --version
module-init-tools 0.9.9 depmod -V
procps 2.0.9 ps --version
Les següents utilitats són específiques dels sistemes de fitxers. Si s'utilitza ext2 o ext3 cal estar segur d'actualitzar el programa e2fsprogs, si s'utilitza JSP cal estar segur d'actualitzar jfsutil, etc ...
Nom Mínima versió Com trobar la versió
e2fsprogs 1.29 tune2fs
jfsutils 1.0.24 fsck.jfs -V
reiserfsprogs 3.6.3 reiserfsck -V 2>&1 | grep reiserfsprogs
xfsprogs 2.1.0 xfs_db -V
nfs-utils 1.0.5 showmount --version
En el cas d'utilitzar-les, cal actualitzar les següents utilitats:
Nom Mínima versió Com trobar la versió
pcmcia-cs 3.1.21 cardmgr -V
quota-tools 3.09 quota -V
PPP 2.4.0 pppd --version
isdn4k-utils 3.1pre1 isdnctrl 2>&1 | grep version
oprofile 0.5.3 orpofiled --version
Si es vol utilitzar ALSA per primera vegada, cal estar segur de visitar http://www.alsa-project.org per obtenir les últimes alsa-lib i alsa-utils.
Pas 4: Configurar el nou nucli
Un dels primers canvis que notarà l'usuari serà el nou sistema de configuració. El vell mètode Tk/Tcl 'xconfig' no existeix, substituit per un nou sistema basat en QT. Els no gaire fans de QT estaran
contents de trobar un sistema 'gconfig' basat en GTK.
Els mètodes per construir un nucli 2.6 són:
make config
És idèntica a la 'config' dels nuclis 2.4. Com el mètode més simplístic, simplement pregunta cada opció de
configuració, una a una. Necessita l'interpret de comandes bash.
make menuconfig
Sembla igual al 'menuconfig' dels nuclis 2.4. Un mètode de configuració basat en la llibreria ncurses.
make xconfig
El nou sistema de configuració per defecte que utilitza les llibreries QT. El vaig trobar molt funcional i fàcil d'utilitzar.
make gconfig
Aquesta opció és un clon de 'xconfig' però basada en les llibreris GTK en comptes de les QT. Desafortunadament, al meu lleuger test, vaig trobar alguns problemes.
make oldconfig
Aquesta opció serà molt funcional quan vagis actualitzant successivament als nous nuclis 2.6. A primera vista sembla igual a 'make config'. No obstant 'oldconfig' llegeix les configuracions actuals de .config i les aplica automàticament, sols preguntant-te per les noves opcions de configuració. Per usar-lo sols cal copiar el fitxer vell .config i després executar 'make oldconfig'.
Quan es configura el kernel 2.6 per primera vegada cal tenir en compte els següents trucs que venen al fitxer README del codi del nucli.
- Tenir drivers innecessaris farà el nucli més gran i, sobre determinades circumstàncies, provocar problemes: provar un controlador de tarja innexistent pot confondre els altres controladors.
- Les configuracions de 'kernel-hacking' provoquen un més gran i/o lent nucli i poden fer-lo menys estable
configurant rutines que tracten de trencar el codi per trobar els problemes del nucli (kmalloc()). Per tant,
segurament cal que responguis negativment a les preguntes de característiques de desenvolupament, experimentals o de debugacio.
ALSA:
Per molta gent que actualitzi des de 2.4 a 2.6 serà la primera vegada que utilitzaran l'Advanced Linux Sound Architecture (ALSA) que ha suibstituit OSS.
Encara que seria temptador activar simplement el deprecat OSS i fer com tota la vida, és potser el moment de treballar amb ALSA. Gràcies a l'ALSA OSS API Emulation no és gens difícil.
Quan es configura el nucli cal activar les opcions d'emulació d'OSS (SND_OSSEMUL, SND_MIXER_OSS i SND_PCM_ASS). També cal estar segur d'activar l'apropiat driver de so (dins l'opció PCI). Finalment, ca estar segur d'instal·lar les últimes alsa-lib i alsa-utils.
Pas 5: Compilar el nucli
Actualment, compilar el nucli és un pas més fàcil que amb el 2.4 ja que no cal executar el pas 'make dep'.
Per construir un nou kernel cal executar 'make bzImage'. Si has escollit compilar algun mòdul cal executar 'make modules' i 'make modules_install'. O es poden agrupar totes juntes amb 'make bzImage && make modules && make modules_install'.
Quan comenci la compilació es notarà que el procés és molt més quiet que era amb el 2.4, proporcionant simples resums en comptes de les sortides del compilador.
Pas 6: Instal·lar el nou nucli
Ara que s'ha compilat el nou nucli, cal copiar-lo al lloc adequat. Per exemple, a les arquitectures i386 es troba a 'arch/i386/boot'. Es necessari copiar el nucli i el nou System.map al directori /boot.
Per exemple:
# pwd
/usr/src/linux-2.6.0-test4
# mv arch/i386/bzImage /boot/bzImage--2.6.0-test4
# System.map /boot/System.map-2.6.0-test4
# cd /boot
# rm System.amp
# ln -s System.map-2.6.0-test4 System.map
Es pot notar que el nou nucli 2.6 és més gran que l'últim nucli 2.4 que es compila amb la mateixa versió de GCC. No obstant, es possible tenir més opcions activades.
-rw-r--r-- 1 root root 1094390 Aug 12 20:30 bzImage-2.4.21-ck3
-rw-r--r-- 1 root root 1639129 Aug 27 22:06 bzImage-2.6.0-test4
Una vegada copiat el nucli a lloc, cal configurar el carregador del boot (boot loader).
Segurament estarà utilitzant grup [manual] o lilo
[manual], es pot consultar la documentació
apropiada en el cas de no estar segur de la manera com el carregador de boot treballa.
Pas 7: Encara no és massa tard
Sense intentar alarmar, en aquest punt encara no s'ha realitzat cap acció que que pugui danyar les dades del disc dur. No obstant, el següent pas implica iniciar el nou kernel, per
tant per estar segur a l'últim moment cal recomanar de estar segur que es disposa d'una còpia de seguretat de qualsevol dada important del disc dur.
Pas 8: Provar el nou nucli
Ara, el moment pel qual estavem esperant ... és el moment de reiniciar l'ordinador i provar el nou compilat nucli 2.6. En el cas de realitzar totes les accions correctes, es veurà el
missatges amigables de boot i després el típic login.
En el cas d'instal·lar ALSA per primera vegada, és aconsellable comprovar que el driver de la tarja de so s'ha carregat correctament executant 'cat /proc/asound/cards'. Per exemple:
$cat /proc/asount/cards
0 [Live ]: EMU10K1 - Sound Blaster Live!
Sound Blaster Live! (rev.5) at 0x18e0, irq 11
En el cas de veure una sortida similar i que el so no funciona correctament, cal executar
'alsamixer' i comprovar que el dispositiu està activat.
Agrairia que en el moment que qualsevol usuari provés el nou nucli posés algun comentari amb les refleccions. Accepto qualsevol comentari sobe com fer que els passos exposats siguin més útils.
En el cas de tenir problemes al executar el nou nucli, una vegada més és aconsellable llegir el README del directori arrel de les fonts que disposa d'una secció titulada 'IF SOMETHING GOES WRONG' (si alguna cosa va malament). A més a més, cal consultar el fitxer del directori
arrel REPORTING-BUGS si es constata algun problema. Abans de postejar algun problema a la llista del kernel cal estar segur de buscar un o més dels molts lkml (linux kernel mailing lists) per veure si algú ha tingut el mateix problema i millor encara, si algú que ha proporcionat un pedaç que solucioni el problema.
Preguntes més freqüents
Gràcies a les importants aportacions dels lectors en forma de comentaris, he posat alguns aleatoris però molt útils trucs al final del document. En el cas que qualsevol lector
tingui algún truc especial, senti's lliure d'escriure un comentari.
Actualment estic fent funcionar un nucli 2.6.x, com puc actualitzar facilment a la següent versió?
El procés està descrit aquí.
El compilador GCC 3.x funciona per compilar el nucli de linux?
Personalment, jo he compilar el nucli 2.6.0-test-4 que estic actualment usant amb el gcc 3.2, i no he tingut cap problema. Sembla que hi ha concens que funciona a la majoria de casos però en el cas d'experimentar problemes de compilació cal provar-ho amb la versió aconsellada de gcc, la 2.95.3.
On puc apendre més sobre l'ALSA?
Hi ha molta informació sobre 'Advanced Linux Sound Architecture' a la seva pàgina oficial: http://www.alsa-project.org/.
Funcionen els drivers d'NVidia amb el nucli 2.6?
S'ha dit que uns drivers d'NVidia que funcionen amb el nucli 2.6 es poden trobar a http://www.minion.de/.
Com puc instal·lar i utilitzar el sistema de fitxers reiser4?
Els creadors de reiser4, namesys tenen un document com començar.
Hi han alguns trucs especials pels usuaris de RedHat 9?
Esteu de sort, he vist a dos documents que tracten les problemàtiques especifiques d'actualitzar a nucli 2.6 a redhat9, aquí i aquí.
Hi han alguns trucs especials pels usuaris de Debian?
Alguns lectors han apuntat a aquest article de linmagau.org, encara que es referixi a compilar un nucli 2.4. En aquest moment, existeix un paquet pel nucli 2.6.0-test2 aquí.
A més a més, afegeix, "Un sistema Debian Woody tindrà problemes amb els mòduls. Però la gent corrent Debian Sid (i Sarge) poden fer un 'apt-get install module-init-tools'. Estic content que Debian troba en temps de boot si utilitzar els nous module-init-tools o els més vells modutils, encara que potser totes les distribucion ho fan."
Com és que no m'has avisat amb el problema 'xx'?
Actualment no m'he trobat amb cap problema quan vaig actualitzar a 2.6.0-test4. A mésura que trobi nous problemes (i solucions) els aniré posant aquí.
Provar el nou kernel 2.6.x sense compilar
Si a algú li fa quelcom de respecte posar-se a compilar aquesta nova branca del kernel de Linux, una alternativa és utilitzar kernels i mòduls precompilats que ofereixen diferents distribucions.
Jo he provat diferents 2.6 test amb el Cooker de Mandrake i no hi ha cap problema que pugui oferir importants maldecaps. Les dependències noves, com les de les eines dels mòduls, són resoltes per l'eina urpmi.
Per aquells que estiguin interessats en provar-ho en aquesta distribució, estarà disponible molt segurament el test5 en els contribs de la nova versió 9.2 de Mandrake. Aquesta pròxima versió apareixerà molt probablement a finals d'aquesta setmana o principis de la que ve.
Algú té experiències amb altres distribucions com ara Suse o RedHat? Pel que em sona, hi ha RPMs per la darrera.
Collonut !!
No em pensava que ja hi hauria traducció al català !! Molt bon treball !!
Vaig compilar el nucli fa temps arrere, però encara queda per saber un bon camí !
Adeu !
proba del nou kernel
Hola a tots. Acabo de instalar el nou kernel i no m'ha donat gaire bon resultat per el moment. La m@¡quina no consegueix arrencar. Ni tans sols en fica kernel panic. res no fica res. Ara vaig a probar de ficar-li el patch però dubto que sigui per això. Com podría saber que li passa?. Utilizo Knoppix 3.3 sobre un Samsung x05.
Gracies.
giosoftware
Una cosa que pot ser
Una cosa que pot ser, es que no hagis compilat amb suport per framebuffer i no vegis com carrega, pero igualment la llumeta del Disc Dur treballant no hauria de parar de fer pampallugues :D i al cap d'una estona engegar-se el servidor X.
A mi em va passar això pero vaig veure que si que l'estava carregant.
Pero si dius que la maquina no consegueix arrencar nose que pot ser :S et dona algun tipo de missatge d'error?
Vinga que hi hagi sort!
Ja arrenca!!
Ja el tinc funcionant. Vaig tornar a compilar-ho vigilant amb més cura les opcions del kernel i ja va anar bé. Segueixo sense veure el missatges des sistema quan arrenca (tinc el suport del framebuffer) pero en pocs segons ja tinc les X al monitor. Encara hi han coses que no em funcionen (usb 2.0, só (AC'97), winmodem, wireless (Intel PRO/WIRELESS 2100 3B)). L'he compilat unes 20 vegades amb dif. opcions, surt fum!!! pero espero tenir-ho funcionant en unes setmanes
Vinga. Adeu
Compilar module-init-tools per una woody
Per la gent que vulgui fer servir un kernel de la branca 2.6 amb una woody explicaré d'una manera breu com compilar el module-init-tools i així no tenir problemes amb els mòduls.
# wget http://kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.0.tar.bz2
# tar xvjf module-init-tools-3.0.tar.bz2
# cd module-init-tools-3.0
# ./configure --prefix=/
# make moveold
Això renombrerà, les utilitats antigues a utilitat.old i així si s'ha de carregar un mòdul per kernels inferiors a 2.5.x cridarà les utilitats antigues.
# make
# make install
# ./generate-modprobe.conf /etc/modprobe.conf
**Tot això es pot trobar al README que acompanya el paquet.