Page suivante Page précédente Table des matières

3. Note pour les mises-à-jour

3.1 Informations Générales

<CTRL><ALT><DEL> : faites maintenant un réamorçage à froid (donc après extinction complète) pour permettre une plus grande compatibilité avec le matériel. Si vous désirez effectuer un reboot à chaud et si vous savez que cela fonctionne sur votre machine, rajoutez un "reboot=warm" dans la ligne de commande de Lilo. Quelques machines ont besoin de mettre "reboot=bios" pour pouvoir rebooter via le BIOS.

Rappelez-vous aussi que désormais les devices cua* sont obsolètes. Passez à la dénomination du device ttyS* correspondant (ex: cua0 devient ttyS0, cua1 devient ttyS1, etc.).

Certains logiciels ont besoin d'être compilés avec les en-têtes (headers, fichiers .h) du 2.2 pour fonctionner correctement. Par exemple, les binaires Fdutils compilés avec 2.0 ou une version plus ancienne du noyau devront être recompilés avec le 2.2

Depuis le 2.1.115, les fichiers spéciaux (devices) majeurs 4 de /dev/ttyp* ont été enlevés. Si cela vous est vraiment nécessaire (ex: vous avez un message d'erreur qui vous dit "out of pty"), créez un device major 3 /dev/tty* et un device major 2 /dev/pty* (voir le fichier Documentation/devices.txt pour plus d'information). En général, vous devez être certain que votre répertoire /dev est bien mis à jour au cas où vous rencontriez des problèmes

La prise en charge (optionnelle) des devices Unix98 pty a été ajoutée. Si vous désirez les utiliser vous devez démarrer avec au moins une glibc-2.0.9x, et vous devez complètement passer aux Unix98 pty's. En règle générale, la procédure de mise en place des pty Unix98 est :

            - Compiler votre kernel avec CONFIG_UNIX98_PTYS et
            CONFIG_DEVPTS_FS.  - mknod /dev/ptmx c 5 2 - chmod 666
            /dev/ptmx - mkdir /dev/pts - Ajouter dans votre
            /etc/fstab:
            
            none /dev/pts devpts gid=5,mode=620 0 0

            (Note: Le gid=5 est applicable pour un système RedHat qui
            a des tty avec un gid 5. Ajustez avec les bonnes valeurs
            pour votre distribution.  Utilisez mode=600 si vous
            désirez que "mesg n" soit par défaut.)  - monter /dev/pts
          

Le Frame buffer pour les consoles ("fbcons") est maintenant disponible dans le noyau, et ce pour toutes les plateformes (notamment les non-Intel qui, auparavant, ne pouvaient pas disposer d'autres modes que le VGA). VGAcon est encore disponible pour ceux qui le désirent, mais fbcon a l'avantage de fournir un système graphique uniforme sur tous les ports de Linux, et vous raterez en outre le mignon logo avec le pingouin lors du boot ;-). Pour plus d'information, consultez le fichier Documentation/fb/ ; vous devrez aussi télécharger les utilitaires fbset.

3.2 Libc (libc5)

Linux-2.2 est disponible en ELF uniquement. Vous pouvez toujours compiler des programmes en a.out si vous le désirez vraiment, mais le noyau doit être compilé en ELF. Si vous ne parvenez pas à compiler en ELF, consultez le HOWTO sur ce sujet et mettez à jour votre système.

Pour que les modules puissent fonctionner, vous devez posséder une libc-5.4.x ou plus récente. Mettre à jour la libc permet de corriger d'autres problèmes (la sécurité défectueuse par exemple). Notez aussi qu'avant la 5.4.7 il manquait quelques symboles pour la compilation. Essayez de récupérer la dernière 5.4.x. Actuellement, la dernière version publique est la libc-5.4.46.

Si vous upgradez vers la libc-5.4.x, vous devez aussi penser à upgrader votre linker dynamique (ld.so) au minimum vers la version 1.9.9, sinon toutes sortes d'étrangetés peuvent survenir. Actuellement, la version ld.so-1.8.2 ou plus marche, mais upgradez quand même à la version 1.9.9 qui est maintenant disponible. Ne pas prendre une version moins récente que la 1.8.5, par exemple la 1.8.10, qui introduit quelques bugs qui ont été fixés dans les dernières releases. Aussi soyez sûrs de ne pas installer ld.so-2.x sans utiliser une glibc2 / libc6.

Si vous mettez à jour votre système vers la libc-5.4.x, vous devez aussi mettre à jour ypbind si vous utilisez NIS.

Si vous mettez a jour votre système vers la libc-5.4.46, faites attention à bien lire les notices d'accompagnement.

3.3 GNU libc (libc6)

Les vielles versions de la GNU libc (libc6) ont un bug dans le linker dynamique. /etc/ld.so.cache mappe dans la mémoire mais il n'est jamais unmappé. Si un de vos scripts de démarrage appelle ldconfig, /etc/ld.so.cache est effacé. Car Init référence quand même ce fichier; et depuis le 2.1.122, le kernel ne pourra pas remounter le système de fichiers en r/o quand le système s'éteindra. Pour réparer ca, il faut upgarder vers la dernière pre6 de la GNU libc 2.0.7. Et pour contourner temporairement le problème, modifiez vos script de démarrage pour faire ca avant qu'il appelle ldconfig :

ln -f /etc/ld.so.cache /etc/ld.so.cache.old

3.4 Modules

Vous devez upgrader vers la dernière version de modutils pour le noyau 2.2. Cette version marchera aussi avec les noyaux 2.0.

Mais depuis le 2.1.90-pre1, kerneld a été remplacé par un thread du kernel qui s'appelle kmod. Regardez Documentation/kmod.txt pour plus d'information. La principale modification nécessaire est de modifier vos scripts init pour vérifier l'absence de /proc/sys/kernel/modprobe avant de démarrer le noyau.

3.5 Binutils

Si vous mettez à jour les binutils, il faudra lire les notices d'accompagnement pour comprendre la meilleur façon de les upgrader. Non, l'instruction "rm `which encaps`" n'est pas une blague.

La dernière version publique des binutils dans la série 2.8.x est 2.8.1.0.23. Les séries entre 2.8.1.0.25 et 2.9.1.0.2 sont des versions bêta et peuvent être très "buggées". Binutils 2.9.1 (notez l'absence de suffixe) de la FSF doit normalement marcher, et les binutils 2.9.1.0.7 ou version plus vieille doivent marcher également. Pensez seulement à utiliser binutils-2.8.1.0.23 ou binutils-2.9.1.0.7. Les utilisateurs de la Glibc2 devront spécialement utiliser les séries 2.9.1.0.x qui ont résolu la compatibilité entre la glibc2 et les versions binutils-2.8.x.

3.6 Gnu C

Vous devez posséder au minimum le GCC 2.7.2 pour compiler le noyau. Si vous devez mettre à jour à partir d'une plus vielle version, pensez à passer directement sur le GCC 2.7.2.3, qui est la dernière version publique stable. Si vous possédez déjà le GCC 2.7.2 sur votre système, vous n'avez pas besoin de l'upgrader pour que le kernel marche (mais pensez tout de même à upgrader pour fixer les bugs de la dernière version de GCC)

Notez que les derniers compilateurs (egcs, pgcc, gcc 2.8) peuvent faire de mauvaises choses. Des problème peuvent arriver, particulièrement si des optimisation absurdes sont utilisées (comme compiler avec l'option -O9). Actuellement, le seul compilateur C qui peut être compatible est l'Egcs. La version 1.0.3 doit être ok. En général, gcc-2.7.2.3 est connu pour être stable car egcs et les autres n'ont pas encore été minutieusement testés.

3.7 Changement dans le Networking

Lisez avant tout le fichier Documentation/networking/routing.txt et Documentation/networking/policy-routing.txt pour plus d'information sur les changement dans le code du routing. Les classes OSPF ont été ajoutées, et les interfaces de routing sont maintenant créées automatiquement.

Notez bien aussi que certaines tables de routing, comme les loopback routes, peuvent ne pas être vues par certains utilitaires. Vérifiez leur présence dans /proc/net/rt_local.

Pour activer l'IP forwarding, entrez cette commande : echo 1 > /proc/sys/net/ipv4/ip_forward

Des procédures similaires sont nécessaires pour activer d'autres options. Si certaines choses peuvent sembler bloquées, il faudra vérifier le répertoire /proc/sys/net/ipv4/. "1" veut généralement dire "activé", si c'est 0 cela veut dire "désactivé".

Si vous obtenez des erreurs sur votre réseau, vous pouvez mettre à jour les plus récents net-tools qui comprennent le nouveaux format de /proc/net/dev. Ca amènera aussi de nouvelles options comme l'IPv6.

Et depuis le 2.1.102, le code d'IP firewalling a eté remplacé; ipfwadm ne marchera donc plus. Vous devez chercher à obtenir "ipchains" disponible sur http://www.rustcorp.com/linux/ipchains/, et l'utiliser à la place de ipfwadm.

Pour utiliser le masq forwarding vous devez disposer de l'outil "ipmasqadm" disponible sur http://www.rustcorp.com/linux/ipchains/.

Les client DHCP pour le 2.0 ne marcheront plus avec le nouveau code du kernel 2.2. Vous devez upgrader dhpcp et dhcpclient.

Le code dans le kernel 2.2 pour l'ISDN ne marchera sûrement pas pour vous. Si vous voulez des versions plus récentes, allez voir sur ftp://ftp.suse.com/pub/isdn4linux.

3.8 Mémoires

Depuis le 2.1.41, le format de /proc/meminfo a changé. Cela bloquera beaucoup d'utilitaires , qui auront besoin d'être mis à jour. Récupérez le dernier procps-1.2 pour pouvoir ajuster.

3.9 Network File System

Le code du NFS du noyau a été modifié, pour une plus grande performance. Le code pour amd a été lui aussi repartitionné pour de meilleures performances. Vous devez aussi récupérer autofs avec les nouveaux utilitaires NFS. Vous avez maintenant le choix entre le système normal NFS et le système Kernel-level NFS (knfs).

3.10 Utils-linux (cela inclut mount)

Parmi les autres changements dans le kernel 2.2, la limite de taille de 128 Mo pour une partition swap sur les IA32 a été éliminée. Pour utiliser une plus grande partition de swap, vous devez récupérer le dernier mkswap inclus dans les util-linux. Vous devez aussi upgrader les util-linux pour avoir la dernière version de mount.

3.11 RPM

Si vous utilisez une Red Hat Linux ou autre distribution utilisant RPM, vous devrez disposer d'une version plus récente que la 2.2.7.

3.12 DOSEMU

La nouvelle version stable de DOSEMU est disponible pour les kernel 2.2. Mettez à jour vers la version 0.98.4 ou plus récente pour l'utiliser avec le kernel 2.2.

3.13 Loadlin

Le kernel 2.1.22 (et +) utilise une nouvelle méthode pour la détection de la mémoire; les utilisateurs de Loadlin devront mettre à jour vers loadlin-1.6a.

3.14 Sh-utils

Depuis le kernel 2.1.26, le fichier Configure ("make config") a été mis à jour pour rentrer dans la norme POSIX. Il en résulte que vous avez besoin de le mettre à jour. Utilisez sh-utils 1.16 ou plus récent.

3.15 Port parallèle

Depuis le kernel 2.1.33, le port parallèle peut être pris en charge par le driver parport. Soyez certain que le support Plug-And-Play est activé. Le port parallèle ne sera plus à l'endroit habituel; par exemple, le LPT1 (sous DOS) était quelques fois sur le /dev/lp1 sous Linux. Désormais, il sera probablement sur le /dev/lp0 avec le nouveau pilote Plug-and-Play. Si votre imprimante se bloque avec le nouveau driver, essayez de vérifier votre configuration lpd. De bonnes informations sont disponibles dans le fichier Documentation/parport.txt inclus dans le kernel.

3.16 Setserial

Si vous rencontrez des problèmes de type aléatoire (une ligne prétentieuse, perte de caractères etc.) avec les lignes série du dernier kernel, mettre à jour setserial peut vous aider.

3.17 Syncookies

Quand vous compilez votre noyau avec le support Syncookie (CONFIG_SYN_COOKIES) le code de syncookie est par défaut désactivé (contrairement au 2.0.30 et plus). Vous devez explicitement les activer par cette commande :

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

3.18 Bash

Les dernières versions du Bash connaissent des problèmes pour manier les symlinks, ce qui peut poser problème quand on compile des modules. Mettre a jour vers au moins le 1.14 résout ce problème.

3.19 Sysklogd

Les anciennes versions de syklogd font parfois des "segfault" sous le kernel 2.2. Mettre à jour vers la dernière version peut arranger ce problème et, entre autre, amène de nouvelles options comme le système de power-off avec halt (avec les incantations appropriées à halt; voir la page de man) et peut automatiquement décoder les problème du kernel.

3.20 Ncfpfs

Pour mounter des volumes NetWare, vous devez mettre à jour avec la dernière version des utilitaires ncpfs.

3.21 SMBfs

Pour mounter les volumes SMB (Samba / Windows), vous devez utiliser smbmount qui est inclus avec la version 2.0 de Samba. Le fichier Documentation/filesystems/smbfs.txt contient plus d'informations à ce propos. Avec le kernel 2.2, Si cette solution échoue, recompilez quand même une seconde fois et espérez que ca marche ;-). Mike Warfield a un script et des informations à l'adresse http://www.wittsend.com/mhw/smbmount.html que vous trouverez probablement utiles.

3.22 Pcmcia-cs

Si vous utilisez des cartes pcmcia, vous devrez mettre à jour le daemon et ses utilitaires avec la dernière version de pcmcia-cs.

3.23 PPP

Avec les changements du code de routing, ceux d'entre vous qui utilisent le PPP networking devront mettre à jour pppd.

3.24 iBCS

Une nouvelle version d'iBCS est nécessaire pour les noyaux 2.2.

3.25 AppleTalk

Utilisez la version Asu de netatalk pour le support de AppleTalk, la version d'Umich's n'est pas compatible avec les noyaux 2.2.

3.26 Psmisc

L'utilitaire fuser qui vient avec le package psmisc, lit le /proc/*/fd/* pour faire son boulot. Mettez à jour psmisc si le changement vers le kernel 2.2 bloque la version que vous utilisez.

3.27 Tunelp

Une nouvelle version de tunelp est disponible pour que vous puissiez toujours disposer du mode "trustirq"; il améliore l'impression quand on utilise le IRQ-driven lp port.

3.28 PCI utils

Les Linux PCI utils sont disponibles; cela inclut lspci, qui voit en détail les informations à propos du système des devices PCI qui est utilisé dans /proc/pci, et setpci, qui permet toujours de lire et écrire dans les registres de vos devices PCI.

3.29 Xosview

Comme l'interface /proc a changé, cela nécessite une version récente de xosview.

3.30 RealPlayer

La version actuelle de Redal Player 5.0 connaît un bug dans son sous-sytème de gestion du son. Concrètement, cela ne marche plus. Real est au courant de ce problème et devrait mettre à jour son logiciel prochainement. Entre-temps vous pouvez essayer de l'éditer vous-mêmes en faisant :

 dd
          if=/dev/zero of=rvplayer bs=1 count=1 seek=657586
          conv=notrunc dd if=/dev/zero of=rvplayer bs=1 count=1
          seek=665986 conv=notrunc
          

Si vous êtes chanceux, vous entendrez peut-être du son...

Vous pouvez aussi essayer de l'éditer avec :

            dd if=/dev/zero of=rvplayer bs=1 count=1 seek=702554
            conv=notrunc
          

Vous pouvez aussi télécharger rpopen de http://onramp.i2k.com/~jeffd/rpopen/ qui est le pré-chargé avant de lancer rvplayer (c'est un partage d'objets avec le block de rvplayer qui a pour effet de NONBLOCKer /dev/dsp).

3.31 Quotas

Si vous utilisez de larges quotas, vous pouvez upgrader les utilitaires quotas; les nouvelles versions comptent les tailles de fichier en blocs (et non en octets), ce qui permet de dépasser la limite du terabyte (cette limite était auparavant de 4 Go).

3.32 Ping

La plupart des clients ping dans les distributions sont buggés. Récupérez une version à jour dans le package iputils.

3.33 Patch

Les vielles versions de patch arrive pas a effacer les fichiers. Cela peut poser probleme si vous tenter de mettre a jour votre noyaux par patch. Si par exemple, il vous et impossible de compiler le noyaux 2.2 a cause d'une erreur sur le ficher arch/i386/lib/checksum.c, c'est que vous avait une version obsoléte de Patch. Mettez a jour patch et ressayer (ou seulement effacer arch/i386/lib/checksum.c).


Page suivante Page précédente Table des matières