Cette page est considérée comme vétuste et ne contient plus d'informations utiles.
Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !



FIXME Cette page est encore nécessaire à partir de Dapper ?

Régler les problèmes avec un scanner SCSI

Par Gilles T.
Article provenant de http://debuntu.tuxfamily.org

Sane ne parvient pas à trouver votre scanner scsi ? Peut-être le pilote scsi ne convient-il pas (par exemple, moi, j'ai aic7xxx, qui ne détecte pas le scanner). On peut alors ajouter le pilote générique sg. Pour prendre en compte le scsi générique taper dans un terminal :

$sudo modprobe sg

Cela devrait suffire à débloquer la situation.

Pour vérifier ensuite si le scanner est bien reconnu, taper :

sudo scanimage -L

qui doit retourner la valeur du scanner scsi détecté, par exemple, dans mon cas :

#device `epson:/dev/sg0' is a Epson GT-7000 flatbed scanner

Pour rendre ceci permanent, ajouter au fichier /etc/modules la ligne suivante à la fin du fichier :

sg

Au prochain boot, udev crée le device sg0 correspondant au scanner (s'il est allumé). Sane, XSane et The Gimp utilisent tous le scanner sans problème.

Seulement voilà, seul root peut utiliser le scanner ! Il faut modifier les permissions du device, dont le propriétaire est root, et le groupe disk :


A partir d'une certaine version de Ubuntu (sans doute Hardy Heron) le fichier "/etc/udev/rules.d/40-permissions.rules" n'existe plus. Il suffit de le recréer et d'y incorporer les lignes concernant votre scanner comme indiqué ci-dessous.

Pour Hardy Heron et suivantes, on procède ainsi : Editer ou recréer le fichier /etc/udev/rules.d/40-permissions.rules et regarder ou créer la section scsi où vous devez avoir quelque chose de la forme:

# SCSI devices

SUBSYSTEMS=="scsi", ATTRS{type}=="1", GROUP="tape"

SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="HP", GROUP="scanner"

SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner"

SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner"

SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom"

SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom"

SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner"

SUBSYSTEMS=="scsi", ATTRS{type}=="8", GROUP="tape"

modifier pour que cela ressemble à ça:

# SCSI devices

SUBSYSTEMS=="scsi", ATTRS{type}=="1", GROUP="tape"

SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="HP", GROUP="scanner", MODE="0666"

SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="Epson", GROUP="scanner", MODE="0666"

SUBSYSTEMS=="scsi", ATTRS{type}=="3", ATTRS{vendor}=="EPSON", GROUP="scanner", MODE="0666"

SUBSYSTEMS=="scsi", ATTRS{type}=="4", GROUP="cdrom"

SUBSYSTEMS=="scsi", ATTRS{type}=="5", GROUP="cdrom"

SUBSYSTEMS=="scsi", ATTRS{type}=="6", GROUP="scanner", MODE="0666"

SUBSYSTEMS=="scsi", ATTRS{type}=="8", GROUP="tape"


Pour Hoary Hedgehog, on procède ainsi :

Editer le fichier /etc/udev/permissions.d/udev.permissions et remplacer :

s[gr][0-9]*:root:disk:0660

par

s[gr][0-9]*:root:scanner:0660

ou par :

s[gr][0-9]*:root:disk:0666

On reboote, ou on force init à s'exécuter d'une façon ou d'une autre, et on vérifie :

cd /dev
ls -l sg*
crw-rw---- 1 root scanner 21, 0 2005-07-08 08:20 sg0''

Victoire ! ça marche : tous les utilisateurs peuvent se servir du scanner.

Remarque : une autre solution serait d'ajouter l'utilisateur au groupe disk :

sudo usermod -G disk <nom-de-l-utilisateur>

mais ceci donnerait des droits sur d'autres périphériques que le scanner (tous les disques en fait) et introduirait des problèmes de sécurité ; en outre, il faudrait modifier la configuration de création des utilisateurs pour que tout nouvel ajout se fasse automatiquement, ce qui se règle dans le fichier /etc/adduser.conf (si j'ai bien compris, je n'ai pas essayé).


Pour Breezy, la gestion des permissions a changé, j'ai constaté que l'on pouvait faire ceci, qui donne le même résultat que la solution précédente :

Editer le fichier "/etc/udev/permissions.rules", et dans la section "#SCSI devices", ajouter la ligne suivante après la ligne 17 (c'est_à-dire à la fin de la section) :

BUS=="scsi", KERNEL=="sg0", MODE="0660", GROUP="scanner"

Remplacer sg0 par le périphérique que xscanimage -L a effectivement détecté sur votre système.

C'est tout, on reboote, et tout fonctionne.

Voilà, tout fonctionne.


Pour Dapper ou Edgy, par défaut "scanimage" n'est plus installé ; une simple exécution de "xsane" sous Gnome nous renseignera sur le succès de nos manipulations. Si on veut scanimage, il faut installer le paquet "sane-utils".

Le fichier à modifier pour les permissions est "/etc/udev/rules.d/45-libsane.rules", et les nouveaux droits sont 664. La ligne de configuration est à ajouter tout à la fin du fichier (ou tout au début si on préfère, mais pas dans le corps du fichier) :

BUS=="scsi", KERNEL=="sg0", MODE="0664", GROUP="scanner"

Attention, le 45 au début du nom du fichier indique que ce script s'exécute au 45eme rang parmis une liste de niveaux pouvant aller à 99. Tout script de rang supérieur pourrait annuler les dispositions prises ici. Si cela se produit, on peut bloquer la situation en remplaçant la ligne ci-dessus par :

BUS=="scsi", KERNEL=="sg0", MODE:="0660", GROUP:="scanner"

On remplace "=" par ":=". C'est à éviter en l'absence de nécessité.

Tout le reste de l'article reste valable.

—- Pour Jaunty, dans la version Xubuntu avec un scanner HP Scanjet 5p, je m'en suis sorti en créant un fichier "/etc/udev/rules.d/45-libsane.rules" dont la ligne active est:

BUS=="scsi", KERNEL=="sg0", MODE:="0666", GROUP:="saned"

toutefois les fichiers créés étaient en lecture seule, et je ne pouvais les lire ni les supprimer….j'ai modifié une des entrées du fichier ~/.sane/xsane/xsane.rc, dans lequel j'ai trouvé les deux lignes

"image umask" 93

j'ai remplacé 93 par 0 et sauvegardé…..quand j'ai rouvert ce fichier j'ai trouvé 107….mais j'ai constaté que les fichiers étaient créés en mode écriture et que je pouvais les manipuler….

Evidemment, le périphérique /dev/sg0 n'existe pas, et pas moyen de scanner. On ne va tout de même pas rebooter à chaque fois ? La manipulation suivante nous tire de ce mauvais pas. Elle n'est pas parfaite, car seul root peut l'accomplir. Elle consiste à décharger le pilote SCSI (le vrai pas le générique) et à le recharger pour forcer le système à relire toute la chaine SCSI des périphériques :

sudo modprobe -r aic7xxx
sudo modprobe aic7xxx

On attend un bon moment avec Ubuntu, mais après tout fonctionne :

ls -l /dev/sg*
crw-rw---- 1 root scanner 21, 0 2005-07-09 08:24 /dev/sg0''

Bon usage de votre scanner.

  • scanner_scsi.1300015807.txt.gz
  • Dernière modification: Le 18/04/2011, 14:56
  • (modification externe)