4. Que faut-il pour l'utiliser ?

Contenu de cette section

4.1 Configuration du noyau

Il vous faut évidemment un adapteur SCSI reconnu. De plus, votre noyau doit être compilé avec le support du pilote générique, en plus de celui pour votre adapteur. La configuration du noyau Linux (par make config sous /usr/src/linux) doit ressembler à :

 ...
*
* 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 le noyau est modulable, vous pouvez tout aussi bien utiliser les modules.

4.2 Fichiers spéciaux

Le pilote générique utilise ses propres fichiers spéciaux. Ils peuvent être créés par le script MAKEDEV, que l'on trouve habituellement dans le répertoire /dev. La commande MAKEDEV sg crée 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

Notez que ces fichiers sont des fichiers en mode caractère pour permettre les accès directs. Sur certains systèmes, ces fichiers peuvent s'appeler /dev/{sg0,sg1,...}, en fonction de votre installation. Vous devrez donc adapter les exemples qui suivant en conséquence.

4.3 Organisation des périphériques

Les fichiers spéciaux sont affectés dynamiquement aux ID/LUN (LUN : Unité logique) du bus SCSI. Les périphériques sont consécutivement alloués selon les unités logiques de chaque périphérique détecté lors de la scrutation du bus, les plus petits LUN/ID/BUS étant alloués en premier. Le noyau commence par le premier contrôleur SCSI et continue sans interruption avec tous les autres adapteurs. 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 une seule unité logique), l'affectation sera la suivante :

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

Si vous ajoutez maintenant un nouveau périphérique d'identificateur 4, l'organisation 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 le changement pour l'identificateur 5 - le périphérique correspondant n'est plus affecté à /dev/sgc, mais à /dev/sgd.

Les noyaux plus récents permettent de changer cet ordre.

Insertion et retrait dynamiques de périphériques SCSI

Dans les noyaux récents avec un système de fichier /proc monté, il est possible de retirer et d'ajouter un périphérique libre (non-busy) à la volée.

Pour enlever un périphérique SCSI :

echo "scsi remove-single-device a b c d" > /proc/scsi/scsi

De la même manière, ajouter un périphérique SCSI se fera par :

echo "scsi add-single-device a b c d" > /proc/scsi/scsi

Ici, a, b, c et d sont définis de la façon suivante :

      a == identificateur de l'adapteur (le premier a l'id 0)
      b == canal SCSI sur l'adapteur (le premier a le numero 0)
      c == ID
      d == LUN (la premiere ayant le numero 0)

Ainsi, si nous désirons intervertir l'affectation des fichiers /dev/sgc et /dev/sgd de l'exemple précédent, nous pouvons faire :

echo "scsi remove-single-device 0 0 4 0" > /proc/scsi/scsi
echo "scsi remove-single-device 0 0 5 0" > /proc/scsi/scsi
echo "scsi add-single-device 0 0 5 0" > /proc/scsi/scsi
echo "scsi add-single-device 0 0 4 0" > /proc/scsi/scsi

puisque les périphériques génériques sont alloués dans leur ordre d'insertion.

Si vous voulez ajouter de nouveaux périphériques sur le bus SCSI, gardez à l'esprit qu'un nombre limité d'entrées supplémentaires a été attribué. La mémoire a été allouée au démarrage, et il n'y a de place que pour 2 entrées supplémentaires.


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