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.16.2/. Par exemple, le driver d'une carte réseau sera le fichier /lib/modules/2.6.16.2/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 |
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.
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] |
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.
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.
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.
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.
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 |
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. |
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 |
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 |
Votre lecteur de CD/DVD IDE sera accessible par le périphérique /dev/hdX où X = 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).
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 |
Le fichier de configuration /etc/fstab contient les informations statiques sur le montage des systèmes de fichiers.
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 :
l'emplacement physique de la partition (par exemple /dev/partition pour une partition physique ou nom_DNS:/répertoire pour un répertoire partagé par NFS,
le point de montage (le répertoire doit déjà exister, sinon il faut le créer au préalable avec la commande mkdir),
le type de système de fichier (par exemple swap, ext3, vfat, ntfs, nfs, iso9660 pour les CD-ROM et DVD-ROM),
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.
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),
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 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 /media/floppy0 auto user,noauto 0 0 /dev/cdrom /media/cdrom0 udf,iso9660 ro,user,noauto 0 0 |
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 /media/floppy0 |
# 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 /media/floppy0 |
# umount /dev/fd0 |
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 :
Pour voir qui est responsable de cette occupation, utilise la commande lsof qui liste les fichiers ouverts :
|
Vous avez normalement compilé le module pour pouvoir accéder à vos partitions Windows de type FAT ou NTFS depuis Linux.
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 IDE 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 |
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/sda5 (premier lecteur logique sur le premier disque dur SATA). 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/sda5 /mnt/win2 ntfs defaults,ro,user 0 0 |
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.
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 |
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 |
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 :
|
Précédent | Sommaire | Suivant |
Compiler le noyau | Niveau supérieur | Tirer parti du nouveau noyau - 2 |