Il y a quelques mois (alors que les versions 1.3.xx sortaient avec un rythme éffréné), on entendait parler d'une nouvelle version de Linux, à priori 1.4, avec le support du SMP (Symetrical Multi Processors) mais tout cela restait bien vague. Et puis patatra, Linus nous sort la version 2.0.0, un changement de version majeur !
Si certains restent sceptiques avec les changements de version (style passage de 3.11 a 95), dans le monde de Linux, cela revet une importance capitale étant donné les améliorations apportées à chaque fois aux version mineures.
En plus d'apporter de nombreuses corrections structurelles (les modules) et la suppression de nom moins nombreux bug des version 1.2.x, Linux 2.0 est encore plus stable, plus rapide, plus sur que son ainé.
Voici une liste non-exhaustive des nombreuses améliorations de Linux 2.0.x :
Certaines parties du noyau peuvent maintenant etre chargées pendant l'execution de ce dernier, ce sont les modules. On peut utiliser des commandes pour charger/décharger un module de la mémoire. Certains modules peuvent etre chargés automatiquement si le systeme en a besoin, pour les modules PPP/SLIP par exemple.
Les applets ou applications JAVA sont désormais considérées comme des applications "normales" pour Linux, on peut les lancer, les killer, etc.
Vous pouvez allez lire vos partitions win95, ouahhh génial ! :-). Support des quotas utilisateurs, comme sur Solaris, cool pour les administrateurs qui ont peu de gigas en stock.
Les raisons de passer de Linux 1.2.xx à Linux 2.0 sont donc nombreuses, il nous reste à savoir comment.
Il y a deux mois, nous vous avions donné les sources du noyau 2.0.10, sans explications mais cela répondait à une demande de certains de nos lecteurs qui avaient la version 2.0.0 déjà installée. Pourtant, les sources ne suffisent pas pour faire évoluer une installation de Linux avec le noyau 1.2.x vers le noyau 2.0.x.
Pour passer de Linux 1.2.13 (à priori) à Linux 2.0.x, il existe deux méthodes principales, une simple et l'autre nettement plus compliquée.
Quelle que soit la distribution actuelle de Linux que vous utilisez, la méthode la plus simple et la plus sure est de réinstaller une version complète de Linux. Le changement de version majeure est un bon moment pour refaire une installation complète. Pensez tout de meme a sauvegarder vos repertoires /root, /home, /etc, et tout ce que vous voulez garder, pensez a sauvegarder les fichiers cachés. Il faudra quand meme recompiler un noyau pour avoir un systeme vraiment adapté à vos besoins.
La deuxième façon de passer à Linux 2.0 est plus corriace : il s'agit d'upgrader un systeme existant. Le principal problème concerne la distribution que vous avez installé. Si vous avez une Red Hat, il faudra que vous trouviez les packages Red Hat .rpm et utilisiez la commande upgrade. Pour la slackware, c'est plus simple, soit vous recupérez les packages slackware 3.1 et vous utilisez pkgtool, soit vous faites tout vous meme a la main avec les .tgz. Je conseille cette dernière méthode mais c'est celle qui demande le plus d'investissement et il faudra procéder de la meme façon la prochaine fois. Linux n'est pas windose, il faut parfois s'investir un peu pour avoir un système puissant. En upgradant manuellement linux, on apprend la plupart des choses qu'il faut savoir sur l'organisation de son systeme, c'est pédagogiquement intéressant et en plus, vous savez exactement ce que vous faites.
La première chose à récupérer, ce sont les sources du noyau 2.0, la dernière release est la 2.0.20. Il faut aussi avoir les sources des modules, les fichiers interessants sont linux-2.0.20.tar.gz et modules-2.0.tar.gz. On les trouve sur les sites ftp comme ftp.ibp.fr ou sur la plupart des CDROMs de distributions de Linux.
Mais avant d'installer le noyau, il faut etre sur de posseder les programmes suivants avec les versions données :
Certains éléments sont indispensables (linker, libc, proc, make, util-linux, binutils, gcc2.7.2, daemon PPP) , les autres juste recommandés. Vous trouverez ces fichiers dans les distributions basées sur slackware sous forme de tgz, pour Red Hat, il faudra utiliser manuellement rpm (ou upgrade) avec les fichiers .rpm. Les noms de ces fichiers sont assez explicites pour retrouver un numéro de version.
Nous avions étudié, dans un précédent LINE, la recompilation du noyau de la version 1.2.13 mais pour ceux qui ont installé la version 2.0.x, cela a du leur faire un choc, les options sont bien plus nombreuses. N'oubliez pas que tout ceci doit se passer en root !
En suppostant que votre système execute deja un noyau précompilé de Linux 2.0.x (donc que le systeme est bien upgradé), récupérez les fichiers linux-2.0.x.tar.gz ou x est le numéro de version mineur. Placez ces fichiers dans /usr/src et néttoyez ce répertoire des anciennes sources de linux :
Créez ensuite les liens symboliques pour /usr/include/asm, /usr/include/linux, /usr/include/scsi:
# cd /usr/include # rm -rf asm linux scsi # ln -s /usr/src/linux/include/asm-i386 asm # ln -s /usr/src/linux/include/ linux linux # ln -s /usr/src/linux/include/scsi scsiUn peu de nettoyage de .o est primordial :
# cd /usr/src # make mrproperIl y a trois modes de configuration pour le noyau : sous X, avec ncurses et le mode normal.
Nous vous recommandons la configuration sous X, appelée par :
# make xconfigPour la version ncurses, c'est make menuconfig et le mode normal est appelé par make config.
Nous nous sommes basés sur le mode de configuration sous X, notez que vous devez disposer d'une version récente de Tcl/Tk installée. Voici un aperçu de ce que vous verrez sur votre super moniteur SVGA de la mort :

Chaque bouton au centre permet de configurer une partie spécifique du noyau.
Cette partie du noyau permet de préciser la maturité du code. L'unique question posée est :
prompt for development and/or incomplete code/drivers ?
poser les question sur les parties de code en développement et/ou incomplètes ?
Le bouton help permet d'obtenir un renseignement concernant cette question. La zone de gauche de la question comporte trois boutons radio : y, m et n. La plupart du temps, m est désactivé et on a le choix entre y et n. Ces différentes options sont : yes , module et no.
Nous n'avons expliqué que les questions relatives à la configuration générale du noyau, en ce qui concerne des parties spécifiques (configuration réseau avancée, support d'un chipset non standard, etc.), utilisez les boutons help et les fichiers de documentation présents dans /usr/src/linux/Documentation/
La réponse par défaut est donc "no" mais lisez quand meme les explications du noyau meme si elles sont en anglais.
La question ci-dessus demande si nous voulons les questions relatives a des parties de code en cours de developpement et/ou incomplete, la réponse conseillée est non mais attention : vous ne pourrez sélectionner le support de la machine virtuelle JAVA si vous répondez par n ! Si vous voulez vous amuser avec JAVA, répondez ici par y, mais il faudra recuperer le kit de developpement JAVA pour Linux, nous vous en reparlerons dans un prochain LINE.
Sélectionnez next pour passer à l'étape de configuration suivante ou main menu pour revenir au menu principal.
Enable loadable module support
Autoriser le support des modules chargeables ?
On répondra en général par y meme si on ne souhaite pas utiliser les fonctionnalités des modules tout de suite, la taille du noyau n'est pas beaucoup plus importante et cela évite de recompiler trop souvent son noyau. De toute façon, il faut essayer au possible de modulariser son noyau.
Set version information on all symbols for modules
Placer les informations de version sur tous les symboles des modules ?
En général, on répond par non à cette question, la fonctionnalité offerte est de pouvoir upgrader les modules sans recompiler le noyau mais le problème, c'est qu'on ne peut plus intégrer certaines fonctionnalités directement dans le noyau, par exemple le module PPP.
Kernel daemon support (e.g. autoload of modules)
Intégrer le support du daemon kerneld (par exemple pour le chargement automatique des modules) ?
Certains filsystems et drivers peuvent etre automatiquement chargés par le noyau lorsque ce dernier en a besoin (imaginez que vous vouliez établir une connection ppp ou aller lire sur votre partition dos). C'est le programme kerneld, chargé lors du boot qui permet ce comportement. Cela surcharge un peu le noyau mais c'est tellement pratique que je vous conseille de répondre par y.
Comme son nom l'indique, cette partie permet de régler certains paramètres essentiels pour le noyau.
Kernel math emulation
Emulation de coprocesseur mathématique par le noyau ?
Répondez par y si votre processeur n'intègre pas de coprocesseur mathématique, sinon n.
Networking support
Support réseau ?
Le support réseau est indispensable pour tout ce qui touche à la communication (sans blague ?). Répondez par y si vous voulez utiliser Linux comme simple client tcp/ip ou uucp (via PPP, PLIP ou SLIP) et bien sur si vous projetez de créer un ou des serveurs. N'oubliez pas, pour les autres que certains programmes avec des fonctionnalités réseau mais qui marchent en local (des jeux comme xpilot par exemple) ne marchent que si vous avez une loopback interface, c'est à dire une configuration réseau minimale, je conseille donc un y pour tout le monde !
Limit memory to low 16MB
Limiter la mémoire aux 16 premier Mo ?
Certaines anciennes cartes mères ne marchaient qu'en validant cette option, mais essayez toujours de répondre par n a cette question, surtout si vous avec 128Mo de ram :-)
PCI bios support
Support du bios PCI ?
Si vous avez un bus PCI (486 récents et Pentiums), choisissez y. Si vous remarquez des plantages bizarres, essayez de repondre par n à cette question et si ça marche, c'est que votre bios est buggé. Répondre par n sur un ordinateur avec bios PCI réduit fortement les performances du système, essayez de faire mettre à jour votre bios.
System V IPC
Support des IPC system V ?
Pour que votre système soit compatible avec les extenstions SystemVr4 concernant la communication inter-processus via les segments partagés, les sémaphores,etc... Vous devez répondre par y. Vous ne comprenez rien à ce que je viens de dire ? répondez par y parce que sinon, de nombreux programmes risquent de mal fonctionner !
Kernel support for a.out binaries
Support du noyau pour les binaires a.out ?
Le mieux est de repondre par y mais esperons qu'un jour, tout aura été recompilé pour ELF et que l'on pourra répondre par n !
Kernel support for ELF binaries
Support du noyau pour les binaires ELF ?
Si vous etes masochistes, vous pouvez toujours répondre par non mais votre systeme risque d'etre fortement restreint (la plupart des binaires sont maintenant en ELF). On répond obligatoirement par y !
Compile kernel as ELF - if you're GCC is ELF - GCC
Compiler le noyau en ELF (si votre gcc compile en ELF) ?
Il est possible de compiler son noyau dans l'ancien format a.out mais nous vous conseillons fortement d'utiliser du ELF plus actuel et plus puissant, répondez par y sauf si vous avez un GCC d'avant la version 2.7.0
Processor Type
Type de processeur
En général, le bon processeur est indiqué mais vérifiez quand meme, le noyau effectue certaines optimisations pour tel ou tel processeur. Vous avez le choix entre 386, 486, pentium et pentium pro (les cyrix selectionneront pentium). Choisissez 386 ou 486 si vous constatez des problemes avec votre nouveau noyau.
Vous allez ici sélectionner les options pour vos interfaces et disques IDE
Normal Floppy Disk Support
Support des lecteurs de disquettes "courants"
A moins d'avoir un lecteur de disquette exotique, on répond en général par y à cette question.
Enhanced IDE/MFM/RLL disk/cdrom/tape support
Support étendu des disques/cdroms/archiveurs IDE/MFM/RLL ?
Si vous n'avez pas une configuration purement SCSI, cette partie du noyau est généralement activée, le nouveau support permet de gerer jusqu'a quatre interfaces IDE avec deux périphérique sur chaque.
Old harddisk (MFM/RLL) driver
Ancien gestionnaire de disques MFM/RLL ?
Vous ne pouvez sélectionner cette option que si vous n'avez pas choisi le support étendu, et vous devez savoir ce que vous faires :-). Pour ceux qui veulent un noyau tres petit (pour faire un rootdisk par exemple), ce gestionnaire est plus petit que le nouveau (13k de moins).
Use old disk-only driver on primary interface
Utiliser l'ancien gestionnaire disque-seulement sur l'interface principale ?
C'est un mélange des deux options précédentes : l'ancien gestionnaire est utilisé pour la première interface et le nouveau pour les trois autres. Cela permet d'etre sur de ne pas booter sur un Cd rom mais franchement, peu de gens vont répondre par y à cette question.
Include IDE/ATAPI CDROM support
Inclure le support des cdroms IDE/ATAPI ?
Une question explicite, pas de problème !
Include IDE/ATAPI TAPE support
Inclure le support des archiveurs IDE/ATAPI ?
Si votre sauvegarde se connecte sur une interface IDE, répondez par y à cette question pour pouvoir l'utiliser sous Linux.
Support removeable IDE interfaces (PCMCIA)
Support des interfaces amovibles IDE (PCMCIA) ?
Il existe des interfaces IDE + disques pour portables sur port PCMCIA, ils peuvent etre pris en compte sous Linux mais ce n'est pas une partie très bien documentée, nous ferons surement un article sur Linux et les portables dans un futur Line.
CMD640 chipset bugfix/support
Support et correction du chipset CMD640
Présent sur les cartes meres "Neptune" ou "SiS" pour 486 PCI et Pentiums, ce chipset est supporté par Linux car il comporte de nombreux problèmes. Ceux qui ont un chipset CMD640 sur bus VESA doivent donner le parametre "ide0=cmd640_vlb" au boot en plus d'inclure cette partie du noyau.
CMD640 extended support
Support étendu du CMD640
Linux peut, sur certaines cartes comportant le CMD640, sélectionner automatiquement le mode PIO, répondez à priori par n.
RZ1000 chips bugfix/support
Support et correction du chipset CMD640
Idem CMD640 mais pour le chipset RZ1000
Intel 82371 PIIX (Triton) DMA Support
Support DMA pour le chipset 82371 PIIX (Triton)
Le chipset Triton est un des plus répandus, si vous avez un tel chipset (430FX) et des périphériques IDE (pas SCSI), sélectionnez cette option.
Other IDE chipset support
Support d'autres chipsets IDE
Certains controleurs nécessitent une configuration pour activer les disques 3 et 4, ce support permet cette configuration, liée à un passage de paramètre au moment du boot.
note : les options en grisé correspondent à des parties de noyau activables en passant un paramètre au boot, par exemple avec LILO ou Loadlin. Clickez sur les boutons HELP pour les explications relatives à ces options.
Ramdisk support
Support Ramdisk ?
Faites attention, cette option est surtout utilisée pour créer des root disks pour les installations des distributions. Un ramdisk sous linux ne sert pas à grand chose, nous ne sommes pas sous DOS et non seulement nous avons accès à toute la RAM mais en plus, plus on en a, plus on est heureux, la réponse habituelle est donc n.
Nous n'allons pas expliquer en détails la configuration du noyau pour une utilisation réseau avancée. Cependant, il est préférable de toujours configurer le noyau pour un support réseau minimal pour jouer à certains jeux meme en local et établir des connection PPP, SLIP, PLIP.
TCP/IP Networking
Gestion de réseaux TCP/IP ?
TCP/IP est le grand standard des protocoles de transport et de routage d'informations informatiques sur réseau, c'est celui utilisé par Internet (Internet Protocol). Il est important de répondre par y à cette question meme si vous n'utilisez votre système qu'en local, certaines applications sous X ont besoin de l'interface de retour (loopback interface), un faux réseau qui permet à une machine de communiquer avec elle-meme.
Le reste de la configuration réseau est correctement sélectionnée par défaut mais si vous voulez créer un serveur, ce n'est pas la bonne doc pour vous !
Si vous avez des périphériques SCSI, c'est ici que vous allez configurer Linux pour les utiliser, c'est très simple et on se demande pourquoi ce n'est pas le seul standard de périphériques mais bon... (vous me direz, j'ai du IDE ;-)
Nous allons ici configurer le noyau pour un utilisation disons normale : configuration réseau minimale avec possibilité de faire du PPP, PLIP, SLIP.
Sélectionnez le dummy net driver support, ça ne coute rien et ça permet de faire fonctionner certaines applications locales avec PPP ou SLIP, activez d'ailleurs (si vous en avez besoin) un des protocoles (en général PPP), par exemple en tant que module.
ISDN = RNIS, c'est pour ceux qui veulent utiliser numeris, par exemple, je ne peux pas vous aider...
Si vous avez, comme moi, un vieux (et lent) CD-ROM sur interface propriétaire, choisissez le support pour votre cdrom en choisissant la bonne option dans la liste proposée.
Le choix des systèmes de fichiers est primordial sous Linux, c'est une partie très importante du noyau. Rappelons qu'un système de fichier est une méthode pour organiser les fichiers sur une partition d'un périphérique d'entrée-sorties comme les disques durs et les disquettes. Pour avoir une installation stable de Linux, il faut utiliser le système de fichiers Second Extended FileSystem (ext2fs) pour la partition principale (bootable).
Choisissez donc obligatoirement le support du ext2fs.
le proc filesystem permet d'obtenir des renseignements en temps reel, certains programmes ne marchent pas sans lui, sélectionnez-le de préférence (je dirais meme que c'est primordial !)
Si vous voulez accéder a vos partitions DOS, sélectionnez les options DOS FAT et MS DOS Filesystem.
Si vous voulez voir les noms longs sous Win95, sélectionnez le VFAT filesystem.
Pour lire vos cd-roms préférés sous Linux, il faut activer le suppport du ISO 9660 Filesystem.
Pour le reste, laissez les options par défaut, à moins que vous connaissiez...
Il reste encore trois parties à configurer : dans character devices, activez le support de l'imprimante parrallèle (parallel printer) si vous en possédez une, l'option est désactivée par défaut. A priori, laissez le reste tel quel.
La deuxieme partie est la configuration sonore, qui dépasse le cadre de cet article.
La dernière concerne les hackers, laissez tout tel quel.
Et voila, vous devez avoir configuré votre kernel comme il faut. N'oubliez pas de sauvegarder cette configuration en choisissant l'option Store configuration to File du menu principal. Ceci fait, sélectionnez l'option Save and Exit.
Nous entrons dans la dernière ligne droite de notre création d'un noyau de Linux réellement adapté à nos besoins.
Pour lancer la compilation du noyau, tapez tout simplement :
make zImageCeci va créer une image compressée du noyau, cela prend un certain temps, meme sur un P200 ! N'oubliez pas que vous etes sous Linux alors continuez votre tache favorite pendant la compilation mais essayer de laisser des ressources au compilateur GCC qui est un vrai glouton !
Après la compilation, il faut copier cette image dans votre répertoire racine, pour remplacer l'ancien noyau qui porte surement le nom de vmlinuz (z pour compressé). Pour éviter tout problème, il faut impérativement sauvegarder l'ancien noyau !
L'image du noyau compilé se trouve dans /usr/src/linux/arch/i386/boot/zImage, verifiez que ce fichier existe.
Voici la suite de commande habituelle pour installer le nouveau noyau à la place de l'ancien :
cp /vmlinuz /vmlinuz.old cp /usr/src/linux/arch/i386/boot/zImage /vmlinuzVous pouvez maintenant néttoyer les sources du noyau avec :
cd /usr/src/linux make mrproperSi votre systeme Linux démarre grace au vraiment pratique LILO (LInux LOader), vous devez enregistrer la nouvelle image du noyau dans votre fichier de configuration de LILO.
Pour pouvoir rebooter avec l'ancienne version du noyau, s'il y avait un probleme avec le nouveau, il faut ajouter une entrée dans le fichier de configuration de LILO. Ce fichier se trouve dans /etc et se nomme lilo.conf.
Editez-le avec votre éditeur favori et rajoutez une entrée à la fin du fichier pour l'ancien noyau. Cela doit donner a peu pres ca (il ne faut pas modifier le fichier, juste ajouter les lignes suivantes) :
image = /vmlinuz.old root = /dev/hda2 label = OldLinux read-onlyEn redémarrant l'ordinateur, vous pourrez désormais choisir le système OldLinux correspondant à l'ancienne image du noyau. La ligne root enregistre votre partition bootable ou se trouve Linux, ici c'est la deuxieme partition sur la premiere interface IDE.
Pour reconfigurer LILO, vous devez lancer (toujours en root), le programme lilo et le tour est joué. Vous pouvez maintenant taper un petit reboot ou shutdown -r now et essayer de démarrer votre nouveau système avec Linux 2.0 !
Au sujet de LILO, nous ferons surement un article prochainement car ce programme est certes petit, mais très pratique, surtout pour passer des paramètres au noyau.
Nous avons vu que Linux gérait les modules, parties du noyau chargeables ou déchargeables lors de l'exécution du noyau. Le choix "m" lors de la configuration permet d'intégrer la partie correspondante dans le noyau en tant que module. Au lieu de répondre par y, on peut souvent choisir y pour faire un noyau plus petit et plus rapide mais avant de faire ce genre de choix, faites déjà une installation "normale" et attendez notre prochain article sur les modules de Linux 2.0.
La première partie de cet article est inspirée des informations situées sur le site http://www.ecsnet.com. Ce site contient tous les fichiers et toutes les informations utiles pour passer de Linux 1 vers Linux 2.0 mais attention, certaines explications concernent la distribution de Red Hat uniqument.