Scanner USB

De Lea Linux
Aller à la navigation Aller à la recherche

Installation d'un scanner USB

Installation d'un scanner USB
Si même l'USB est supporté par Linux que reste-t-il aux autres ?

Cette page est en grande partie inspirée de celle de Miguel qui m'a aidé a configurer SANE : http://www.rootsistemas.net/agujeroweb/scnrusb.html (en espagnol)

Les scanner USB commencent a être supportés par Linux. Un driver existe au sein des noyaux de développement de la série 2.3.x. Plus généralement de nombreux drivers pour divers périphériques USB ont été ajoutés à ce noyau. Il est toutefois possible d'utiliser la majorité de ces drivers grâce à l'adaptation des sources de l'USB du 2.4 vers le 2.2. Il est aussi possible d'utiliser directement un noyau de développement (j'utilise le 2.3.99-pre5 sans trop de pb sur plateforme i386), mais ces noyaux étant en développement, cela peut présenter des risques d'instabilité.

Dans un premier temps je vais expliquer comment compiler un noyau avec les nouveaux drivers USB. Puis on parlera de la configuration de SANE pour qu'il supporte le SnapScan.

Remarque : Pour les scanners SCSI, voir la [scanner.php3 rubrique correspondante].

Compilation du noyau 2.2.15 avec les drivers USB du 2.3.x

Note : à partir du noyau 2.2.19 et 2.4 (i.e. toute distribution récente), cette étape n'est plus nécessaire. Vous pouvez passer directement à la suite.

  • Récupérer les sources du noyau 2.2.14 ou 2.2.15 (si vous n'êtes pas en France utilisez un mirroir) : linux-2.2.15.tar.gz et mettre le fichier dans /usr/src/ (il faut être root pour faire çà)
  • Décompresser le tout dans le répertoire /usr/src :
    # cd /usr/src
    # rm -f linux
    # tar xvzf linux-2.2.15.tar.gz
    # ln -s linux-2.2.15 linux
    # chown -R root linux
    # chgrp -R root linux
  • Récupérer les sources de l'adaptation des drivers USB  : usb-2.3.99-pre6-for-2.2.14.diff.gz (fonctionne pour les noyaux 2.2.14 et 2.2.15)
  • Les installer :
    # cd linux
    # gzip -dc ../usb-2.3.99-pre6-for-2.2.14.diff.gz | patch -p1
  • Configurer son noyau :
    # make menuconfig (ou xconfig si vous êtes sous X)
    Dans la section USB support, il est important de cocher (soit 'y' qui incluera le driver dans le noyau, soit 'm' qui le mettra en module) les options suivantes :

    Support for USB (attention si vous utilisez un clavier et une souris USB, il vaut mieux inclure tout ça dans le noyau et non en module)
    USB verbose debug messages
    Preliminary USB device filesystems
    selon le type de carte mère : UHCI, UHCI Alternate ou OHCI (le plus souvent pour des PCs, vous aurez un chipset UHCI, OHCI est utilisé notamment pour les Compaq et les Macintoshes)
    USB Scanner support
    n'oubliez pas de cocher les autres options dont vous aurez besoin (voir la [../kernel/kernel.php3 rubrique noyau]).

  • Compiler le noyau et l'installer :
    # make dep bzImage modules modules_instal
    # cp arch/i386/boot/bzImage /boot/bzusb
    # cp System.map /boot/sysmapusb
  • Configurer lilo pour lui faire prendre en compte le nouveau noyau :

    ajouter la section suivante :
    image=/boot/bzusb
            label=linuxusb
            root=/dev/xxxx -- mettre le même device que pour les autres sections qui chargent linux
            append=""
            read-only

taper /sbin/lilo pour faire prendre en compte le changement

  • Redémarrer et taper linuxusb sous lilo afin de charger le nouveau noyau.

Configuration du device usbscanner

Cette étape n'est pas nécessaire si vous utilisez devfs (par exemple sur une mandrake 8.2 ou 9.0).

Créez le noeud de périphérique correspondant au scanner USB par :

# mknod /dev/usbscanner c 180 48
# chmod a+rw /dev/usbscanner
# chmod 666 /dev/usbscanner
# ln -s /dev/usbscanner /dev/scanner

Chargement des drivers

valable uniquement si vous les avez compilés en modules

Ajouter cette ligne au fichier /etc/conf.modules : "options scanner vendo=0x06bd product=0x2061 (ou 0x0001 selon votre scanner, cette valeur pouvant être déterminée après avoir chargé les modules usbcore et usb-(u/o)hci, en regardant dans le log (commande dmesg) où vous devez trouver quelque chose comme çà : "Manufacturer: AGFA Product: SNAPSCAN 1212U ....  Vendor:Product = 06bd:0001 )"

# modprobe usbcore
# modprobe usb-xxxx (où xxx est uhci ou ohci selon votre carte mère)
# modprobe scanner

Etape optionnelle : mais utile au diagnostic

Il vaut mieux que /proc/bus/usb contiennent les informations sur vos périphériques usb. Pour cela, il faut sur une distribution ancienne (sur les récentes, cela est fait automatiquement au démarrage) :

# mount -t usbdevfs /proc/bus/usb /proc/bus/usb

Ou pour le monter automatiquement : ajouter "none /proc/bus/usb usbdevfs defaults 0 0" au fichier /etc/fstab.
Ainsi, vous pourrez vérifier la présence des drivers et les périhpériques détéctés en faisant :

# cat /proc/bus/usb/devices
# cat /proc/bus/usb/drivers

Configuration et installation de SANE (et de XSANE)

Récupérer les sources de SANE et de XSANE là : SANE, XSANE

Récupérer le patch pour le SnapScan USB là : sane-1.0.1-usb.diff (évidemment ne récupérez ce fichier que si vous utilisez une snapscan)

Décompresser SANE, le patcher et le compiler :

# tar xvzf sane-1.0.1.tar.gz
# patch -p0 < sane-1.0.1-usb.diff
# cd sane-1.0.1
# ./configure
# make
# make install

Décompresser XSANE, et le compiler :

# tar xvzf xsane-0.58.tar.gz
# cd xsane-0.58
# ./configure
# make
# make install

SANE et XSANE sont maintenant installés dans /usr/local

Configuration de SANE :

Editer les fichiers suivants dans /usr/local/etc/sane.d afin qu'ils ressemblent à çà :

  • dll.conf :
    snapscan
  • snapscan.conf :
    usb AGFA
    /dev/scanner
    /dev/usbscanner

Remarque :

D'autres infos sur SANE dans la [scanner.php3#sane_install rubrique scanner SCSI].

Chargement du firmware du scanner

Ceci n'est applicable qu'au SnapScan USB, mais une étape similaire doit sans doute être nécessaire aux autres scanner USB : si vous le savez, mailez nous, merci.

Récupérer les fichiers suivants : agfafirm (ou ici) et SnapScan-1212U_2.bin (ou ici)

Charger le firmware dans le scanner :

# chmod 755 agfafirm
# ./agfafirm /dev/usbscanner SnapScan-1212U_2.bin

Ca y est vous pouvez scanner!

Lancer xscanimage :

# xscanimage &

Pour utiliser xscanimage en module de gimp :

# cd /usr/lib/gimp/1.x/plug-ins (où x depend de la version de gimp installée)
# ln -s /usr/local/bin/xscanimage xscanimage
xscanimage sera lors accessible dans le menu Xtns>Acquire Image .

Liens utiles





@ Retour à la rubrique Matériel

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Eric Bénard le 29/04/2000.

Copyright

Copyright © 29/04/2000, Eric Bénard

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/