lfs:lkn-c09-kernel-configuration-recipes

LKN Chapitre 9. Recettes de configuration du noyau

Disques

Le noyau Linux prend en charge un large éventail de types de disques différents. Cette section montre comment configurer le noyau pour qu'il prenne en charge la plupart des types de contrôleurs de disque les plus courants.

stockage USB

Pour utiliser un périphérique de stockage USB (communément appelé périphérique “flash” USB ou lecteur de disque USB externe), le support USB doit d'abord fonctionner correctement.

Un périphérique de stockage USB peut être identifié à l'aide du programme lsusb. Si la séquence de commandes suivante produit les résultats affichés, un périphérique de stockage USB est présent sur le système:

/usr/sbin/lsusb -v | grep Storage

      bInterfaceClass         8 Mass Storage

Activer comme suit.

  • Un périphérique de stockage USB est en réalité un périphérique USB SCSI qui communique via une connexion USB. Pour cette raison, le sous-système SCSI doit être activé:
Device Drivers
    SCSI Device Support
        [*] SCSI Device Support
  • Toujours dans le système SCSI, le “support de disque SCSI” doit être activé pour que le périphérique soit correctement monté:
Device Drivers
	SCSI Device Support
		[*] SCSI disk support
  • Activer la prise en charge du stockage USB:
Device Drivers
	USB Support
	[M] USB Mass Storage support

Un certain nombre de périphériques de stockage USB spécifiques sont répertoriés en tant qu'éléments de configuration distincts, car ils ne respectent pas les spécifications USB standard et nécessitent un code spécial. Pour utiliser l'un de ces appareils, il faut en activer la prise en charge.

Disques IDE

Les disques IDE sont le type le plus courant de disques PC. Le périphérique qui leur permet de fonctionner correctement est un contrôleur de disque IDE. Pour déterminer si l'on dispose d'un contrôleur de disque IDE sur le système, utiliser la commande lspci de la manière suivante: 1)

/usr/sbin/lspci | grep IDE

00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)

la réponse à cette commande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche un contrôleur IDE (le premier périphérique dans l'exemple précédent.) Si on ne trouve que des contrôleurs SATA, se reporter à la section intitulée «Serial ATA (SATA)».

Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    [*] PCI Support

Activer le sous-système IDE et la prise en charge IDE:

Device Drivers
    [*] ATA/ATAPI/MFM/RLL support
    [*]   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

Dans le système ATA, le type spécifique de contrôleur IDE doit être activé pour qu'il fonctionne correctement. Pour fournir une bonne sauvegarde au cas où on choisirait le mauvais type, sélectionner le contrôleur IDE “générique”:

Pilotes de périphérique
    Prise en charge ATA/ATAPI/MFM/RLL
        [*] prise en charge du chipset IDE générique/par défaut

Activer les différents contrôleurs PCI IDE:

Pilotes de périphérique
    Prise en charge ATA/ATAPI/MFM/RLL
        [*] Prise en charge du chipset PCI IDE

Cela ouvre un long sous-menu des différents types de contrôleurs IDE. Sélectionner le bon en fonction du nom du périphérique trouvé à l'étape lspci.

Serial ATA (SATA)

SATA est un type de contrôleur de disque qui succède au contrôleur de disque IDE. Pour déterminer si on dispose d'un contrôleur de disque SATA sur le système, exécuter la commande suivante:

/usr/sbin/lspci | grep SATA

00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)

La réponse à cette sommande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche certains périphériques SATA.

Les disques SATA utilisent une bibliothèque de noyau appelée libata qui gère la plupart des fonctionnalités spécifiques à SATA. Cette bibliothèque utilise la couche SCSI pour communiquer avec la couche bloc, de sorte que de nombreuses options de noyau différentes doivent être activées pour que les disques SATA fonctionnent correctement. Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support

Activer le sous-système SCSI:

Device Drivers
	SCSI Device Support
		[*] SCSI Device Support

Toujours dans le système SCSI, l'option “Prise en charge des disques SCSI” doit être activée pour que le périphérique soit correctement monté:

Device Drivers
	SCSI Device Support
		[*] SCSI disk support

Les options SATA se trouvent dans la section “Pilotes de bas niveau SCSI”:

Device Drivers
	SCSI Device Support
		SCSI low-level drivers
			[*] Serial ATA (SATA) support

Dans cette section, activer le type de contrôleur SATA spécifique. Regarder la sortie de la commande lspci mentionnée précédemment pour une liste des types de contrôleurs SATA présents sur le système. Par exemple, la plupart des cartes mères d'Intel nécessitent le pilote PIIX/ICH SATA (comme le montre l'exemple précédent).

Device Drivers
	SCSI Device Support
		SCSI low-level drivers
			[*] Serial ATA (SATA) support
			[*]   Intel PIIX/ICH SATA support

Graveur de CD-ROM

Graver un CD-ROM est très simple sous Linux. Si le noyau peut support lecture à partir d'un CD-ROM, il peut également prendre en charge la gravure d'un CD-ROM. Il existe deux façons d'activer la prise en charge des CD-ROM sous Linux, une pour les lecteurs IDE et une pour les lecteurs SCSI et SATA.

Lecteurs de CD-ROM IDE

Les lecteurs de CD-ROM IDE sont contrôlés par le même contrôleur IDE que les lecteurs de disque IDE principaux. Il faut s'assurer que le contrôleur IDE est correctement pris en charge comme décrit dans la section intitulée «Disques IDE». S'il est correctement pris en charge, alors un seul autre élément de configuration doit être sélectionné:

Device Drivers
    [*] ATA/ATAPI/MFM/RLL support
    [*]   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
    [M]     Include IDE/ATAPI CDROM support

Lecteurs de CD-ROM SCSI et SATA

Les lecteurs de CD-ROM SATA et SCSI sont contrôlés par le même contrôleur que les lecteurs de disque principaux. Il faut s'assurer que le contrôleur SATA ou SCSI est correctement pris en charge comme décrit dans la section intitulée «Serial ATA (SATA)».

Pour prendre en charge les lecteurs de CD-ROM SATA ou SCSI, le pilote de CD-ROM SCSI doit être activé:

Device Drivers
	SCSI Device Support
		[*] SCSI CDROM suppor

Une fois cette option activée, le lecteur de CD-ROM SATA ou SCSI devrait fonctionner correctement.

Devices

Linux prend en charge une vaste gamme de différents types de périphériques (plus que tout autre système d'exploitation n'a jamais eu). Cette section montre comment activer certains des types les plus courants.

USB

Linux prend en charge différents types de périphériques USB. Pour activer la prise en charge USB, il faut d'abord activer la prise en charge d'un contrôleur USB, qui pilote la connexion USB sur la machine.

Pour déterminer si l'appareil possède un contrôleur USB et de quel type il s'agit, exécuter la commande suivante:


/usr/sbin/lspci | grep USB

00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)

la réponse à cette commande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche certains contrôleurs USB.

Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support

Activer la prise en charge USB pour le noyau:

Device Drivers
	USB Support
		[M] Support for Host-side USB

Activer les contrôleurs hôtes USB spécifiques pour la machine (il est plus sûr de tous les activer lorsqu'on ne connait pas lesquels on a):

Device Drivers
	USB Support
	---   USB Host Controller Drivers
	[M]   EHCI HCD (USB 2.0) support
	[M]   OHCI HCD support
	[M]   UHCI HCD (most Intel and VIA) support

Les périphériques USB individuels ont également besoin que leurs pilotes soient activés. Une grande majorité d'entre eux se trouvent sous la section principale du pilote USB:

Device Drivers
	USB Support

Mais certains appareils, tels que la vidéo USB et le DVB et le son, sont répertoriés dans d'autres sections contrôlant ces types d'appareils. Par exemple, le pilote audio USB se trouve dans le menu Son:

Device drivers
	Sound
		[*] Sound card support
			[*] Advanced Linux Sound Architecture
				USB Devices
					[M] USB Audio/MIDI driver

Pour activer la prise en charge de périphériques de stockage USB (flash USB), regardez maintenant la section intitulée «Stockage USB».

IEEE 1394 (FireWire)

IEEE 1394 est communément connu sous le nom de FireWire, le nom par lequel Apple Computer l'a annoncé. IEEE 1394 est un bus haute vitesse qui connecte des périphériques externes, tout comme le fait l'USB.

Pour déterminer sil'ordinateur possède un contrôleur FireWire et de quel type il s'agit, exécuter la commande suivante:

/usr/sbin/lspci | grep FireWire

06:0c.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
06:0d.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port (rev 04)

la réponse à cette commande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche certains contrôleurs FireWire.

Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support

Activer la prise en charge IEEE 1394 pour le noyau:

Device Drivers
	IEEE 1394 (FireWire) support
		[*] IEEE 1394 (FireWire) support

Activer le type spécifique de contrôleur hôte Firewire dont vous disposez:

Device Drivers
	IEEE 1394 (FireWire) support
		[*] IEEE 1394 (FireWire) support
		---   Device Drivers
		[M]   Texas Instruments PCILynx support
		[M]   OHCI-1394 support

Enfin, activer le type spécifique de périphériques Firewire:

Device Drivers
	IEEE 1394 (FireWire) support
		[*] IEEE 1394 (FireWire) support
		---   Protocol Drivers
		[M]   OHCI-1394 Video support
		[M]   SBP-2 support (Harddisks etc.)
		[ ]     Enable Phys DMA support for SBP2 (Debug)
		[M]   Ethernet over 1394
		[M]   OHCI-DV I/O support
		[M]   Raw IEEE1394 I/O support

PCI hotplug

Les systèmes de connexion à chaud PCI deviennent de plus en plus populaires avec l'utilisation de la carte ExpressCard et des stations d'accueil pour ordinateur portable.

Pour déterminer si l'appareil possède un contrôleur ExpressCard, examiner le matériel pour voir si une carte ExpressCard peut y être branchée.

Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support

Activer la prise en charge PCI Hotplug pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support
	PCI Hotplug Support
		[M] Support for PCI Hotplug (EXPERIMENTAL)

Il existe une large gamme de différents types de contrôleurs PCI Hotplug. Pour la plupart des ordinateurs portables et pour la prise en charge ExpressCard, activer le contrôleur ACPI:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support
	PCI Hotplug Support
		[M] Support for PCI Hotplug (EXPERIMENTAL)
		[M]   ACPI PCI Hotplug driver

ainsi que le contrôleur PCI Express:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support
	[*] PCI Express Support
	[M]   PCI Express Hotplug driver

PCMCIA / CardBus

La prise en charge des périphériques PCMCIA et CardBus est présente dans presque tous les ordinateurs portables fabriqués. Cependant, les ordinateurs portables plus récents passent au format ExpressCard (voir la recette PCI Hotplug dans la section intitulée «PCI hotplug»).

Pour déterminer si la machine possède un contrôleur PCMCIA, examiner le matériel pour voir si une carte PCMCIA peut y être branchée.

Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	[*] PCI Support

Activez la prise en charge PCCARD pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	PCCARD (PCMCIA/CardBus) support
		[M] PCCard (PCMCIA/CardBus) support

Activer la prise en charge PCMCIA et CardBus pour couvrir la plus large gamme d'appareils:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	PCCARD (PCMCIA/CardBus) support
		[M] PCCard (PCMCIA/CardBus) support
		[M]   16-bit PCMCIA support
		[*]   32-bit CardBus support

Activer le type de pont de carte pour votre ordinateur portable. Le plus commun est le contrôleur “yenta-like”:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
	PCCARD (PCMCIA/CardBus) support
		[M] PCCard (PCMCIA/CardBus) support
		[M]   CardBus yenta-compatible bridge support
		[ ]   Cirrus PD6729 compatible bridge support
		[ ]   i82092 compatible bridge support
		[ ]   i82365 compatible bridge support
		[ ]   Databook TCIC host bridge support

Son (ALSA)

ALSA (Advanced Linux Sound Architecture) est le système audio actuel pour le noyau Linux. Un système audio antérieur (OSS) a été déconseillé et presque tous les pilotes plus anciens ont été supprimés de l'arborescence des sources du noyau.

Pour déterminer le type de contrôleur de son présent sur l'ordinateur et son type, exécuter la commande suivante:

/usr/sbin/lspci | grep -i audio

00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
06:0d.0 Multimedia audio controller: Creative Labs SB Audigy (rev 04)

la réponse à cette commande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche certains contrôleurs audio.

Activer la prise en charge du son de base:

Device Drivers
    Sound
        [M] Sound Card Support

Activer ALSA:

Device Drivers
    Sound
        [M] Sound Card Support
            [M] Advanced Linux Sound Architecture

Il existe un certain nombre d'options ALSA de base différentes, telles que la prise en charge de l'ancien protocole audio OSS. Lorsqu'on a des applications plus anciennes, i al faut activer les options associées:

Device Drivers
    Sound
        [M] Sound Card Support
            [M] Advanced Linux Sound Architecture
            [M]   OSS Mixer API
            [M]   OSS PCM (digital audio) API
            [ ]     OSS PCM (digital audio) API - Include plugin system

Activer le type spécifique de périphérique audio. Les cartes son PCI sont sous le sous-menu PCI:

Device Drivers
    Sound
        [M] Sound Card Support
            [M] Advanced Linux Sound Architecture
                PCI Devices

CPU

Pour que le noyau Linux s'exécute le plus rapidement possible pour un type de processeur et un type de matériel spécifiques, on peut définir quelques options pour obtenir les dernières performances du matériel. Cette section présente certaines des différentes options spécifiques au processeur que l'on peut régler pour un processeur.

Types de processeur

Une large gamme d'options de processeur spécifiques sont disponibles pour être modifiées dans le noyau Linux. Le plus important spécifie le type exact de CPU pour lequel on va utilisé ce noyau. Pour déterminer le type de processeur que l'on utilise, exécuter la commande suivante:

cat /proc/cpuinfo  | grep "model name"

model name      : Intel(R) Xeon(TM) CPU 3.20GHz

la réponse à cette commande ne sera probablement pas identique; l'important est que la commande affiche le nom du modèle du processeur présent sur le système.

Sélectionner le type de sous-architecture du processeur:

Processor type and features
    Subarchitecture Type
        (X) PC-compatible
        ( ) AMD Elan
        ( ) Voyager (NCR)
        ( ) NUMAQ (IBM/Sequent)
        ( ) Summit/EXA (IBM x440)
        ( ) Support for other sub-arch SMP systems with more than 8 CPUs
        ( ) SGI 320/540 (Visual Workstation)
        ( ) Generic architecture (Summit, bigsmp, ES7000, default)
        ( ) Support for Unisys ES7000 IA32 series

Ce n'est que si l'appareil fait partie des autres types de la liste précédente qu'il faudra sélectionner autre chose que l'option compatible PC. Cependant, si on souhaite créer un seul noyau qui s'exécutera sur tous les types de machines affichés, sélectionner l'option Architecture générique. Certaines des options ci-dessus peuvent ne pas être présentes lorsqu'on n'a pas également sélectionné l'option Symmetric multi-processing support.

Sélectionner le type de famille de processeurs. L'option PC-compatible doit être sélectionnée parmi les options précédentes pour que ce sous-menu soit affiché:

Processor type and features
    Processor family
        ( ) 386
        ( ) 486
        ( ) 586/K5/5x86/6x86/6x86MX
        ( ) Pentium-Classic
        ( ) Pentium-MMX
        ( ) Pentium-Pro
        ( ) Pentium-II/Celeron(pre-Coppermine)
        ( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon
        ( ) Pentium M
        (X) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
        ( ) K6/K6-II/K6-III
        ( ) Athlon/Duron/K7
        ( ) Opteron/Athlon64/Hammer/K8
        ( ) Crusoe
        ( ) Efficeon
        ( ) Winchip-C6
        ( ) Winchip-2
        ( ) Winchip-2A/Winchip-3
        ( ) GeodeGX1
        ( ) Geode GX/LX
        ( ) CyrixIII/VIA-C3
        ( ) VIA C3-2 (Nehemiah)
        ( ) Generic x86 support

Pour plus de détails sur cet élément de configuration, se reporter à M386 pour une description complète de la façon de choisir le type de processeur approprié en fonction du processeur dont on dispose et de la gamme de machines sur lesquelles on souhaite que le noyau s'exécute.

SMP

Si le système contient plus d'un processeur, ou un processeur hyperthreadé ou double cœur, il faut sélectionner l'option multiprocesseur pour le noyau Linux afin de tirer parti des processeurs supplémentaires. À moins de le faire, on gaspillera les autres processeurs en ne les utilisant pas du tout.

Activer le multiprocessing:

Processor type and features
    [*] Symmetric multi-processing support

Preemption

Les systèmes fonctionnant en tant que serveurs ont des exigences de charge de travail très différentes de celles utilisées comme bureau pour les applications vidéo et audio. Le noyau permet différents modes de “préemption” afin de gérer ces différentes charges de travail. La préemption est la capacité du noyau à s'interrompre pendant qu'il fait autre chose, afin de travailler sur quelque chose avec une priorité plus élevée, comme la mise à jour d'un programme audio ou vidéo.

Pour passer à un autre modèle de préemption, utiliser ce menu:

Processor type and features
    Preemption Model
        (X) No Forced Preemption (Server)
		( ) Voluntary Kernel Preemption (Desktop)
		( ) Preemptible Kernel (Low-Latency Desktop)

Si on souhaite rendre le noyau encore plus réactif aux tâches de priorité plus élevée que ne le permet l'option de préemption générale, on peut également autoriser des interruptions à l'un des principaux verrous internes du noyau:

Processor type and features
    [*] Preempt The Big Kernel Lock

Cette option ne peut être sélectionnée que si on a déjà sélectionné les options Preemptible Kernel ou Symmetric multi-processing.

Suspend

Le noyau Linux a la capacité de se suspendre au disque, ce qui permet de déconnecter l'alimentation, puis à un moment ultérieur, de redémarrer et de reprendre exactement où la machine était lorsqu'elle a été suspendue. Cette fonctionnalité est très utile sur les ordinateurs portables fonctionnant sous Linux.

Activer ceci en sélectionnant:

Power management options (ACPI, APM)
    [*] Software Suspend

Le noyau doit savoir où enregistrer l'image du noyau suspendu, puis plus tard la reprendre. Cet emplacement est généralement une partition d'échange de noyau sur le disque. Pour spécifier de quelle partition il s'agit:

Power management options (ACPI, APM)
    (/dev/hda3) Default resume partition

Il faut spécifier la bonne partition pour suspendre la machine et ne pas utiliser une partition utilisée par le système pour les données. Le nom de partition approprié peut être trouvé en exécutant la commande suivante:

/sbin/swapon -s | grep dev | cut -f 1 -d ' '
/dev/hda3

Utiliser la sortie de la commande précédente dans cette option de configuration du noyau et sur la ligne de démarrage du noyau où elle spécifie d'où le noyau doit reprendre. Une fois la machine suspendue, pour la reprendre correctement, passer l'argument resume=/dev/swappartition à la ligne de commande du noyau pour qu'il utilise l'image appropriée. Si on ne souhaite pas restaurer l'image suspendue, utiliser l'argument de ligne de commande du noyau noresume.

Mise à l'échelle de la fréquence du processeur

La plupart des processeurs modernes peuvent ralentir l'horloge interne du processeur pour économiser l'énergie et la durée de vie de la batterie. Linux prend en charge cette capacité et offre une variété de «gouverneurs» de puissance. Différents gouverneurs implémentent différentes heuristiques afin de déterminer comment faire varier la vitesse du processeur en fonction de la charge du système et d'autres variables.

Activer la fonctionnalité de mise à l'échelle de fréquence de base:

Power management options (ACPI, APM)
    [*] CPU Frequency scaling

Sélectionner les différents types de régulateurs de fréquence que l'on souhaite utiliser:

Power management options (ACPI, APM)
    [*] CPU Frequency scaling
    [*]   'performance' governor
    [*]   'powersave' governor
    [*]   'userspace' governor for userspace frequency scaling
    [*]   'ondemand' cpufreq policy governor
    [*]   'conservative' cpufreq governor

Pour plus d'informations sur ce que font les différents gouverneurs, voir “CPU_FREQ”.

Sélectionner le gouverneur par défaut que l'on souhaite faire fonctionner lorsque la machine boot:

Power management options (ACPI, APM)
    [*] CPU Frequency scaling
          Default CPUFreq governor (performance)

Sélectionner le type de processeur spécifique sur la machine. Pour plus de détails sur la façon de déterminer le type de processeur de la machine, consultrz la section intitulée «Types de processeur».

Power management options (ACPI, APM)
    [*] CPU Frequency scaling
    ---   CPUFreq processor drivers
    [ ]   ACPI Processor P-States driver
    [ ]   AMD Mobile K6-2/K6-3 PowerNow!
    [ ]   AMD Mobile Athlon/Duron PowerNow!
    [ ]   AMD Opteron/Athlon64 PowerNow!
    [ ]   Cyrix MediaGX/NatSemi Geode Suspend Modulation
    [*]   Intel Enhanced SpeedStep
    [*]     Use ACPI tables to decode valid frequency/voltage pairs
    [*]     Built-in tables for Banias CPUs
    [ ]   Intel Speedstep on ICH-M chipsets (ioport interface)
    [ ]   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
    [ ]   Intel Pentium 4 clock modulation
    [ ]   nVidia nForce2 FSB changing
    [ ]   Transmeta LongRun

Différents modèles de mémoire

Linux sur du matériel Intel 32 bits peut accéder jusqu'à 64 gigaoctets de mémoire, mais l'espace d'adressage du processeur 32 bits n'est que de 4 gigaoctets. Pour contourner cette limitation, Linux peut mapper la mémoire supplémentaire dans une autre zone, puis y basculer lorsque d'autres tâches en ont besoin. Mais si la machine a une plus petite quantité de mémoire, il est plus facile pour Linux de ne pas avoir à se soucier de gérer les plus grandes zones, il est donc avantageux de dire au noyau la quantité de mémoire que l'on souhaite qu'il prenne en charge. Pour une description plus détaillée de cette option, consulter NOHIGHMEM.

Linux prend en charge trois modèles de mémoire différents pour les processeurs Intel 32 bits, selon la mémoire disponible:

  • Moins de 1 gigaoctet de mémoire physique
  • Entre 1 et 4 gigaoctets de mémoire physique.
  • Plus de 4 gigaoctets de mémoire physique.

Pour sélectionner la quantité de mémoire:

Processor type and features
    High Memory Support
        (X) off
        ( ) 4GB
        ( ) 64GB

ACPI

Sur presque tous les systèmes modernes basés sur Intel, ACPI est requis pour que la machine fonctionne correctement. ACPI est une norme qui permet au BIOS de l'ordinateur de fonctionner avec le système d'exploitation afin d'accéder au matériel de manière indirecte, dans l'espoir de gérer une large gamme d'appareils avec relativement peu de code spécifique à chaque système d'exploitation. ACPI fournit également une fonction pour aider à suspendre et reprendre une machine et contrôler la vitesse du processeur et des ventilateurs. Si vous avez un ordinateur portable, il est recommandé d'activer cette option.

Pour activer ACPI:

Power management options (ACPI, APM)
    ACPI (Advanced Configuration and Power Interface) Support
        [*] ACPI Support

Il existe une large gamme de différents “pilotes” ACPI qui contrôlent différents types de périphériques ACPI. Il faut activer ceux spécifiques qui sont sur la machine:

Power management options (ACPI, APM)
    ACPI (Advanced Configuration and Power Interface) Support
        [*] ACPI Support
        [*]   AC Adapter
        [*]   Battery
        [*]   Button
        [*]   Video
        [*]   Generic Hotkey (EXPERIMENTAL)
        [*]   Fan
        [*]   Processor
        [*]     Thermal Zone
        [ ]   ASUS/Medion Laptop Extras
        [ ]   IBM ThinkPad Laptop Extras
        [ ]   Toshiba Laptop Extras

Networking

Aujourd'hui, la mise en réseau est requise pour presque toutes les machines et Linux prend en charge presque toutes les options de mise en réseau disponibles. Ici, nous allons montrer seulement quelques-uns de la grande variété qui sont présents.

Pour toutes les options de mise en réseau, y compris les différents pilotes, l'option de configuration réseau principale doit être activée:

Networking
    [*] Networking support

L'option TCP / IP doit également être sélectionnée pour que la machine puisse parler à d'autres machines sur Internet:

Networking
    [*] Networking support
          Networking options
              [*] TCP/IP networking

Netfilter

La partie Netfilter du noyau Linux est un cadre pour filtrer et manipuler tous les paquets réseau qui transitent par la machine. Il est couramment utilisé si on souhaite activer un pare-feu sur la machine pour le protéger des différents systèmes sur Internet, ou pour utiliser la machine en tant que proxy pour d'autres machines du réseau.

Pour activer l'option Netfilter principale:

Networking
    [*] Networking support
          Networking options
              [*] Network packet filtering (replaces ipchains

Il est recommandé d'activer l'interface Netlink Netfilter et la prise en charge Xtables lors de l'utilisation de Netlink:

Networking
    [*] Networking support
          Networking options
              [*] Network packet filtering (replaces ipchains)
                    Core Netfilter Configuration
                        [*] Netfilter netlink interface
                        [*] Netfilter Xtables support (required for ip_tables)

Les différents protocoles que vous souhaitez filtrer doivent également être sélectionnés:

Networking
    [*] Networking support
          Networking options
              [*] Network packet filtering (replaces ipchains)
                    IP: Netfilter Configuration
                        [M] Connection tracking (required for masq/NAT)
                        [ ]   Connection tracking flow accounting
                        [ ]   Connection mark tracking support
                        [ ]   Connection tracking events (EXPERIMENTAL)
                        [ ]   SCTP protocol connection tracking support (EXPERIMENTAL)
                        [M]   FTP protocol support
                        [ ]   IRC protocol support
                        [ ]   NetBIOS name service protocol support (EXPERIMENTAL)
                        [M]   TFTP protocol support
                        [ ]   Amanda backup protocol support
                        [ ]   PPTP protocol support
                        [ ]   H.323 protocol support (EXPERIMENTAL)

Pilotes réseau

Linux prend en charge un large éventail de périphériques réseau différents. Le plus courant est un périphérique réseau PCI, dans lequel un câble Ethernet peut être branché. Pour déterminer si vous avez un périphérique réseau PCI sur le système et de quel type il s'agit, exécutez la commande suivante:

/usr/sbin/lspci | grep Ethernet

03:0c.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
03:0e.0 Ethernet controller: Intel Corporation 82545GM Gigabit Ethernet Controller (rev 04)

la réponse à cette commande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche certains périphériques Ethernet PCI.

Activer la prise en charge PCI pour le noyau:

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    [*] PCI Support

Activer la prise en charge de base des périphériques réseau:

Device Drivers
    Network device support
        [*] Network device support

Il faut ensuite trouver les pilotes de périphérique spécifiques au matériel. L'endroit le plus courant pour trouver des périphériques Ethernet pour du matériel moderne est dans la section 1000 Mbit de la sélection du pilote:

Device Drivers
    Network device support
        [*] Network device support
            Ethernet (1000 Mbit)

Certains appareils Ethernet plus anciens se trouvent dans la section 10 or 100 Mbit:

Device Drivers
    Network device support
        [*] Network device support
            Ethernet (10 or 100Mbit)

Parcourir ces sections pour trouver le pilote approprié pour les périphériques spécifiques.

IrDA

IrDA est un protocole infrarouge utilisé par un certain nombre d'ordinateurs portables et de PDA pour communiquer sur de très courtes distances. Il est répandu sur le matériel plus ancien, avec un matériel plus récent utilisant Bluetooth pour communiquer à la place, voir la section intitulée «Bluetooth» pour configurer Bluetooth.

IrDA est un protocole réseau, il peut donc être trouvé dans le menu principal de Networking:

Networking
    [*] Networking support
    [*]   IrDA (infrared) subsystem support

Plusieurs protocoles IrDA différents peuvent être sélectionnés, selon le type d'appareil avec lequel on souhaite communiquer et le programme utilisé pour effectuer la communication:

Networking
    [*] Networking support
        --- IrDA (infrared) subsystem support
        ---   IrDA protocols
        [*]   IrLAN protocol (NEW)
        [*]   IrCOMM protocol (NEW)
        [*]   Ultra (connectionless) protocol (NEW)

Il existe un large éventail de différents types de périphériques IrDA, certains série, certains PCI et d'autres basés sur USB. Pour sélectionner le type spécifique d'appareil IrDA, il faut le choisir dans le sous-menu du pilote pour IrDA:

Networking
    [*] Networking support
        --- IrDA (infrared) subsystem support
              Infrared-port device drivers
              --- SIR device drivers
              [ ] IrTTY (uses Linux serial driver)
              --- Dongle support
              --- Old SIR device drivers
              --- Old Serial dongle support
              --- FIR device drivers
              [ ] IrDA USB dongles
              [ ] SigmaTel STIr4200 bridge (EXPERIMENTAL)
              [ ] NSC PC87108/PC87338
              [ ] Winbond W83977AF (IR)
              [ ] Toshiba Type-O IR Port
              [ ] SMSC IrCC (EXPERIMENTAL)
              [ ] ALi M5123 FIR (EXPERIMENTAL)
              [ ] VLSI 82C147 SIR/MIR/FIR (EXPERIMENTAL)
              [ ] VIA VT8231/VT1211 SIR/MIR/FIR

Bluetooth

Bluetooth est une technologie sans fil qui a été créée pour remplacer IrDA pour parler entre les appareils sur une très courte distance. Il s'agit d'une technologie sans fil à courte portée qui a été conçue en remplacement des câbles et fonctionne dans un rayon de 10 mètres et est couramment utilisée dans les téléphones mobiles.

Le Bluetooth est un protocole réseau, il peut donc être trouvé dans le menu principal Networking:

Networking
    [*] Networking support
    [*]   Bluetooth subsystem support

Il existe deux principales sélections de protocole pour Bluetooth. Les deux doivent être activés pour fonctionner avec tous les types d'appareils Bluetooth:

Networking
    [*] Networking support
        --- Bluetooth subsystem support
        [*]   L2CAP protocol support
        [*]   SCO links support

Il existe relativement peu de pilotes de périphériques Bluetooth individuels disponibles, car presque tous ces périphériques suivent les spécifications Bluetooth détaillant le fonctionnement des périphériques. Les pilotes indiqués dans la liste suivante doivent être sélectionnés pour que Bluetooth fonctionne avec l'appareil:

Networking
    [*] Networking support
        --- Bluetooth subsystem support
            Bluetooth device drivers
                [M] HCI USB driver
                [*]   SCO (voice) support
                [ ] HCI UART driver
                [M] HCI BCM203x USB driver
                [M] HCI BPA10x USB driver
                [ ] HCI BlueFRITZ! USB driver
                [ ] HCI DTL1 (PC Card) driver
                [ ] HCI BT3C (PC Card) driver
                [ ] HCI BlueCard (PC Card) driver
                [ ] HCI UART (PC Card) device driver
                [ ] HCI VHCI (Virtual HCI device) driver

Sans fil

La mise en réseau sans fil (wireless) est très populaire, presque tous les ordinateurs portables modernes ont un périphérique réseau sans fil intégré. Linux prend en charge une large gamme de pilotes sans fil, et d'autres sont ajoutés chaque semaine. Pour déterminer si on a un périphérique sans fil PCI sur le système et de quel type il s'agit, exécuter la commande suivante:

/usr/sbin/lspci | grep -i wireless

06:05.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05)

la réponse à cette commande ne sera probablement pas identique; ce qui est important, c'est que la commande affiche certains périphériques sans fil PCI.

Pour activer la prise en charge sans fil sous Linux, l'option de configuration réseau IEEE 802.11 doit être activée (802.11 est le numéro de la spécification sans fil que tous ces périphériques suivent.)

Networking
    [*] Networking support
    [*]   Generic IEEE 802.11 Networking Stack

Activer également les différentes options du protocole 802.11 et l'option “Software MAC” pour fournir une prise en charge complète de tous les différents types de périphériques sans fil sous Linux:

Networking
    [*] Networking support
    [*]   Generic IEEE 802.11 Networking Stack
    [*]     IEEE 802.11 WEP encryption (802.1x)
    [M]     IEEE 802.11i CCMP support
    [M]     IEEE 802.11i TKIP encryption
    [M]     Software MAC add-on to the IEEE 802.11 networking stack

La prise en charge des différents types de périphériques réseau sans fil PCI se trouve dans la section Pilote réseau de la configuration:

Device Drivers
    Network device support
        Wireless LAN (non-hamradio)
            [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions
            [*]   Wireless Extension API over RtNetlink

Il existe une large gamme de pilotes PCI différents dans cette section. Sélectionner le bon en fonction de l'appareil.

Les pilotes de périphérique réseau sans fil USB se trouvent dans une section différente de la configuration:

Device Drivers
    USB Support
        USB Network Adapters

Systèmes de fichiers

Linux prend en charge un large éventail de types de systèmes de fichiers traditionnels et un certain nombre de types de systèmes de fichiers différents (gestionnaires de volumes, systèmes de fichiers en cluster, etc.). Les types de systèmes de fichiers traditionnels (normaux ou journalisés) peuvent être sélectionnés dans le menu principal de configuration du système de fichiers:

File systems
    [*] Second extended fs support
    [*] Ext3 journalling file system support
    [ ] Reiserfs support
    [ ] JFS filesystem support
    [ ] XFS filesystem support

Cette section montrera quelques-uns des types de systèmes de fichiers non traditionnels pris en charge par Linux, et comment les activer.

RAID

RAID offre la possibilité de combiner de nombreux disques afin qu'ils ressemblent à un disque logique. Cela peut aider à fournir des moyens d'assurer la redondance ou la vitesse en répartissant les données sur différents plateaux de disques. Linux prend en charge le RAID matériel et logiciel. Le RAID matériel est géré par le contrôleur de disque, sans aucune aide du noyau.

Le RAID logiciel est contrôlé par le noyau et peut être sélectionné comme option de génération:

Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]   RAID support

Il existe de nombreux types de configurations RAID. Au moins un doit être sélectionné pour que RAID fonctionne correctement:

Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]   RAID support
        [*]     Linear (append) mode
        [*]     RAID-0 (striping) mode
        [*]     RAID-1 (mirroring) mode
        [*]     RAID-10 (mirrored striping) mode (EXPERIMENTAL)
        [*]     RAID-4/RAID-5 mode
        [*]     RAID-6 mode

Gestionnaire de volumes logiques et mappeur de périphériques (LVM)

Tout comme le RAID, LVM (Logical Volume Manager) permet à l'utilisateur de combiner différents périphériques de bloc pour ressembler à un périphérique logique. Cependant, il ne fonctionne pas au niveau d'un périphérique comme RAID, mais via un mécanisme de mappage de blocs et de secteurs. Il permet à différentes parties de différents disques d'être combinées ensemble pour ressembler à un grand périphérique bloc pour l'utilisateur. Pour ce faire, le noyau utilise quelque chose appelé Device Mapper (DM).

Pour activer la prise en charge de Device Mapper dans le noyau:

Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]   Device mapper support

Il existe un certain nombre de modules d'assistance qui fonctionnent avec Device Mapper pour fournir des fonctionnalités supplémentaires. Il faut les activer si on veut crypter less devices, ou autoriser la fonctionnalité snapshot:

Device Drivers
    Multi-device support (RAID and LVM)
        [*] Multiple devices driver support (RAID and LVM)
        [*]   Device mapper support
        [*]     Crypt target support
        [*]     Snapshot target (EXPERIMENTAL)
        [*]     Mirror target (EXPERIMENTAL)
        [*]     Zero target (EXPERIMENTAL)
        [*]     Multipath target (EXPERIMENTAL)

Partage de fichiers avec Windows

Samba est un programme qui permet aux utilisateurs Linux d'accéder nativement aux machines Windows sur le réseau, offrant un moyen de partager des disques et des périphériques de manière transparente. Il permet également à Linux de fonctionner comme un serveur Windows, permettant aux clients Windows de s'y connecter en pensant qu'il s'agit d'une véritable machine Windows.

Deux systèmes de fichiers différents qui permettent à une machine Linux de se connecter à une machine Windows: le système de fichiers SMB et le système de fichiers CIFS. Pour pouvoir se connecter à d'anciennes machines Windows for Workgroups ou Windows 95 ou 98, sélectionner le système de fichiers SMB:

File systems
    Network File Systems
        [*] SMB file system support (to mount Windows shares etc.)

Pour la possibilité de se connecter à des machines Windows plus récentes, le système de fichiers CIFS est recommandé à la place:

File systems
    Network File Systems
        [*] CIFS support

OCFS2

OCFS2 est un système de fichiers en cluster d'Oracle qui fonctionne à la fois pour les grandes installations réseau et les petits systèmes locaux. Ce système de fichiers est recommandé lors de l'utilisation de grandes bases de données, telles qu'Oracle ou DB2, car il peut être déplacé au fil du temps vers différents disques de sauvegarde sur le réseau assez facilement car davantage de stockage est nécessaire.

Pour activer le système de fichiers:

File systems
    [*] OCFS2 file system support

Sécurité

Le noyau Linux prend en charge différents modèles de sécurité en fournissant des hooks et en permettant d'intégrer un choix de modèle. Pour le moment, seuls quelques modèles sont livrés avec l'arborescence source du noyau par défaut, mais les développeurs de nouveaux modèles travaillent à être mieux acceptés.

Capacités Linux par défaut

Le type standard de modèle de sécurité pour Linux est le modèle de capacity. Il faut toujours sélectionner cette option, sauf si on veut vraiment exécuter un noyau non sécurisé pour une raison quelconque.

Pour l'activer:

Security options
    [*] Enable different security models
    [*]   Default Linux Capabilities

SELinux

Un modèle de sécurité très populaire est appelé SELinux. Ce modèle est pris en charge par un certain nombre de distributions Linux différentes.

SELinux nécessite que l'option de mise en réseau soit activée. Voir la section intitulée «Networking» pour l'activer.

SELinux nécessite également que l'audit soit activé dans la configuration du noyau. Pour faire ça:

General setup
    [*] Auditing support

De plus, l'option de sécurité réseau doit être activée:

Security options
    [*] Enable different security models
    [*]   Socket and Networking Security Hooks

Il est maintenant possible de sélectionner l'option SELinux:

Security options
    [*] Enable different security models
    [*] NSA SELinux Support

Il existe également un certain nombre d'options SELinux individuelles que l'on peut activer. Consulter l'aide pour les différents éléments individuels pour plus de descriptions sur ce qu'ils font.

Security options
    [*] Enable different security models
    [*] NSA SELinux Support
    [ ]   NSA SELinux boot parameter
    [ ]   NSA SELinux runtime disable
    [*]   NSA SELinux Development Support
    [*]   NSA SELinux AVC Statistics
    (1)   NSA SELinux checkreqprot default value

Débogage du noyau

Un large éventail d'options différentes du noyau peut aider à déboguer ce qui se passe dans le noyau. Voici une liste de quelques-uns des plus courants qui peuvent être utiles pour découvrir de nouvelles choses sur le fonctionnement du noyau, ou aider à trouver des problèmes potentiels dans le code source du noyau actuel.

Horodatage du journal du noyau

Le noyau génère une large gamme de messages dans son fichier journal. Ces messages peuvent être vus en consultant le fichier journal du système (généralement situé dans /var/log/messages) ou en exécutant la commande dmesg.

Parfois, il est utile de voir exactement quand ces messages ont été créés. dmesg, cependant, ne met pas d'horodatage sur les événements qu'il affiche, et la résolution temporelle de /var/log/messages n'est qu'à la seconde près. On peut configurer le noyau pour attribuer à chaque message un horodatage précis jusqu'à la plus petite valeur de temps du noyau mesurable (généralement dans la plage de microsecondes).

Pour activer les options d'horodatage sur les messages du noyau:

Kernel hacking
    [*] Show timing information on printks

Clés Magic SysRq

La touche SysRq du clavier peut être utilisée pour contrôler le noyau de différentes manières pendant que le noyau est en cours d'exécution ou après un plantage.

Pour activer cette option:

Kernel hacking
    [*] Magic SysRq key

Pour une description complète des différentes actions pouvant être déclenchées par cette option, consulter le fichier Documentation /sysrq.txt dans l'arborescence des sources du noyau.

Système de fichiers de débogage

Un système de fichiers basé sur la RAM peut être utilisé pour produire un grand nombre d'informations de débogage différentes. Ce système de fichiers est appelé debugfs et peut être activé par:

Kernel hacking
    [*] Debug filesystem

Après avoir activé cette option et démarré le noyau reconstruit, il crée le répertoire /sys/kernel/debug comme emplacement pour l'utilisateur pour monter le système de fichiers debugfs manuellement:

mount -t debugfs none /sys/kernel/debug

ou faire monter automatiquement le système de fichiers au démarrage en ajoutant la ligne suivante au fichier /etc/fstab:

debugfs /sys/kernel/debug debugfs 0 0

Après avoir monté debugfs, un grand nombre de répertoires et fichiers différents apparaîtront dans le répertoire /sys/kernel/debug/. Ils sont tous virtuels et générés dynamiquement par le noyau, comme les fichiers dans procfs ou sysfs. Les fichiers peuvent être utilisés pour aider au débogage de différents sous-systèmes du noyau, ou tout simplement pour voir ce qui se passe avec le système pendant son fonctionnement.

Débogage général du noyau

Voici une gamme d'autres bonnes options de configuration du noyau que l'on peut activer si on souhaite aider les développeurs du noyau à déboguer différents problèmes, ou tout simplement en savoir plus sur le fonctionnement du noyau en consultant les messages que ces options affichent.

Si on active presque toutes ces options, le noyau ralentira un peu, donc si on remarque une baisse des performances, il faudra peut-être désactiver les options.

Kernel hacking
    [*] Kernel debugging
    [*]   Detect Soft Lockups
    [ ]   Collect scheduler statistics
    [*]   Debug slab memory allocations
    [*]     Memory leak debugging
    [*]   Mutex debugging, deadlock detection
    [*]   Spinlock debugging
    [*]   Sleep-inside-spinlock checking
    [ ]   kobject debugging
    [ ]   Highmem debugging
    [ ]   Compile the kernel with debug info
1)
Presque toutes les distributions placent le programme lspci dans le répertoire /usr/sbin /, mais certaines le placent dans d'autres emplacements. Pour savoir où il se trouve, utiliser: which lspci
lfs/lkn-c09-kernel-configuration-recipes.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1