[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
7. Configurer le noyau
Table des matières :
7.a. Installer les sources
Choisir un noyau
Le cœur autour duquel sont bâties toutes les distributions est le noyau (en
anglais « kernel ») Linux. Ce noyau est l'interface entre les
programmes utilisateur et le matériel. Gentoo offre un choix de plusieurs
noyaux à ses utilisateurs. Une liste complète, accompagnée de descriptions,
est disponible dans le Guide du noyau
Gentoo Linux.
Pour les systèmes SPARC, nous offrons les gentoo-sources (des correctifs des sources du noyau pour des fonctionnalités additionnelles ).
Choisissez les sources du noyau et installez les avec emerge.
Exemple de code 1.1 : installer les sources du noyau |
# emerge gentoo-sources
|
Si vous examinez le contenu de /usr/src, vous devriez voir un lien
symbolique nommé linux pointant vers les sources de votre noyau.
L'exemple suivant pointe vers linux-3.3.8, mais
vous aurez peut-être installé une autre version.
Exemple de code 1.2 : examiner le lien symbolique vers le noyau |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-3.3.8
|
Il est maintenant temps de configurer et de compiler votre noyau.
7.b. Configuration manuelle
Introduction
Configurer un noyau est parfois considéré comme la tâche la plus ardue que les
utilisateurs de Linux doivent accomplir. Rien n'est moins vrai... Après
avoir configuré quelques noyaux, vous ne vous rappellerez même plus que c'était
difficile ;)
Toutefois, une chose est vraie : vous devez connaitre votre système pour
configurer manuellement un noyau. La majeure partie de cette information peut
être obtenue en utilisant la commande lspci qui est dans le paquet
pciutils (emerge pciutils). Vous pourrez désormais utiliser lspci
depuis votre environnement en chroot. Vous pouvez ignorer les avertissements
pcilib (comme par exemple : pcilib: cannot open
/sys/bus/pci/devices) que vous obtiendrez avec lspci. Vous pouvez
également exécuter lspci depuis un environnement non chrooté. Le
résultat est le même. Vous pouvez également exécuter lsmod pour voir les
modules du noyau utilisés par le CD-ROM d'installation (ce qui peut vous
donner des indices sur les fonctionnalités nécessaires).
Maintenant, allez dans le dossier des sources du noyau et exécutez make
menuconfig. Cela ouvrira un menu de configuration basé sur ncurses.
Exemple de code 2.1 : lancer menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Plusieurs sections d'options de configuration s'afficheront. Nous allons
d'abord dresser la liste de certaines options que vous devez activer (sinon,
Gentoo ne fonctionnera pas ou, du moins, pas sans quelques réglages
additionnels).
Activer les options requises
Tout d'abord, vous devez définir les pararmètres de cross-compilation pour garantir que le noyau Linux est compilé pour le bon système. Pour le faire, définissez le
préfixe de l'outil Cross-compiler à sparc64-unknown-linux-gnu-
(y conpris le tiret de fin):
Exemple de code 2.2 : identifier la plateforme de cross-compilation adaptée |
General setup --->
(sparc64-unknown-linux-gnu-) Cross-compiler tool prefix
|
Ensuit sélectionnez Maintain a devtmpfs file system to mount at /dev de telle manière que les fichiers de périphériques critiques soient disponibles précocément pendant la phase de démarrage.
Exemple de code 2.3 : activer la prise en charge de devtmpfs |
Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
[ ] Automount devtmpfs at /dev, after the kernel mounted the rootfs
|
Allez à la section File Systems et activez le support nécessaire pour
les systèmes de fichiers que vous utilisez. Ne compilez pas le système de fichiers racine sous
forme de module, sinon votre système Gentoo ne pourra pas monter votre
partition. Activez aussi Virtual memory et /proc file system.
Exemple de code 2.4 : activer le support pour les systèmes de fichiers |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Ext3 journalling file system support
<*> Second extended fs support
|
Si vous utilisez PPPoE ou un modem classique pour vous connecter à Internet,
vous aurez besoin des options du noyau suivantes :
Exemple de code 2.5 : sélectionner les pilotes PPPoE |
Device Drivers --->
Networking support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Les deux options de compression ne vous feront pas de mal, mais ne sont pas
absolument nécessaires. L'option PPP over Ethernet n'est pas obligatoire
non plus, considérant qu'elle pourrait n'être utilisée que par ppp
lorsque ce dernier est configuré pour utiliser PPPoE en mode noyau.
Ensuite, activez le support du bus approprié :
Exemple de code 2.6 : activer SBUS/UPA |
Console drivers --->
Frame-buffer support --->
[*] SBUS and UPA framebuffers
[*] Creator/Creator3D support
[*] CGsix (GX,TurboGX) support
|
Bien sûr, vous désirerez activer le support pour OBP :
Exemple de code 2.7 : activer le support OBP |
Misc Linux/SPARC drivers --->
[*] /dev/openprom device support
|
Vous aurez aussi besoin de pilotes SCSI spécifiques :
Exemple de code 2.8 : activer les pilotes SCSI spécifiques |
SCSI support --->
SCSI low-level drivers --->
<*> Sparc ESP Scsi Driver
<*> PTI Qlogic, ISP Driver
<*> SYM53C8XX Version 2 SCSI support
|
Pour le support de votre carte réseau, choisissez une des options
suivantes :
Exemple de code 2.9 : activer le support réseau |
Network device support --->
Ethernet (10 or 100Mbit) --->
<*> Sun LANCE support
<*> Sun Happy Meal 10/100baseT support
<*> DECchip Tulip (dc21x4x) PCI support
Ethernet (1000Mbit) --->
<*> Broadcom Tigon3 support
|
Si votre machine est équipée de quatre ports Ethernet ((10/100 ou 10/100/1000),
l'ordre des ports est différent par rapport à Solaris. Vous pouvez utiliser
sys-apps/ethtool pour connaitre le statut des ports.
Si vous utilisez un contrôleur de disque qla2xxx , vous devez utiliser un noyau 2.6.27 ou postérieur, et vous devez aussi installer (via emerge) sys-block/qla-fc-firmware. Ensuite, exécutez make menuconfig et naviguez jusqu'à la section Device Drivers. Vous avez besoin d'ajouter le support pour charger un micro code-externe.
Exemple de code 2.10 : ativer le support pour un micro-code externe |
Device Drivers --->
Generic Driver Options --->
() External firmware blobs to build into the kernel binary
() Firmware blobs root directory
|
Définessez "External firmware blobs" à ql2200_fw.bin et "Firmware blobs
root directory" à /lib/firmware.
Lorsque vous aurez terminé la configuration de votre noyau, poursuivez avec
la section Compiler et installer. Après la
compilation, vérifiez la taille du noyau :
Exemple de code 2.11 : vérifier la taille du noyau |
# ls -lh vmlinux
-rw-r--r-- 1 root root 2.4M Oct 25 14:38 vmlinux
|
Si la taille (sans compression) est supérieure à 7,5 Mo, reconfigurez
votre noyau jusqu'à ce que sa taille ne dépasse plus cette limite. Une des
façons de faire est de compiler la plupart des pilotes du noyau comme des
modules. Si vous ignorez cette étape, vous obtiendrez peut-être un noyau
incapable de démarrer.
Toutefois, si votre noyau est un tout petit peu trop gros, vous pouvez essayer
la commande strip pour le raccourcir :
Exemple de code 2.12 : raccourcir le noyau |
# strip -R .comment -R .note vmlinux
|
Compiler et installer
Maintenant que votre noyau est configuré, il est temps de le compiler et de
l'installer. Quittez la configuration et lancez la compilation :
Exemple de code 2.13 : Compiler le noyau |
# make && make modules_install
|
Lorsque la compilation est terminée, copiez l'image du noyau dans
/boot.
Exemple de code 2.14 : installer le noyau |
# cp arch/sparc/boot/image /boot/kernel-3.3.8-gentoo
|
(Facultatif) Construire un disque virtuel de démarrage (initramfs)
Si vous utilisez un plan de partitionnement particulier dans lequel des emplacements majeurs
(tels que /usr ou /var) se trouvent sur des partitions séparées, alors vous
aurez besoin de créer un disque virtuel de démarrage (initramfs) pour que les partitions soient montées
avant que le système en ait besoin.
Sans un disque virtuel de démarrage, votre système risque de ne pas démarrer correctement
dans la mesure où les outils nécessaires au montage des partitions résident sur ces systèmes de fichiers.
Un disque virtuel de démarrage va précharger ces outils dans une archive qui sera utilisée juste
après le démarrage du noyau, mais avant que le contrôle ne soit transmis aux outils init.
Les scripts sur le disque virtuel de démarrage assureront le montage correct des partitions avant de laisser
le système continuer son démarrage.
Pour mettre en place un disque virtuel de démarrage, installez genkernel d'abord, puis laissez le générer un disque virtuel de démarrage
pour vous.
Exemple de code 2.15 : construire un disque virtuel de démarrage (initramfs) |
# emerge genkernel
# genkernel --install initramfs
|
Si vous avez besoin d'un support particulier dans le disque virtuel de démarrage (initramfs),
tel que lvm ou raid, ajoutez les options appropriées à genkernel. Voir genkernel --help pour
plus d'informations , ou l'exemple qui suit qui active le support pour LVM et le logiciel raid
(mdadm):
Exemple de code 2.16 : construire un disque virtuel de démarrage (initramfs) pour avoir le support pour LVM et raid |
# genkernel --lvm --mdadm --install initramfs
|
Le disque virtuel de démarrage va être stocké dans le dossier /boot.
Vous pouvez trouver le fichier en listant les fichiers dont le nom commence par initramfs:
Exemple de code 2.17 : trouver le nom du disque virtuel de démarrage (initramfs) |
# ls /boot/initramfs*
|
Maintenant continuez à lire Les modules du noyau.
7.c. Kernel Modules
Configurer les modules
Vous devriez indiquer la liste des modules que vous souhaitez charger
automatiquement dans /etc/conf.d/modules. Vous pouvez également
ajouter des options aux modules si vous le souhaitez.
Pour dresser la liste des modules disponibles, exécutez la commande find
telle qu'indiquée ci-dessous. N'oubliez pas de substituer « <kernel
version> » par la version du noyau que vous venez juste de
compiler :
Exemple de code 3.1 : Consulter la liste des modules disponibles |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
|
Par exemple, pour charger automatiquement le module 3c59x.ko (c'est un
pilote pour certaines cartes réseau 3Com), il suffit de renseigner ce module
dans le fichier de configuration /etc/conf.d/modules.
Exemple de code 3.2 : Modifier le fichier /etc/conf.d/modules |
# nano -w /etc/conf.d/modules
modules_2_6="3c59x"
|
Poursuivez l'installation avec Configurer votre
système.
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|