[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gulliver] Détection des scsi


From Pierre-François Lemosquet <pf dot lemosquet at wokup dot com>
Subject Re: [gulliver] Détection des scsi
Date Wed, 31 Dec 2003 14:27:42 +0100

> Patrick Percot a écrit :
> 
> >>Cela semble plus compliqué que la commande mknod non. 
> >>
> >>Cette commande construit tous les fichiers qui vont bien dans scd1 ? 
> >>    
> >>
> >
> >
> >Ce qui  est étonnant,  c'est que tous  les priphériques n'aient  pas été
> >créés par ta distrib. 
> >  
> >
> Oui c'est étrange et énervant, moi qui vante la facilité d'utilisation 
> de Linux :-)

Un mystère à éclaircir. Normalement toutes les distrib le font.

> 
> >En fait, ça ne crée qu'un seul  fichier, il sert à désigner le pilote de
> >périphérique associé (grâce au numéro majeur, ici 11). 
> >
> >  
> >
> Et pourquoi la valeur 11. J'imagine qu'un numéro majeur correspond un 
> type de périphérique (imprimante, modem, scanner, disque dur IDE...).
> C'est indiqué quelque part ? 

Répertoire   Documentation   dans   les   sources  du   noyau,   fichier
devices.txt. 

> 
> Ce fichier est chargé par le kernel à chaque fois qu'une application 
> veut dialoguer avec un périphérique (/dev/xxx). Donc si mauvais numéro 
> çà part en vrille :-)

Il  n'est pas chargé,  il y  a une  procédure d'attribution  des numéros
majeurs  pour  les développeurs  de  pilotes  de  périphériques. Et  les
valeurs sont  codées dans  les pilotes eux-mêmes.   Il existe  aussi une
méthode d'allocation dynamique au chargement  du pilote, ce qui oblige à
recréer les fichiers spéciaux à chaque lancement du pilote. 

Le  fichier  spécial   est  en  gros  une  convention   pour  ouvrir  un
périphérique,  quand  mon  programme   ouvre  ce  fichier  (open  de  la
bibliothèque  C  par exemple),  en  fait,  cela  déclenche un  appel  de
fonction  dans le  noyau qui  correspond à  l'ouverture  du périphérique
physique. À charge pour le  pilote d'exécuter les commandes idoines pour
piloter le matériel.  Quand mon programme appelle la fonction d'écriture
(write), les  données passées à cet  appel sont transmises  au pilote de
périphérique, etc...

Si mauvais  numéro, mauvais périphérique, les données  prévues pour être
transmises à un  pilote sont en fait envoyées à  un autre, dans certains
cas, ça peut  faire des trucs bizarres.  En tout cas, ça ne  fera pas ce
que tu veux.

A+
PP
-- 
Groupe Morbihannais d'Utilisateurs de Logiciels Libres http://www.tuxbihan.org
Identifiant Jabber: pp at amessage dot de
GPG fingerprint = 1A4F E154 3D2C A20E E4CA  A543 7951 C5C2 E44A A0B5

Patrick Percot.