|
1.
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 Alpha, nous offrons les gentoo-sources.
Exemple de code 1.1 : installer les sources d'un 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.
Dans l'exemple suivant, le lien pointe vers gentoo-sources-${kernel-version}, mais vous aurez sans doute installé une autre
version.
Exemple de code 1.1 : 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-${kernel-version}
|
Il est maintenant temps de configurer et de compiler votre noyau. Vous pouvez
utiliser genkernel. Cette commande construira un noyau générique tel que
celui utilisé par le CD d'installation. Toutefois, nous expliquerons d'abord la
configuration « manuelle », puisque c'est la meilleure façon
d'optimiser votre environnement.
Si vous souhaitez configurer manuellement votre noyau, poursuivez votre lecture
avec Par défaut : configuration manuelle. Si
vous souhaitez utiliser genkernel, vous devriez plutôt lire Alternative : utiliser genkernel.
1.
Par défaut : 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 1.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
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 en module, sinon votre système Gentoo ne pourra pas monter votre partition. Activez aussi Virtual memory, /proc file system.
Exemple de code 1.1 : 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)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Si vous utilisez PPPoE ou un modem classique pour vous connecter à Internet,
vous aurez besoin des options du noyau suivantes :
Exemple de code 1.1 : sélection des 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.
Si vous en avez besoin, n'oubliez pas d'ajouter le support pour votre carte
Ethernet.
Les options suivantes sont recommandées :
Exemple de code 1.1 : options recommandées |
General setup --->
<*> SRM environment through procfs
<*> Configure uac policy via sysctl
Plug and Play configuration --->
<*> Plug and Play support
<M> ISA Plug and Play support
SCSI support --->
SCSI low-level drivers --->
<*> SYM53C8XX Version 2 SCSI support (NEW)
<*> Qlogic ISP SCSI support
Network device support --->
Ethernet (10 or 100 Mbit) --->
<M> DECchip Tulip (dc21x4x) PCI support
<M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
<M> EtherExpressPro/100 support (eepro100)
<M> EtherExpressPro/100 support (e100)
Ethernet (1000 Mbit) --->
<M> Alteon AceNIC
[*] Omit support for old Tigon I
<M> Broadcom Tigon3
[*] FDDI driver support
<M> Digital DEFEA and DEFPA
<*> PPP support
<*> PPP Deflate compression
Character devices --->
[*] Support for console on serial port
[*] Direct Rendering Manager
File systems --->
<*> Kernel automounter version 4 support
Network File Systems --->
<*> NFS
[*] NFSv3 client
<*> NFS server
[*] NFSv3 server
Partition Types --->
[*] Advanced partition selection
[*] Alpha OSF partition support
Native Language Support
<*> NLS ISO 8859-1
Sound --->
<M> Sound card support
<M> OSS sound modules
[*] Verbose initialisation
[*] Persistent DMA buffers
<M> 100% Sound Blaster compatibles
|
Ensuite sélectionnez Maintain a devtmpfs file system to mount at /dev de telle manière que les fichiers de périphérique critiques soient disponibles précocément pendant la phase de démarrage.
Exemple de code 1.1 : 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
|
Lorsque vous aurez terminé la configuration de votre noyau, poursuivez avec
la section Compiler et installer.
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 1.1 : compiler le noyau |
# make && make modules_install
# make boot
|
Lorsque la compilation est terminée, copiez l'image du noyau dans
/boot. Certains noyaux récents créent vmlinux au lieu
de vmlinux.gz.
Exemple de code 1.1 : installer le noyau |
# cp arch/alpha/boot/vmlinux.gz /boot/
|
(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 1.1 : 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 1.1 : 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 1.1 : trouver le nom du disque virtuel de démarrage (initramfs) |
# ls /boot/initramfs*
|
Maintenant continuez à lire Les modules du noyau.
1.
Alternative : utiliser genkernel
Si vous lisez cette section, vous avez choisi d'utiliser le script
genkernel pour configurer votre noyau pour vous.
Maintenant que l'arbre des sources de votre noyau est installé, il est temps de
compiler ce noyau à l'aide du script genkernel qui construira
automatiquement un noyau dont la configuration sera presque identique à celle du
noyau du CD d'installation. Cela signifie que si vous utilisez genkernel
pour construire votre noyau, votre système détectera généralement tout votre
matériel au moment de l'amorçage, à la manière du CD d'installation. Puisque
genkernel ne requiert aucune configuration manuelle, il s'agit d'une solution
idéale pour l'utilisateur rebuté par l'idée de compiler son propre noyau.
Maintenant, voyons comment utiliser genkernel. D'abord, installez genkernel
comme suit :
Exemple de code 1.1 : installer genkernel |
# emerge genkernel
|
Ensuite, compilez les sources du noyau en exécutant genkernel all.
Puisque genkernel compile un noyau qui supporte presque n'importe quel
matériel, ne soyez pas surpris que la compilation demande un temps considérable.
Veuillez noter que si votre partition de démarrage utilise un autre système de
fichiers qu'ext2 ou ext3, vous devez compiler le support de celui-ci dans le
noyau (donc pas comme module) avec la commande genkernel --menuconfig
all.
Exemple de code 1.1 : exécuter genkernel |
# genkernel all
|
Lorsque genkernel aura fini son travail, un noyau, un ensemble complet de
modules et un disque virtuel initial (initramfs ou initrd) auront été créés. Le
noyau et l'initrd seront utilisés plus tard lors de la configuration du chargeur
de démarrage. Notez bien les noms du noyau et du initrd puisque vous devrez les
spécifier lors de l'écriture du fichier de configuration du chargeur de
démarrage. L'initrd sera démarré immédiatement après l'amorçage afin de réaliser
l'autodétection du matériel (tout comme pour le CD d'installation) avant que
votre véritable système ne démarre.
Exemple de code 1.1 : vérifier les noms de l'image du noyau et du fichier initrd |
# ls /boot/kernel* /boot/initramfs*
|
1.
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 1.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 1.1 : 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).
|