BxLUG groupe des utilisateurs de GNU/Linux de Bruxelles

Espace membres

Howto - scanners HP ScanJet USB avec SANE sous Debian Woody

Voici un article expliquant comment connecter un scanner HP USB sous Debian Woody GNU/Linux. Ceci a été testé avec un HP Scanjet 4100c.

Cet article pourrait s'appliquer à d'autres distributions de GNU/Linux ou marques de scanners, et en tous cas, s'applique à d'autres modèles de scanners HP USB [1].

Ce HOWTO a été réalisé à l'origine par Yannick Warnier, mon frère et président du FoSCuP dans un mail destiné à la mailing-list du BxLUG.

Installation de SANE

Je suis sous Debian, chouette!:
apt-get install sane
apt-get install xsane (interface graphique de sane)

Branchement du scanner

Je branche mon scanner en USB…comme je ne suis pas très doué, je ne me souviens plus de la façon de voir si GNU/Linux a bien détecté mon scanner.

Hop, je teste avec les fonctions ad-hoc de SANE:
        sane-find-scanner

Résultat: sane-find-scanner: found USB scanner (vendor = 0x03f0, product = 0x0101) at device /dev/usb/scanner0

Utilisation de xsane

Je lance xsane: ah… No device found?

Documentation

Je lis la doc:
        man sane
        man xsane    (interface graphique de sane)
        man sane-usb (module usb de sane)
        man sane-hp  (module hp de sane)
J'y trouve que les paramètres de configuration du scanner HP se trouvent dans /etc/sane.d/hp.conf.

Modification de /etc/sane.d/hp.conf

Etat initial:
  
        connect-scsi HP
        /dev/scanner
Avec l'aide de la doc, je comprends que ce n'est pas comme ça qu'il faut que le fichier soit écrit, mais bien comme ceci:
        /dev/usb/scanner0         //resultat de <<sane-find-scanner>>
        option connect-device   //pour indiquer qu'il s'agit d'un device USB
Hop, je sauvegarde tout cela.

Droits

Test de xsane: Paf! Segmentation fault! Pas cool!

Ah oui, je me souviens que, dans la doc, ils disaient qu'il fallait avoir les droits en écriture et en lecture sur le périphérique pour pouvoir l'utiliser. Comme mon interface graphique est loggée en <<username>>, je dois donner les droits à <<username>> pour accéder à mon scanner.

Toujours selon la doc, je crée un groupe d'utilisateurs <<scanner>> dans lequel j'ajoute <<username>> comme ceci:
        groupadd scanner
        vi /etc/group
ajouter <<username>> à <<scanner:x:-id-:>>Je définis mon scanner comme appartenant au groupe <<scanner>> et change les droits (Read-Write pour scanner)
        chgrp scanner /dev/usb/scanner0
        chmod 660 /dev/usb/scanner0
'reste plus qu'à me délogger et à me relogger en <<username>> pour profiter de mon scanner...

Nouveau test de xsane: OK!

Addendum

Pour trouver tout ça, j'ai beaucoup lu et relu la doc de SANE, mais j'ai également (grâce à la doc), essayé le mode debug de SANE. Pour cela, il suffit de:
        export SANE_DEBUG_HP=128
        export SANE_DEBUG_USB=128
        export SANE_DEBUG_SCSI=128
        export SANE_DEBUG_DLL=128
Ca affiche plein de messages inintéressants et quelques-uns intéressants. Ca m'a permis notamment de comprendre qu'il essayait au début d'accéder à mon scanner avec le module SCSI, ce qui n'est pas pratique dans ce cas-ci puisqu'il s'agit d'un autre protocole que celui de mon scanner.

J'ai également modifié le fichier /etc/sane.d/dll.conf car il cherche tous les scanners qu'il connaît à chaque démarrage de xsane. J'ai donc commenté toutes les catégories de scanner s'y trouvant, en dehors de "hp". Ca va plus vite mais ca ne détecte plus d'autre scanner, évidemment.

Je ne sais plus comment faire pour sauvegarder le fait que le scanner appartienne au groupe <<scanner>>, donc pour l'instant je dois refaire
        chgrp scanner /dev/usb/scanner0
        chmod 660 /dev/usb/scanner0
chaque fois que je mon scanner est détecté.

Et voilà, c'est tout.

[1] mais pas tous, certains utilisent d'autres drivers SANE, qui se configurent aussi différemment. Ex.: HP ScanJet 2200c

Bienvenue dans le monde du libre