web-dev-qa-db-fra.com

Canon LIDE 110: devrait reconnecter l'USB pour chaque numérisation

J'ai un scanner Canon LIDE 110 qui fonctionne par défaut sur ubuntu 12.10 64bit. Le problème est qu'après la première numérisation, je ne peux pas numériser une deuxième fois. Je dois reconnecter le câble USB pour utiliser à nouveau le scanner.

J'utilise une application de numérisation simple pour numériser des photos et du texte. lsusb montre mon scanner comme:

Bus 003 Device 010: ID 04a9:1909 Canon, Inc. CanoScan LiDE 110

J'ai essayé les ports USB 2.0/3.0. La même chose se produit pour les deux.

dmesg montre:

[ 7747.558086] usb 3-3: new high-speed USB device number 11 using xhci_hcd
[ 7747.575766] usb 3-3: New USB device found, idVendor=04a9, idProduct=1909
[ 7747.575775] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7747.575779] usb 3-3: Product: CanoScan
[ 7747.575782] usb 3-3: Manufacturer: Canon

Comment puis-je résoudre ce problème? Merci d'avance pour des conseils.

1
Mehdi Sadeghi

@jeekajoo, votre bug est marqué comme "corrigé" sur https://bugs.launchpad.net/ubuntu/+source/sane-backends/+bug/1184699 (alors qu'il ne l'est pas) donc Je pense que personne n'y prête attention.

Le seul moyen que j'ai trouvé pour éviter les erreurs est de réinitialiser (débrancher + rebrancher) le scanner entre chaque session de scan. Mais au lieu de le faire physiquement, il est possible d'utiliser le "usbreset" décrit ici Comment réinitialiser un périphérique USB à partir de la ligne de commande? Il est TRÈS rapide donc il ne ralentit presque pas le scan processus. Voici un petit script que j'ai écrit pour numériser rapidement plusieurs pages en un seul PDF

#!/bin/bash
#let's store the usb ID "BUS" and "DEVICE" of our scanner (04a9:1909 is the usb ID of the Canon Lide 110 when executing lsusb)
Canon_bus=$(lsusb | grep '04a9:1909' | cut -c 5-7)
Canon_device=$(lsusb | grep '04a9:1909' | cut -c 16-18)

#let's start the scan in batch mode with a resolution of 150 dpi. --device-name is not mandatory but it starts faster when indicated
scanimage -p -b --batch-Prompt --device-name=genesys:libusb:$Canon_bus:$Canon_device --resolution 150 --mode color

#let's convert all *.pnm generated files into pdf
mogrify -format pdf -page a4 -- *.pnm && rm *.pnm

#let's reset the scanner so it is available next time we want to use it. The "usbreset" binary must be compiled from https://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line
./usbreset /dev/bus/usb/$Canon_bus/$Canon_device

#let's merge all PDF but only if there are more than one page (so 1 PDF)
nb_pdf=$(ls -1 *.pdf | wc -l)
if [ $nb_pdf -gt 1 ]; then
#let's merge all PDF. We use the "ls -v" command to merge them in a numerical order (otherwise the page 10 would be before the page 2). Thank you "Ymonad" at http://stackoverflow.com/questions/23643274/linux-command-merge-pdf-files-with-numerical-sort for this solution!
    ls -v *.pdf | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" temp_merge' && rm *.pdf
else
    mv *.pdf temp_merge
fi

#let's compress the merged pdf
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=scan.pdf temp_merge && rm temp_merge

J'espère que ça va aider les autres!

1
max

Le référentiel officiel Ubuntu 14.04 est toujours à la version 1.0.23 de sane-backends mais j'ai résolu mon problème en passant à la version 1.0.25 de sane-backends à partir de https://launchpad.net/~rolfbensch/+archive/ubuntu/sane-git

Si vous voulez toujours utiliser mon script de scan, vous pouvez simplement sauter l'étape "usbreset" maintenant

1
max