Linux gère sans aucun problème les machines basées sur Pentium. Pour optimiser un peu la compilation, il suffit de spécifier Pentium lors de la recompilation du noyau. Il existe toutefois un gcc spécialisé pour Pentium, qui est en cours de développement.
Il suffit de consulter la page http://www.goof.com/pcg
pour
plus de renseignements.
Les nouveaux sources du noyau Linux peuvent être récupérés sur
ftp.lip6.fr
dans le répertoire
/pub/linux/kernel/sources/v2.0
pour les versions dites
"stables". Il s'agit d'un miroir du site ftp.funet.fi
.
Il existe un autre répertoire : v2.1
: il s'agit de la version
de développement. Je vous déconseille de l'installer : il s'agit de noyaux
en cours de développement; ils peuvent être stables mais il est également
possible qu'ils soient complètement bogués. En les utilisant,
vous prennez le risque de perdre des données de la machine.
Installez donc les sources (normalement dans le répertoire
/usr/src/linux
). La compilation est très simple à
réaliser mais vous devez suivre quelques points très scrupuleusement :
make config
va demander la configuration que vous
souhaitez.
Certains points peuvent vous sembler assez obscurs. Dans ce cas, ne les
changez pas. Vous pouvez lancer make menuconfig
en
mode texte pour avoir le programme en couleur ou make xconfig
sous X à condition d'avoir installé Tcl/Tk.
Configurons ensemble... Remarque importante : il s'agit du noyau
2.0.26... donc certains champs risquent ne pas exister dans d'autres versions.
# make config rm -f include/asm ( cd include ; ln -sf asm-i386 asm /bin/sh scripts/Configure -d arch/i386/config.inCela n'a que peu d'intérêt : il s'agit de positionner des liens symboliques, mais il ne faut pas oublier !
* * Code maturity level options * Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?] *Cette option permet de spécifier si vous voulez avoir certaines options particulières. Les options ainsi proposées peuvent entrainer l'inclusion de périphériques pas encore arrivé à maturité. Toutefois, si vous souhaitez utiliser les modules chargeables avec
kerneld
, répondez Y
.
* * Loadable module support * Enable loadable module support (CONFIG_MODULES) [Y/n/?] Set version information on all symbols for modules (CONFIG_MODVERSIONS) [N/y/?] Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) [Y/n/?]Cette partie est spécifique aux modules chargeables. Pour répondre aux questions, il y a trois solutions : soit l'option par défaut (lettre en majuscule) est déjà adéquate, soit il suffit de la préciser. Si vous ne savez pas à quoi correspond cette option, tapez
?
: une brève description va alors apparaître.
Dans le cas présent ci-dessus, je vais utiliser les modules
chargeables avec le système de chargement automatique ("kerneld").
* * General setup * Kernel math emulation (CONFIG_MATH_EMULATION) [N/y/?] Networking support (CONFIG_NET) [Y/n/?] Limit memory to low 16MB (CONFIG_MAX_16M) [N/y/?] PCI bios support (CONFIG_PCI) [N/y/?] System V IPC (CONFIG_SYSVIPC) [Y/n/?] Kernel support for a.out binaries (CONFIG_BINFMT_AOUT) [Y/m/n/?] Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/m/n/?] Kernel support for JAVA binaries (CONFIG_BINFMT_JAVA) [N/y/m/?] Compile kernel as ELF - if your GCC is ELF-GCC (CONFIG_KERNEL_ELF) [Y/n/?] Processor type (386, 486, Pentium, PPro) [486] defined CONFIG_M486La première option n'est nécessaire que si vous ne disposez pas d'un processeur arithmétique. Je vous conseille très fortement de l'éviter. Si vous disposez d'une machine avec PCI et non 486, il vous suffit de donner les caractéristiques de la machine. Du côté des formats exécutables, il est préférables d'activer les formats ELF et a.out.
* * Floppy, IDE, and other block devices * Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?] Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]Je demande ici a gérer mon lecteur de disquettes comme module chargeable, et d'une manière générale, j'active le support IDE.
* * Please see Documentation/ide.txt for help/info on IDE drives * Use old disk-only driver on primary interface (CONFIG_BLK_DEV_HD_IDE) [N/y/?] Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [N/y/?] Include IDE/ATAPI TAPE support (CONFIG_BLK_DEV_IDETAPE) [N/y/?] Support removable IDE interfaces (PCMCIA) (CONFIG_BLK_DEV_IDE_PCMCIA) [N/y/?] CMD640 chipset bugfix/support (CONFIG_BLK_DEV_CMD640) [N/y/?] Other IDE chipset support (CONFIG_IDE_CHIPSETS) [N/y/?]Si vous disposez de matériel ATAPI, il faut préciser ici. De même si vous avez une interface PCMCIA (attention : pour une carte PCMCIA, il est nécessaire d'utiliser un paquetage spécial). Il faut remarquer que Linux vous propose certaines options particulières pour certains contrôleurs IDE connus pour être bogués. Si vous êtes dans cette situation, n'hésitez pas à sélectionner l'option.
* * Additional Block Devices * Loopback device support (CONFIG_BLK_DEV_LOOP) [N/y/m/?] Multiple devices driver support (CONFIG_BLK_DEV_MD) [N/y/?] RAM disk support (CONFIG_BLK_DEV_RAM) [N/y/m/?] XT harddisk support (CONFIG_BLK_DEV_XD) [N/y/m/?]A moins que vous ne sachiez exactement ce que vous faîtes, ne pas modifier. Bien, on passe au réseau maintenant !
* * Networking options * Network firewalls (CONFIG_FIREWALL) [N/y/?] Network aliasing (CONFIG_NET_ALIAS) [N/y/?] TCP/IP networking (CONFIG_INET) [Y/n/?] IP: forwarding/gatewaying (CONFIG_IP_FORWARD) [N/y/?] IP: multicasting (CONFIG_IP_MULTICAST) [N/y/?] IP: accounting (CONFIG_IP_ACCT) [Y/n/?]D'une manière générale, il est suggéré d'activer Tcp/Ip, même si vous n'êtes pas relié au réseau (certaines applications en ont besoin). Le reste dépend de votre machine. Je passe sur les deux séries qui suivent pour le réseau.
* * SCSI support *etc...etc : pour le SCSI. Liste des cartes SCSI gérées... choisir la bonne (ou plusieurs).
* * Network device support * Network device support (CONFIG_NETDEVICES) [Y/n/?] Dummy net driver support (CONFIG_DUMMY) [M/n/y/?] EQL (serial line load balancing) support (CONFIG_EQUALIZER) [N/y/m/?] Frame relay DLCI support (EXPERIMENTAL) (CONFIG_DLCI) [N/y/m/?] PLIP (parallel port) support (CONFIG_PLIP) [N/y/m/?] PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]Liste des possibilités réseau... ne pas oublier de positionner PPP ou SLIP si nécessaire. Ensuite viennent les cartes elles-mêmes. Elles ne sont pas détaillées ici.
* * ISDN subsystem * ISDN support (CONFIG_ISDN) [N/y/m/?]Support des cartes RNIS. A moins d'en avoir une, ne pas activer.
* * CD-ROM drivers (not for SCSI or IDE/ATAPI drives) * Support non-SCSI/IDE/ATAPI CDROM drives (CONFIG_CD_NO_IDESCSI) [N/y/?] *Pour les CD-ROM Sony CDU31A/CDU33A, Matsushita/Panasonic/Creative, etc. En bref, les CD branchés sur les cartes son par exemple.
* * Filesystems * Quota support (CONFIG_QUOTA) [Y/n/?] Mandatory lock support (CONFIG_LOCK_MANDATORY) [N/y/?] Minix fs support (CONFIG_MINIX_FS) [M/n/y/?] Extended fs support (CONFIG_EXT_FS) [N/y/m/?] Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] xiafs filesystem support (CONFIG_XIA_FS) [N/y/m/?] DOS FAT fs support (CONFIG_FAT_FS) [M/n/y/?] MSDOS fs support (CONFIG_MSDOS_FS) [M/n/?] VFAT (MS-Windows-95) fs support (CONFIG_VFAT_FS) [M/n/?] umsdos: Unix like fs on top of std MSDOS FAT fs (CONFIG_UMSDOS_FS) [N/m/?] /proc filesystem support (CONFIG_PROC_FS) [Y/n/?] NFS filesystem support (CONFIG_NFS_FS) [M/n/y/?] SMB filesystem support (to mount WfW shares etc..) (CONFIG_SMB_FS) [N/y/m/?] ISO9660 cdrom filesystem support (CONFIG_ISO9660_FS) [M/n/y/?] OS/2 HPFS filesystem support (read only) (CONFIG_HPFS_FS) [N/y/m/?] System V and Coherent filesystem support (CONFIG_SYSV_FS) [N/y/m/?] Amiga FFS filesystem support (EXPERIMENTAL) (CONFIG_AFFS_FS) [N/y/m/?] UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?]Il s'agit de configurer la liste des gestionnaires de fichiers gérés par Linux. Vous devez absolument avoir ext2fs. Il est très fortement suggéré d'y mettre également le support /proc. SMB est utilisé pour accéder aux ressources partagées de MS-Windows For Workgroup. Désormais, il existe deux formats pour MS-DOS : le format standard et le format étendu qu'utilise MS-Windows 95 (VFAT). Si vous possédez un CD-ROM, pensez à inclure le support ISO9660. Enfin, si vous désirez utiliser les quotas, pensez à répondre Y à la première option.
* * character devices *Support pour le port parallèle et pour diverses souris. Pensez à activer l'imprimante si elle est connectée sur le port parallèle !
* * Sound *Passons à la carte son ! Je vais un peu limiter et me cantoner à la SoundBlaster 16. C'est ce que j'ai, et ça permet de donner un exemple. Seules les options qu'il convient de modifier sont présentes ici. En fait, Linux gère bien d'autres cartes son.
Sound card support (CONFIG_SOUND) [M/n/y/?] Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] I/O base for SB Check from manual of the card (SBC_BASE) [260] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1] Audio DMA buffer size 4096, 16384, 32768 or 65536 (DSP_BUFFSIZE) [65536]
* * Kernel hacking * Kernel profiling support (CONFIG_PROFILE) [N/y]Il est très conseillé de laisser cette option à N.
make dep
se charge de créer les dépendances.make clean
va nettoyer toute l'arborescence.make zImage
pour compiler votre noyau. Vous
pouvez aller
boire un bon café voire toute autre boisson dont la publicité est
interdite car c'est long, sauf bien sûr si vous possédez un P6 ou autre
monstre (temps de compilation environ 4 minutes)... mais
avec mon 486 DX2/66 et 16 Mo, la compilation exige un peu plus de
40 minutes. Cela dépend surtout de la quantité de mémoire vive disponible.
make modules
puis les installer par
make modules_install
. Ils seront copiés dans le
répertoire /lib/modules/2.0.26
.
/usr/src/linux/arch/i386/boot
.
Le nouveau noyau flambant neuf est le fichier zImage, qui est
déjà compacté. Le copier dans la racine : /
en lui attribuant
un nouveau nom (par exemple "vmlinuz2"). Modifier la configuration
de LILO mais ne rien retirer : copier/coller en tête du fichier une section
existante puis la modifier afin qu'elle concerne le nouveau noyau. Puis
relancer lilo
pour que le nouveau noyau soit pris en compte et
reboote.Remarque : si vous ne parvenez pas à modifier la configuration de
lilo
il faudra installer le nouveau fichier du noyau en lieu et
place de l'ancien. Je vous conseille fortement de laisser l'ancien noyau
dans un coin et surtout de pouvoir booter dessus, par exemple grâce à une
disquette, afin de ne pas tout perdre.
Réamorcer et ça doit fonctionner.