3. Que faut-il pour l'utiliser~?

Contenu de cette section

3.1 Configuration du noyau

Il vous faut un contrôleur SCSI reconnu, évidemment. De plus, votre noyau doit être compilé avec le support du contrôleur en plus du support générique. La configuration du noyau Linux (par make config sous /usr/src/linux) doit avoir une allure de ce genre~:

 ...
*
* SCSI support
*
SCSI support? (CONFIG_SCSI) [n] y
*
* SCSI support type (disk, tape, CDrom)
*
 ...
Scsi generic support (CONFIG_CHR_DEV_SG) [n] y
*
* SCSI low-level drivers
*
 ...

Si vous en disposez, les modules peuvent évidemment remplacer avantageusement ces supports.

3.2 Fichiers de périphériques

Le pilote générique utilise ses propres fichiers de périphériques, distincts de ceux utilisés par les autres pilotes SCSI. Ceux-ci peuvent être générés à l'aide du script MAKEDEV, qu'on trouve habituellement dans le répertoire /dev. MAKEDEV sg produit les fichiers suivants~:

crw-------   1 root     system    21,   0 Aug 20 20:09 /dev/sga
crw-------   1 root     system    21,   1 Aug 20 20:09 /dev/sgb
crw-------   1 root     system    21,   2 Aug 20 20:09 /dev/sgc
crw-------   1 root     system    21,   3 Aug 20 20:09 /dev/sgd
crw-------   1 root     system    21,   4 Aug 20 20:09 /dev/sge
crw-------   1 root     system    21,   5 Aug 20 20:09 /dev/sgf
crw-------   1 root     system    21,   6 Aug 20 20:09 /dev/sgg
crw-------   1 root     system    21,   7 Aug 20 20:09 /dev/sgh
                                   |    |
                        numeros majeur, mineur

On trouve aussi des périphériques de type raw pour l'accès séquentiel. Sur certains système, ces périphériques peuvent s'appeler /dev/{sg0,sg1,...}, en fonction de votre installation. Vous devrez donc adapter les exemples qui suivent en conséquence.

3.3 Mapping de périphériques

Ces périphériques sont mappés dynamiquement sur les id/LUN (LUN~= Logical UNit, unité logique) de votre bus SCSI. Le mapping alloue consécutivement les périphériques selon les LUN de chacun sur chaque bus SCSI trouvés, à partir des LUN/id/bus inférieurs. Il commence par le premier contrôleur SCSI et continue sans interruption avec tous les autres contrôleurs. Cette étape est actuellement réalisée lors de l'initialisation du pilote SCSI.

Par exemple, si vous avez trois périphériques SCSI configurés avec les id 1, 3 et 5 sur le premier bus SCSI (chacun avec un LUN), alors le mapping qui suit sera réalisé~:

/dev/sga -> SCSI id 1
/dev/sgb -> SCSI id 3
/dev/sgc -> SCSI id 5

Maintenant, si vous ajoutez un nouveau périphérique d'id 4, le mapping (après la prochaine scrutation du bus) sera~:

/dev/sga -> SCSI id 1
/dev/sgb -> SCSI id 3
/dev/sgc -> SCSI id 4
/dev/sgd -> SCSI id 5

Notez la modification pour l'id 5 -- le périphérique correspondant n'est plus mappé sur /dev/sgc mais sur /dev/sgd.

Re-scruter les périphériques

Pour forcer une scrutation, un pilote modularisé peut être supprimé et réinséré. Il scrute le bus à nouveau lors de l'initialisation. Mais pour pouvoir supprimer le pilote, aucun de ses périphériques ne doit être utilisé à cet instant. Lors de l'ajout de nouveaux périphériques, gardez à l'esprit que le nombre d'entrées disponibles pour ceux-ci est limité. La mémoire a été allouée lors du lancement de la machine et dispose d'espace pour seulement deux nouveaux périphériques.

La scrutation de tous les LUN des bus SCSI n'est pas recommandée. Il y a trop de périphériques (bogués) qui peuvent bloquer le bus SCSI lorsqu'on les appelle avec une valeur de LUN différente de zéro (0). Le noyau maintient une table interne de périphériques connus pour ce défaut, pour lesquels il ne scrute que le LUN~0. Les nouveaux noyaux scrutent ainsi par défaut (seulement la LUN~0).


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre