0% ont trouvé ce document utile (0 vote)
79 vues55 pages

Chapitre 3

Transféré par

amine.gmih
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
79 vues55 pages

Chapitre 3

Transféré par

amine.gmih
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre3

Configuration du matériel
Le BIOS (Basic Input Output System)
Définition:
une petite mémoire située sur la carte-mère, dont les données
définissent les paramètres du système.

• Une partie dans une mémoire ROM, cette partie est non modifiable.

• La deuxième partie du BIOS se situe dans une mémoire dont le


contenu est modifiable (l'EEPROM). C'est cette partie que l'on
modifie lorsqu'on parle du terme "flashage".

• La troisième partie du BIOS se situe dans la mémoire CMOS, cette


mémoire contient tous les paramètres du BIOS. Effacer cette
mémoire est sans danger (lorsque l'on enlève la pile de la carte
mère, on efface la mémoire CMOS), mais tous les paramètres du
BIOS devront être reconfigurés !
Le BIOS
• Quand le processeur reçoit un signal power good, il démarre
l'exécution du firmware BIOS.

• Ce signal power good est envoyé par le bloc d'alimentation quand


l'utilisateur allume son ordinateur ou appuie sur le bouton reset.

• Lorsque le système est mis sous-tension ou réamorcé (Reset), le


BIOS fait l'inventaire du matériel présent dans l'ordinateur et
effectue un test (appelé POST, pour "Power-On Self Test") afin de
vérifier son bon fonctionnement.
Le BIOS
Voici ce que le test POST fait au démarrage :

• Il effectue un test du processeur en premier, puis vérifie le BIOS.

• Il va chercher à récupérer les paramètres du BIOS et va donc


vérifier le contenu de la mémoire CMOS

• Il initialise l'horloge interne et le contrôleur DMA

• Il contrôle le bon fonctionnement des mémoires (vive et cache)

• Il vérifie les différents périphériques : carte graphique, disques durs,


lecteurs de disquettes et CD-ROM. Si un problème survient, le BIOS
donne la source du problème en fonction du nombre de bips qu'il
émet.

• Il répartit les différentes canaux DMA disponibles entre tous les


périphériques
Le BIOS
Pour modifier les paramètres du BIOS, on accède à une interface
appelée Setup. Il existe différentes touches ou combinaisons de
touches pour accéder à cette interface. Voici les plus connues :

• Appuyer sur la touche "suppr" (ou "del")


• Appuyer sur la touche "echap"
• Appuyer sur la touche F1, F2 ou F10

Il peut être intéressant de désactiver un périphérique pour assurer le


bon fonctionnement de Linux.
IRQ (Interrupt Request Query)
Définition:
C’est un signal envoyé par un périphérique au CPU pour lui indiquer
qu’une requête (du périphérique) doit être satisfaite.

Les IRQ sont envoyés par l’intermédiaire d’un circuit spécialisé:


le PIC (Programable Interrupt Controller)

Sur les premiers PCs il n’y avait qu’un seul PIC (8 IRQ)
A partir des PCs de type 286 => ajout d’un 2ème PIC (en cascade)

Les IRQs sont numérotées de 0 à 15.


Les ordinateurs les plus récents offrent plus que 16 interruptions.

Les IRQs et leurs utilisations:


IRQ
IRQ
• L’ISA (Industry Standard Architecture) utilise le partage d’une
interruption entre deux périphériques.
Idéalement, chaque périphérique ISA devrait avoir son propre IRQ.

• Le bus ISA est devenu rare sur les ordinateurs fabriqués depuis
2001.

• malgré, l'absence physique de slots ISA .L’ ISA peut être utilisé en
interne pour gérer certains périphériques, tels que le ports série
RS-232 et les ports parallèles.

# cat /proc/interrupts (IRQ des périphériques déjà utilisés)


IRQ
• /proc n'existe pas sur le disque dur, il est fournit dynamiquement
par le noyau. Il permet de fournir des informations sur ce que voit le
noyau

Remarque :
# cd /proc
puis
# du
=> Occupation = 0 octet du disque dur
Entrées/Sorties
• Les ports d'entrée/sortie sont des adresses mémoires utilisées par
le processeur pour communiquer directement avec un périphérique
qui vient de lui envoyer une requête d'interruption (IRQ).

• L'échange de commandes ou de données entre le processeur et le


périphérique se fait sur l'adresse du port d'entrée/sortie du
périphérique, qui est un nombre hexadécimal.

• Deux périphériques ne peuvent pas utiliser le même port


d'entrée/sortie. Beaucoup ont comme port d'entrée/sortie une plage
de nombres hexadécimaux, ce qui signifie qu'ils utilisent en fait
plusieurs adresses.

# cat /proc/ioports
DMA
Le DMA (Direct Memory Access) permet à un périphérique de
transmettre des données directement à la mémoire sans utiliser le
processeur.

Les canaux DMA sont utilisés par les périphériques de communication


rapide, qui doivent envoyer et recevoir des informations à un débit
élevé.

Les ports série et parallèle n’utilisent pas de canaux DMA, mais les
carte sons, les adaptateurs SCSI, IDE et les cartes d’acquisition en ont
besoin pour fonctionner.

Les canaux DMA peuvent parfois être partagés si les périphériques ne


doivent pas fonctionner simultanément
DMA
Exemple: la réception d'un paquet par un adaptateur réseau.
Exemple

Sans DMA, le processeur doit aller lire le contenu du tampon de la


carte réseau un octet à la fois, et écrire l'octet dans la mémoire. C'est
un processus assez inefficace car le processeur est sollicité à chaque
Fois.

Avec DMA, le processeur configure le transfert dans un contrôleur


programmable, le contrôleur DMA. Ensuite c'est le contrôleur DMA qui
va gérer le transfert afin de ne pas bloquer le processeur. Le transfert
de donnée par DMA se fait directement entre la carte réseau et la
mémoire (d'où "accès direct à la mémoire")
DMA
# cat /proc/dma

=> 2: floppy
4: cascade

Les canaux DMA sont numérotés de 0 à 7. On peut voir dans le cas de


l'exemple ci-dessus que le canal 2 est réservé par le lecteur disquette.

Le canal 4 est particulier et est toujours réservé par "cascade". En


effet, les 8 canaux sont obtenus en chaînant 2 contrôleurs DMA, le
canal 4 du premier servant d'entrée au second contrôleur.
Séquence de démarrage
et architecture du disque dur
Séquence de démarrage : démarrer à partir d’une disquette pour
lancer l'installation de linux ou utiliser une disquette de démarrage
d'urgence pour l'entretien
Architecture du disque dur :
• Anciennement il fallait renseigner les informations « CHS »
(Cylinder/Head/Sector) au niveau du BIOS.

Cylinder /

• Actuellement :
Le BIOS détecte automatiquement le disque dur.
L’architecture CHS à montré ses limites (8 GO maximum)
=> LBA (Logical block adressing) : un numéro est affecté à chaque secteur.
coldplug et hotplug
Périphérique hotplug: son retrait ou son ajout alors que la machine
tourne est possible. ≠ coldplug

Toutes les caractéristiques techniques que le kernel obtient en «


interrogeant »le matériel sont disponibles dans /sys . Tous les fichiers
qu’on trouve dans cette partie de l’arborescence sont générés en direct
par le kernel, c’est une gestion totalement dynamique des
périphériques qu’on ajoute/supprime à chaud.

« Sysfs » est un système de fichier virtuel monté au niveau du /sys


qui exporte des informations sur les périphériques.

# ls /sys
coldplug et hotplug
• Pour que les programmes extérieurs au kernel puissent accéder à
un périphérique, il faut « nommer »le périphérique en mettant un
fichier dans /dev (sous linux TOUT est fichier, y compris le matériel).

• C’est udev qui se charge de créer dynamiquement les fichiers dans


/dev .
udev est un programme qui va être informé par le kernel qu’un
nouveau matériel est connecté et qu’il faut lui donner un nom
(=fichier) dans /dev , à travers des règles définies dans /etc/udev/

• Une fois que le nouveau périphérique est devenu utilisable à travers


un fichier, il reste à avertir les utilisateurs (programmes) que ce
matériel est disponible.
C’est HAL , Hardware Abstraction Layer, qui va s’en charger en
collectant et en rendant accessibles les informations

# lshal
coldplug et hotplug
• Les informations collectées par HAL vont être envoyé à l’utilisateur.
HAL va « poster » un message qui sera pris en compte par d’autres
programmes utilisateurs grâce à D-bus
Cartes PCI
Normalement il n’y a pas d’intervention à faire à ce niveau car le bus
PCI a été conçu pour permettre d’avoir du plug-and play.

Le kernel linux a une option qui influe sur la détection des cartes PCI
(Bus option)
= BIOS
= MMConfig (c’est un protocole)
= Direct (système de détection propre à linux)
= Any (MMConfig puis Direct puis BIOS)

Exemple dans Debian


Dans /boot/grub/[Link] ajouter à la fin de la ligne kernel « pci=nommconf »

Choisir (Bus option) = BIOS pour un périphérique qui nécessite un


paramétrage spécifique au niveau du BIOS
Cartes PCI
Configuration au niveau du driver (voir la doc du matériel).

# lspci : vérifier comment les cartes PCI ont été configurées


Manipuler les modules
le noyau Linux assure, entre autres, la gestion des périphériques, à
l'aide de pilotes intégrés.

En effet, certaines portions de code du noyau permettent à ce dernier


de piloter différents matériels existants. Ce code correspond donc à
des drivers ou pilotes de périphériques.

Depuis la version 2.0 du noyau, certains périphériques sont pilotés


grâce à des programmes externes au noyau, appelés "modules" qui
peuvent être chargés dynamiquement...

Les fichiers contenant le code compilé des modules se trouvent dans


l'un des sous-répertoires « /lib/modules » de votre système de fichiers.
Manipuler les modules
Afficher les modules : lsmod (LiSt MODules)

Pour visualiser la liste des pilotes actuellement chargés par le système


et leurs dépendances, saisissez la commande lsmod. Cette commande
retourne une liste sous forme de trois colonnes :

• dans la première colonne, vous trouverez le nom des modules ;


• dans la deuxième colonne, la taille du fichier correspondant ;
• dans la troisième colonne se trouvent le nombre de processus qui utilisent
le module, ainsi que le nom des dépendances éventuelles propres à
chaque module.

Remarque:
• lsmod affiche les modules et non pas les drivers qui sont compilés avec le
noyau.
• Ces informations sont également présentes dans le fichier /proc/modules.
Manipuler les modules
Afficher les modules : lsmod (LiSt MODules)

Exemple:

fat 53020 1 vfat

• vfat a nécessairement besoin du module fat pour fonctionner. Par


conséquent, ceci implique que le module fat doit être chargé avant
l'autre, et qu'il n'est pas possible de retirer le module fat avant que
vfat ne soit retiré.

• Le chiffre qui précède le nom des dépendances indique qu'un


programme utilise actuellement le module.
Manipuler les modules
• Charger un module : insmod (INStall MODule)

Un module compilé peut être chargé ainsi :

# insmod [options] <nom_complet_du_module>

Exemple:
# insmod /lib/modules/2.6.26/kernel/drivers/block/[Link]
Manipuler les modules
• Supprimer un module : rmmod (ReMove MODule)

Cette commande permet de supprimer un module. Elle s'utilise de


la façon suivante :

# rmmod [options] <nom_du_module>

Remarque:
Le module ne pourra être retiré que s'il n'est pas utilisé par un
processus ou s'il n'est pas requis par d'autres modules chargés.
Manipuler les modules
Charger et retirer un module : modprobe

Un module peut être chargé de diverses façons :

• dès le démarrage du système, grâce aux scripts contenus dans les


répertoires /etc/rcX.d/, via la commande modprobe. C'est le cas des
pilotes qui doivent être disponibles immédiatement après la phase
de démarrage.

• manuellement, à n'importe quel moment, via les commandes


insmod ou modprobe pour les pilotes que vous utilisez
occasionnellement.

De même, un module peut être retiré manuellement à tout moment à


l'aide de commandes rmmod ou modprobe.
Manipuler les modules
La syntaxe de la commande modprobe est la suivante :

# modprobe [options] <nom_du_module>

Ainsi, pour charger le module usb_storage par exemple (qui permet de


piloter des clés USB), vous n'avez qu'à saisir la commande (en tant
que root) :

# modprobe usb_storage

Le programme modprobe va insérer automatiquement les modules


requis (pour cela, on se réfère au résultat de la commande lsmod), en
l'occurrence usbcore, puis charger le module usb_storage.
Manipuler les modules
Pour retirer un module, il faut saisir la commande suivante :

# modprobe -r usb_storage
Manipuler les modules
à l'aide des options -l et -t, vous pouvez lister tous les modules d'un type
donné. Le type correspond au nom du sous-répertoire de
/lib/modules/XXX/kernel/drivers/ qui contient les modules.

Ainsi, pour obtenir la liste des modules du type réseau, la commande est
la suivante :

# modprobe -l -t net

Si votre périphérique ne fonctionne pas correctement (voire pas du tout),


vous pouvez retirer le module correspondant puis essayer de le
Recharger.
Manipuler les modules
Obtenir des informations sur un module : modinfo

Pour connaître la liste des paramètres pour un module, il suffit de saisir


la commande modinfo, suivie du nom du module :

Exemple :
# modinfo usb_storage
Manipuler les modules
Exemple pratique:

Nous allons retirer le module correspondant au pilote de notre


carte son.

Il faut déterminer quel est le module chargé de piloter la carte son, à


l'aide de la commande suivante :
# lsmod | grep snd

On repère notre carte son, puis on retire le module à l'aide de la


commande modprobe :
# modprobe -rv snd_via82xx
Manipuler les modules
Celle-ci nous retourne un message d'erreur : "FATAL: Module
snd_via82xx is in use.". Pourtant, aucun autre module ne dépend de ce
module. Cela signifie qu'un ou des programme(s) est (sont) en train
d'utiliser la carte son. Pour déterminer de quel(s) programme(s) ,
il faut utiliser la commande lsof (qui permet de lister les fichiers
ouverts et que l'on va utiliser avec un filtre sur la chaîne snd) :

# lsof | grep snd


Cette commande nous retourne le nom de 2
programmes : mixer_app et soffice.b. Il nous faut donc arrêter ces
programmes à l'aide de la commande killall :

# killall mixer_app soffice.b


Manipuler les modules
• À présent, notre module snd_via82xx peut être retiré sans difficulté.
Les modules dont il dépend seront retirés également. Par la suite,
pour pouvoir utiliser votre carte son, n'oubliez pas de recharger le
module retiré, en prenant soin de recharger d'abord les modules
dont il dépend.
périphériques USB
# lsusb
Liste des périphériques USB branchés.

Le noyau Linux n'a pas été conçu pour gérer les branchements USB qui
sont à chaud.
Deux outils sont notamment utilisés pour la gestion des périphériques
USB: usbmgr et hotplug. (téléchargeable)
Le Disque Dur
• PATA : /dev/hda1 (maître), /dev/hdb1 (esclave)
/dev/hda1 (maître), /dev/hdc1 (maître)
• SATA : /dev/sda1;
• SCSI : /dev/sda1 ;
• DD externe: sda1
(bande : /dev/st0 ou /dev/nst0; cd ou dvd : /dev/sdc0)

Partitionnement du disque dur:


Le Disque Dur
Il y a trois sortes de partitions:
• la partition principale
• la partition étendue
• le lecteur logique.

Un disque peut contenir jusqu'à:


• quatre partitions principales
• trois partitions principales et une partition étendue.
Dans la partition étendue l'utilisateur peut créer des lecteurs logiques
(c'est-à-dire "simuler" plusieurs disques durs de taille moindre).
Le Disque Dur
LVM (Logical Volume Manager):
• Les partitions que nous utilisons couramment sont statiques, c'est-à-
dire qu'une fois la partition créée et formatée, je ne peux plus la
modifier sous-peine de perdre son contenu.

• Des utilitaires ont apparu sur le marché afin de supprimer cette


limitation, des produits tel que Partition Magic1 ou le logiciel libre
fips2.

• LVM va beaucoup plus loin que les dimensionnement offline (et limité
au même disque) dans le sens où un disque virtuel peut être dispersé
sur plusieurs disques physiques, tout comme les partitions virtuelles

• La Figure (dans diapo suivant) montre les différences entre deux


disques physiques de 18 Go chacun, et le disque virtuel de 36 Go,
avec ces trois partitions virtuelles. On remarque aussi que la partition
virtuelles lv3 est dispersée sur les deux disques physiques.
Le Disque Dur
LVM (Logical Volume Manager):

lv1
lv2
lv3
Le Disque Dur
La commande fdisk
Permet la manipulation de tables de partitions.

• fdisk signifie «disque fixe», comme dans "disque dur".

• Cet utilitaire est un programme qui est installé sur pratiquement


toutes les distributions Linux.
Le Disque Dur
La commande parted

• C’est un utilitaire de partitionnement de disque qui peut faire


beaucoup plus que fdisk, comme le fait de redimensionner et de
copier une partition.

• parted est un programme qui n'est pas toujours installé sur toutes les
distributions. Au besoin vous pouvez le télécharger et l'installer.
Le Disque Dur
La commande mkfs
Permet le formatage.

Exemple:
# mkfs –t ext3 /dev/hda6
Ou
# mkfs.ext3 /dev/hda6

# [Link] /dev/hda6

Exercice 3.1 page 141


(Prévoir une partition libre)
Le Disque Dur
La commande mkswap
Création de l’espace swap

Exemple:
# mkswap /dev/hda7
Puis activation:
# swapon /dev/hda7
(pour une activation permanente => /etc/fstab)
Maintenir le système de fichier
Afficher les informations d'un système de fichiers:

# dumpe2fs [options] device

Options courantes:
• -b: Afficher les blocs défectueux du système de fichiers.
• -h: Afficher des informations détaillées (exemple suivant)
Maintenir le système de fichier
Afficher les informations d'un système de fichiers :
Maintenir le système de fichier
La commande xfs_info
Affiche des informations sur le système de fichier d’une partition donnée
qui a comme système de fichier XFS (utilisé par le système
d'exploitation IRIX (qui est basé sur UNIX)) XFS est inclus par défaut
avec les versions du noyau Linux [Link] et [Link].

Exemple:
# xfs_info /dev/sda7
Maintenir le système de fichier
La commande tune2fs:
ajuste les paramètres des systèmes de fichiers ext2 et ext3
(affichés par dumpe2fs)

# tune2fs [options] device

Option courante:
-L: Renseigner le nom de volume du système de fichiers

Si vous utiliser le système de fichier XFS => xfs_admin


Maintenir le système de fichier
Déboguer les systèmes de fichiers:
debugfs est un débogueur interactif de système de fichiers. Il peut servir
à examiner et changer l’état d’un système de fichiers ext2, ext3 ou ext4.

# debugfs /dev/hda5
Vous sort une invite de commande (debugfs:)

Commandes courantes:
help: Donne de l'aide sur toutes les commandes disponibles.

quit : quitter

Si vous utiliser le système de fichier XFS : xfs_db


Maintenir le système de fichier
Journalisation du système de fichier:
Le système de fichier ext2 après un crash => devient inconsistant
⇒ Lancer fsck (prochain slide):
- durée du traitement parfois trop longue
- résultat incertain

Solution:
Journalisation du système de fichier : mémorisation des opérations en attente
⇒ vérification de la consistance de la partie concernant ces opérations
⇒ Marche arrière en cas de problème

Note:
tune2fs -j = ajout de la journalisation pour une partition montée.
ext3 = ext2 + journalisation
Maintenir le système de fichier
Vérification des systèmes de fichiers:
fsck:Pour vérifier la cohérence de systèmes de fichiers.
# fsck [-sACVRTNP] [-t fstype] [--] [fsck-options] filesystems

Options courantes:
• -A: Parcoure le fichier /etc/fstab et essaye de vérifier tous les
systèmes de fichiers.
• -C: afficher l’état d’avancement.

fsck-options courantes:
• -a: Réparer automatiquement.
• -r: Réparer interactivement.

-t fstype: Spécifier le type de système de fichiers qui doit être vérifié.

Exemples:
# fsck -t msdos /dev/fd0 -a
Supervision du disque
Connaitre l'espace libre et utilisé d'une partition:

# df [options] [files]

Option:
-a --all: inclure même les pseudo systèmes de fichier (/proc, /sys …)
-h --humain-readable: (5859784 blocks devient 5,5G)
-k en KO
et -m en MO
….etc

Exemple:
# df
# df -h /home
Supervision du disque
# du [options] [directories]
fournit des informations sur l’espace occupé par une arborescence

Exemple:
# du -s /home/*
(Pour n’avoir que le total et pas tous les détails)
Montage et démontage d’un système de fichier
Monter un système de fichiers:

La commande mount sert à lier le système de fichiers trouvé sur un


certain périphérique à la grande arborescence de fichiers.

# mount [-alrsvw] [-t fstype] [-o options] [device] [mountpoint]

Exemples:
# mount ( Affiche tous les systèmes de fichiers montés. (etc/mtab))

# mount -a ( Monter les périphériques ou répertoires listés dans


/etc/fstab).

# mount /dev/hdc /mnt/dd


Montage et démontage d’un système de fichier
Démonter un système de fichiers:

Pour détacher un système de fichiers dans l'arborescence fichiers,


utilisez umount.
# umount [-afnrv] [-t fstype] [device | mountpoint]

Un système de fichiers occupé ne peut pas être démonté:


• Fichiers ouverts
• Répertoire de travail d'un processus.

Exemples:

# umount -a (Démonter les systèmes de fichiers et répertoires dans


/etc/fstab).

# umount /mnt/dde (Détacher le système de fichiers attaché à /mnt/dde.)


Montage et démontage d’un système de fichier
Informations sur un système de fichiers:
• Le fichier /etc/fstab contient tous les systèmes de fichiers et leur
information relatives qui seront utilisés quand on fait la commande
mount -a.
Montage et démontage d’un système de fichier
Informations sur un système de fichiers:

Options courantes:

ro : lecture seule,
noauto: Pas de montage automatique,
exec: Peut exécuter les binaires sur le système de fichiers,
suid: Autorise le bit setuser.
user: Autorise un utilisateur à le monter/démonter,
unhide: Fichiers cachés visibles.
Async: Toutes les opérations se feront de manière asynchrone.
default: rw, suid, dev, exec, auto, nouser, and async.
Fin

Vous aimerez peut-être aussi