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.
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.
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
.
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