Chapitre 11. Tirer parti du nouveau noyau - 1

Table des matières
1. Manipuler les modules
1.1. Insérer et retirer des modules
1.2. Le répertoire /etc/modprobe.d/
1.3. Le fichier /etc/modules
2. La configuration du réseau
2.1. Les interfaces réseau
2.2. Configurer les interfaces réseau
2.3. Visualiser la configuration des interfaces réseau
3. Lecteur de CD/DVD
3.1. Droit d'accès
3.2. Les devices
3.3. Les liens symboliques
4. Montage des systèmes de fichiers
4.1. /etc/fstab
4.2. Monter ses partitions Windows
4.3. Monter sa clé USB

1. Manipuler les modules

1.1. Insérer et retirer des modules

Les modules du noyau sont stockés sous forme de fichiers avec l'extension .ko (ou l'extension .o dans le cas des noyaux de la branche 2.4) dans le répertoire /lib/modules/2.6.X/. Par exemple, le driver d'une carte réseau sera le fichier /lib/modules/2.6.X/kernel/drivers/net/nom_du_module.ko.

Il existe des dépendances entre modules, c'est-à-dire que certains modules ont besoin de la présence d'autres modules pour fonctionner. Pour voir la liste des modules insérés et leurs dépendances, tapez :


% lsmod

La colonne de droite montre les dépendances entre crochets. Par exemple :


Module                  Size  Used by
vfat                    9500   0
fat                    29752   0 vfat

montre que le module vfat a besoin du module fat pour fonctionner. Cela signifie également que le module fat doit impérativement être inséré avant le module vfat... et que l'on ne peut retirer le module fat sans avoir retiré préalablement le module vfat.

La commande modprobe permet d'insérer et de retirer des modules en tenant compte de ces dépendances.

Par exemple, pour insérer le module vfat, tapez :


# modprobe vfat

Il va d'abord insérer les modules requis par vfat puis insérer le module vfat.

Pour retirer un module, il faut d'abord retirer les modules qui en dépendent. Par exemple, si on demande de retirer le module fat on aura un message d'erreur :


# modprobe -r fat
FATAL: Module fat is in use.

Le message d'erreur peut aussi venir du fait qu'un programme est entrain d'utiliser le module : le numéro de la colonne Used by dans la sortie de la commande lsmod est alors non nul. Dans ce cas, il faut d'abord arrêter les programmes qui utilisent le module avant de pouvoir le retirer.

Il faut donc d'abord retirer le module vfat et ensuite le module fat :


# modprobe -r vfat
# modprobe -r fat

Si, après l'insertion d'un module, le périphérique correspondant ne marche pas ou marche bizarrement, retirez le module et réinserez-le en précisant des paramètres lors de l'insertion. Pour connaître les paramètres d'un module, utilisez la commande modinfo :


% modinfo nom_du_module

Les paramètres sont indiqués sur les lignes qui commencent par parm:. Par exemple, si vous voyez un paramètre irq et un paramètre dma, vous pouvez essayer de jouer sur ceux-ci pour faire marcher le périphérique :


# modprobe -r nom_du_module
# modprobe nom_du_module irq=7 dma=1

1.2. Le répertoire /etc/modprobe.d/

L'explication de l'utilisation de ce répertoire pour le chargement automatique des modules figure à la fin du chapitre précédent Préparer le chargement automatique des modules. Dans tous les cas, n'oubliez pas d'exécuter la commande update-modules après chaque modification d'un fichier dans ce répertoire pour que le système puisse prendre en compte les modifications intervenues.

1.3. Le fichier /etc/modules

Ce fichier liste les modules qui doivent être chargés au démarrage. La syntaxe est d'écrire un nom de module par ligne, en précisant sur la ligne les options si besoin est.

Cette solution est à éviter si le module peut-être inséré automatiquement par un alias.

Si vous modifiez ce fichier et que vous voulez que les modules soient chargés immédiatement sans redémarrer, exécutez le script suivant :


# /etc/init.d/module-init-tools
Calculating module dependencies... done.
Loading modules: [liste des modules du fichier /etc/modules]

2. La configuration du réseau

2.1. Les interfaces réseau

2.1.1. L'interface de loopback

L'interface de loopback est une interface réseau qui relie la machine à elle-même. Cette interface est désignée par lo, l'adresse IP associée est 127.0.0.1 et le nom DNS associée est localhost. Ainsi, un utilisateur du système peut consulter un serveur Web hébergé sur la machine en demandant la page http://localhost/ et sa requête passera par l'interface de loopback.

2.1.2. L'interface associée à la carte réseau

Si votre ordinateur est équipé d'une carte réseau Ethernet, vous allez pouvoir y associer une interface eth0. Les paramètres réseau de cette interface pourront être obtenus automatiquement par DHCP si ce service est disponible sur le réseau, où être entrés à la main dans un fichier de configuration.

2.2. Configurer les interfaces réseau

Ce paragraphe est présent à titre d'information ; si vous avez bien suivi ma formation depuis le début, vous n'avez normalement pas à modifier les fichiers /etc/network/interfaces et /etc/resolv.conf dont la syntaxe est expliquée ci-dessous.

2.2.1. /etc/network/interfaces

Avec Debian, la configuration des interfaces réseaux se fait dans le fichier /etc/network/interfaces.

  • Pour configurer automatiquement la carte réseau par DHCP (sous réserve qu'un serveur DHCP soit disponible sur le réseau), le fichier doit contenir :

    
auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
  • Pour configurer la carte réseau à la main, vous devez préciser une adresse IP (address), un masque de sous-réseau (netmask) et une adresse de passerelle (gateway). Le fichier ressemblera alors à l'exemple ci-dessous :

    
auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
    	address 192.168.0.12
    	netmask 255.255.255.0
    	gateway 192.168.0.1
    

Dans le cas d'une interface WiFi, il faut tout d'abord installer le package qui gère les extensions wireless des interfaces WiFi :


# apt-get install wireless-tools

Ensuite, il suffit d'ajouter les paramètres spécifiques au WiFi aux paramètres normaux de l'interface. Par exemple :


auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.0.12
        netmask 255.255.255.0
        gateway 192.168.0.1
        wireless_essid mynetwork
        wireless_mode managed
        wireless_channel 7
        wireless_key 67:F4:3A:C3:DD:32

Les principaux paramètres spécifiques au WiFi sont :

  • wireless_essid : fixe le SSID ;

  • wireless_mode : fixe le mode (ad-hoc ou managed) ;

  • wireless_channel : fixe le numéro du canal (de 1 à 15) ;

  • wireless_key : donne la clé WEP.

2.2.2. /etc/resolv.conf

Le fichier de configuration /etc/resolv.conf contient les informations sur les requêtes DNS.

  • Pour ceux qui utilisent la configuration par DHCP, ce fichier est généré automatiquement à chaque requête DHCP.

  • Pour ceux qui configurent le réseau à la main, il faut préciser un ordre de recherche pour les noms DNS dont le domaine n'est pas précisé (search) et l'adresse IP d'un ou plusieurs serveurs DNS (nameserver). Le fichier ressemblera alors à l'exemple ci-dessous :

    
search labo.exemple.org exemple.org
    nameserver 192.168.100.1
    nameserver 192.168.100.2
    

2.2.3. Relancer le réseau

Pour que le système tienne compte des changements effectués dans le fichier de configuration, c'est-à-dire déconfigure les interfaces réseau et les reconfigure selon les instructions du fichier /etc/network/interfaces, lancez la commande suivante :


# /etc/init.d/networking restart
Reconfiguring network interfaces: done.

2.3. Visualiser la configuration des interfaces réseau

Pour visualiser la configuration des interfaces réseau, lancez la commande :


% ifconfig

Pour visualiser les paramètres WiFi des interfaces sans-fil :


% iwconfig

Pour visualiser la table de routage :


% route -n

3. Lecteur de CD/DVD

3.1. Droit d'accès

Pour avoir accès au lecteur de CD ou DVD, il faut appartenir au groupe disk. Rajoutez votre compte utilisateur à ce groupe :


# adduser toto disk

3.2. Les devices

Votre lecteur sera donc accessible par le périphérique /dev/hdXX = a, b, c ou d selon la manière dont est branché le lecteur. (Tout ceci a été expliqué dans la première partie de cette formation, section Les partitions).

3.3. Les liens symboliques

Créez un lien symbolique /dev/cdrom pointant vers le bon périphérique :


# cd /dev
# ln -sf hdX cdrom

Vous pouvez également créer un lien symbolique /dev/dvd pointant vers le périphérique correspondant à votre lecteur de DVD :


# ln -sf hdX dvd

Si vous avez un graveur, créez un lien symbolique /dev/graveur pointant vers le périphérique correspondant à votre graveur :


# ln -sf hdX graveur

4. Montage des systèmes de fichiers

4.1. /etc/fstab

Le fichier de configuration /etc/fstab contient les informations statiques sur le montage des systèmes de fichiers.

4.1.1. La syntaxe du fichier

Les règles de syntaxe du fichier sont les suivantes : une ligne par système de fichier, chaque ligne devant contenir dans l'ordre les informations suivantes séparées par au moins un espace :

  1. l'emplacement physique de la partition (par exemple /dev/hdXY pour une partition physique ou nom_DNS:/répertoire pour un répertoire partagé par NFS,

  2. le point de montage (le répertoire doit déjà exister, sinon il faut le créer au préalable avec la commande mkdir),

  3. le type de système de fichier (par exemple swap, ext3, vfat, ntfs, nfs, iso9660 pour les CD-ROM et DVD-ROM),

  4. les options de montage, séparées par des virgules :

    • ro pour monter le système de fichiers en lecture seule,

    • rw pour monter le système de fichiers en lecture-écriture,

    • noauto pour que le système de fichiers ne soit pas monté au démarrage (option contraire : auto),

    • user pour qu'un simple utilisateur puisse monter et démonter le système de fichiers et pas seulement le root (option contraire : nouser),

    • exec pour permettre l'exécution de binaires (option contraire : noexec),

    • uid, gid et umask pour définir des permissions pour l'ensemble du système de fichiers,

    • defaults pour les options par défaut (notamment rw, exec, auto et nouser),

    • et enfin sw pour la partition de swap.

  5. la valeur 1 si le système de fichier doit être sauvegardé ou la valeur 0 sinon (mettez 0 si vous n'avez pas de système de sauvegarde),

  6. la priorité pour la vérification des systèmes de fichiers par fsck au démarrage quand cela est nécessaire : la partition racine doit avoir la plus grande priorité (valeur 1), les autres doivent avoir une priorité inférieure (valeur 2). Les systèmes de fichiers qui ne doivent pas être vérifiés auront la valeur 0.

Donc pour un système classique, le fichier contient par exemple :


/dev/hda1	/	ext3	defaults,errors=remount-ro	0	1
/dev/hda2	none	swap	sw				0	0
/dev/hda5	/tmp	ext3	defaults			0	2
/dev/hda6	/home	ext3	defaults			0	2
proc		/proc	proc	defaults			0	0
/dev/fd0	/floppy auto	defaults,user,noauto		0	0
/dev/cdrom	/cdrom  iso9660 defaults,ro,user,noauto,exec	0	0
sysfs		/sys	sysfs	defaults			0	0

4.1.2. Monter et démonter une partition citée dans fstab

Un des avantages d'utiliser le fichier /etc/fstab est que le montage et le démontage des systèmes de fichiers cités dans ce fichier de configuration sont très simples. Il suffit d'utiliser la commande mount pour monter et umount pour démonter, suivie du device ou du répertoire de montage.

Ainsi, les deux commandes suivantes sont équivalentes, et permettent de monter la disquette :


# mount /floppy

# mount /dev/fd0

Comme nous avons précisé l'option user pour le lecteur de disquette dans fstab, les deux commandes précédentes peuvent être exécutées en tant que simple utilisateur. Dans ce cas, seul l'utilisateur en question et le root pourront démonter le système de fichier avec l'une des deux commandes suivantes :


# umount /floppy

# umount /dev/fd0

Important

Pour démonter un système de fichier, il faut qu'aucun des utilisateurs du système et aucun processus ne soit entrain d'ouvrir un des fichiers du système de fichier à démonter et qu'aucun utilisateur ne se trouve dans un des répertoires du système de fichiers à démonter. Sinon, la commande umount renverra le message d'erreur suivant :


umount : /floppy : périphérique occupé

Pour voir qui est responsable de cette occupation, utilise la commande lsof qui liste les fichiers ouverts :


% lsof | grep floppy

4.2. Monter ses partitions Windows

Vous avez normalement compilé le module pour pouvoir accéder à vos partitions Windows de type FAT ou NTFS depuis Linux.

4.2.1. Préparer le montage d'une partition FAT

Le système de fichier de type FAT (FAT 16 ou FAT 32) est utilisé par Windows 95/98/ME et parfois par Windows 2000/XP. Le driver Linux pour ce type de système de fichiers permet d'y avoir accès en lecture et en écriture.

Supposons que votre partition Windows de type FAT soit /dev/hda1 (première partition primaire sur le disque dur Primary Master). Nous allons la monter dans le répertoire /mnt/win1 qu'il faut créer au préalable :


# mkdir /mnt/win1

Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :


/dev/hda1	/mnt/win1	vfat	defaults,rw,user	0	0

4.2.2. Préparer le montage d'une partition NTFS

Le système de fichier de type NTFS est souvent utilisé par Windows 2000 et XP. Malheureusement, le driver Linux pour ce type de système de fichier n'est pas encore complet : il ne permet que d'y accéder en lecture, et pas en écriture.

Supposons que votre partition Windows de type NTFS soit /dev/hda5 (premier lecteur logique sur le disque dur Primary Master). Nous allons la monter dans le répertoire /mnt/win2 qu'il faut créer au préalable :


# mkdir /mnt/win2

Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :


/dev/hda5	/mnt/win2	ntfs	defaults,ro,user	0	0

4.2.3. Monter les partitions

Vous avez rajouté les entrées nécessaires dans le fichier /etc/fstab : vos partitions Windows seront donc dorénavant montées automatiquement dès le démarrage. Mais pour éviter de redémarrer, vous allez simplement demander au système de monter les partitions citées dans fstab et non déjà montées avec la commande suivante :


# mount -a

Si aucun message d'erreur n'apparaît, vous devez maintenant pouvoir voir le contenu de votre ou vos partition(s) Windows dans l'arborescence de votre système.

4.2.4. Modifier les droits sur les partitions Windows

Par défaut, les partitions Windows montées appartiennent à root, et dans le cas des partitions NTFS, elles ne sont pas lisibles par les autres utilisateurs. Pour modifier les droits d'accès appliquées aux partitions Windows, vous pouvez rajouter des options dans la ligne qui leur correspond dans le fichier /etc/fstab.

Par exemple, si vous voulez que sur la partition Windows /dev/hda1 formatée en FAT, les fichiers et les répertoires :

  • appartiennent à l'utilisateur dont l'ID est 1000,

  • appartiennent au groupe dont l'ID est 1000,

  • aient des droits rwxr-xr-x,

alors la ligne correspondant à la partition dans fstab devient la suivante :


/dev/hda1	/mnt/win	vfat	defaults,rw,user,uid=1000,gid=1000,umask=022	0	0

Avec le même exemple, mais pour une partition de type NTFS (donc montée en read-only) où les fichiers et les répertoires auront des droits r-xr-xr-x, la ligne devient :


/dev/hda1	/mnt/win	ntfs	defaults,ro,user,uid=1000,gid=1000,umask=022	0	0

Pour que les changements soient pris en compte, la commande mount -a ne suffit pas. Il faut démonter et remonter la partition :


% umount /mnt/win
% mount /mnt/win

4.3. Monter sa clé USB

Si vous avez une clé USB (ou n'importe quel périphérique compatible avec la norme "USB mass storage"), commencez par créer le répertoire dans lequel vous monterez la clé :


# mkdir /mnt/cleusb

Puis, si votre clé USB est formatée en FAT et que vous voulez que les fichiers une fois montés appartiennent à l'utilisateur dont l'ID est 1000, rajoutez la ligne suivante à la fin du fichier /etc/fstab :


/dev/sda1	/mnt/cleusb	vfat	defaults,noauto,user,sync,uid=1000,gid=1000,umask=022	0	0

Vous pouvez alors monter votre clé USB :


% mount /mnt/cleusb

Attention

N'oubliez pas de démonter votre clé USB avant de la débrancher, sous peine de corrompre les données qui y sont stockées :


% umount /mnt/cleusb