Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1205

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Que faut-il pour l'utiliser ?</TITLE>
</HEAD>
<BODY>
<H1>4. <A NAME="s4"></A>Que faut-il pour l'utiliser ?</H1>
<P>
<A HREF="SCSI-Programming-HOWTO.html#toc4">Contenu de cette section</A></P>

<P></P>
<H2>4.1 <A NAME="ss4.1"></A> Configuration du noyau</H2>

<P>Il vous faut &eacute;videmment un adapteur SCSI reconnu. De plus, votre noyau doit &ecirc;tre compil&eacute; avec le support du pilote g&eacute;n&eacute;rique, en plus de celui pour votre adapteur.
La configuration du noyau Linux (par <CODE>make config</CODE> sous <CODE>/usr/src/linux</CODE>) doit ressembler &agrave; :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
 ...
*
* 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
*
 ...
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Si le noyau est modulable, vous pouvez tout aussi bien utiliser les modules.</P>
<P></P>

<H2>4.2 <A NAME="ss4.2"></A> Fichiers sp&eacute;ciaux</H2>

<P>Le pilote g&eacute;n&eacute;rique utilise ses propres fichiers sp&eacute;ciaux. Ils peuvent &ecirc;tre cr&eacute;&eacute;s par le script <CODE>MAKEDEV</CODE>, que l'on trouve habituellement dans le r&eacute;pertoire <CODE>/dev</CODE>. La commande <CODE>MAKEDEV sg</CODE> cr&eacute;e les fichiers suivants :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
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
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Notez que ces fichiers sont des fichiers en mode caract&egrave;re pour permettre les acc&egrave;s directs. Sur certains syst&egrave;mes, ces fichiers peuvent s'appeler <CODE>/dev/{sg0,sg1,...}</CODE>, en fonction de votre installation. Vous devrez donc adapter les exemples qui suivant en cons&eacute;quence.</P>
<P></P>

<H2>4.3 <A NAME="ss4.3"></A> Organisation des p&eacute;riph&eacute;riques</H2>

<P>Les fichiers sp&eacute;ciaux sont affect&eacute;s dynamiquement aux ID/LUN (LUN : Unit&eacute; logique) du bus SCSI. Les p&eacute;riph&eacute;riques sont cons&eacute;cutivement allou&eacute;s selon les unit&eacute;s logiques de chaque p&eacute;riph&eacute;rique d&eacute;tect&eacute; lors de la scrutation du bus, les plus petits LUN/ID/BUS &eacute;tant allou&eacute;s en premier. Le noyau commence par le premier contr&ocirc;leur SCSI et continue sans interruption avec tous les autres adapteurs. Cette &eacute;tape est actuellement r&eacute;alis&eacute;e lors de l'initialisation du pilote SCSI.</P>
<P>Par exemple, si vous avez trois p&eacute;riph&eacute;riques SCSI configur&eacute;s avec les ID 1, 3 et 5 sur le premier bus SCSI (chacun avec une seule unit&eacute; logique), l'affectation sera la suivante&nbsp;:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/dev/sga -&gt; SCSI id 1
/dev/sgb -&gt; SCSI id 3
/dev/sgc -&gt; SCSI id 5
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Si vous ajoutez maintenant un nouveau p&eacute;riph&eacute;rique d'identificateur 4, l'organisation apr&egrave;s la prochaine scrutation du bus sera :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/dev/sga -&gt; SCSI id 1
/dev/sgb -&gt; SCSI id 3
/dev/sgc -&gt; SCSI id 4
/dev/sgd -&gt; SCSI id 5
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Notez le changement pour l'identificateur 5 - le p&eacute;riph&eacute;rique correspondant n'est plus affect&eacute; &agrave; <CODE>/dev/sgc</CODE>, mais &agrave; <CODE>/dev/sgd</CODE>.</P>
<P>Les noyaux plus r&eacute;cents permettent de changer cet ordre.</P>
<P></P>
<H3>Insertion et retrait dynamiques de p&eacute;riph&eacute;riques SCSI</H3>

<P>Dans les noyaux r&eacute;cents avec un syst&egrave;me de fichier <CODE>/proc</CODE> mont&eacute;, il est possible de retirer et d'ajouter un p&eacute;riph&eacute;rique libre (non-busy) &agrave; la vol&eacute;e.</P>
<P>Pour enlever un p&eacute;riph&eacute;rique SCSI :
<BLOCKQUOTE><CODE>
<PRE>
echo &quot;scsi remove-single-device a b c d&quot; &gt; /proc/scsi/scsi
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>De la m&ecirc;me mani&egrave;re, ajouter un p&eacute;riph&eacute;rique SCSI se fera par :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
echo &quot;scsi add-single-device a b c d&quot; &gt; /proc/scsi/scsi
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Ici, a, b, c et d sont d&eacute;finis de la fa&ccedil;on suivante :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
      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)
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Ainsi, si nous d&eacute;sirons intervertir l'affectation des fichiers <CODE>/dev/sgc</CODE> et <CODE>/dev/sgd</CODE> de l'exemple pr&eacute;c&eacute;dent, nous pouvons faire :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
echo &quot;scsi remove-single-device 0 0 4 0&quot; &gt; /proc/scsi/scsi
echo &quot;scsi remove-single-device 0 0 5 0&quot; &gt; /proc/scsi/scsi
echo &quot;scsi add-single-device 0 0 5 0&quot; &gt; /proc/scsi/scsi
echo &quot;scsi add-single-device 0 0 4 0&quot; &gt; /proc/scsi/scsi
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>puisque les p&eacute;riph&eacute;riques g&eacute;n&eacute;riques sont allou&eacute;s dans leur ordre d'insertion.</P>
<P>Si vous voulez ajouter de nouveaux p&eacute;riph&eacute;riques sur le bus SCSI, gardez &agrave; l'esprit qu'un nombre limit&eacute; d'entr&eacute;es suppl&eacute;mentaires a &eacute;t&eacute; attribu&eacute;. La m&eacute;moire a &eacute;t&eacute; allou&eacute;e au d&eacute;marrage, et il n'y a de place que pour 2 entr&eacute;es suppl&eacute;mentaires.</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="SCSI-Programming-HOWTO-5.html">suivant</A>,
Chapitre <A HREF="SCSI-Programming-HOWTO-3.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="SCSI-Programming-HOWTO.html#toc4">ce chapitre</A>,
 <A HREF="SCSI-Programming-HOWTO.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="SCSI-Programming-HOWTO.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>