I have a Canon LIDE 110 scanner which works by default on ubuntu 12.10 64bit. The problem is after first scan I can not scan for second time. I should reconnect USB cable to use scanner again.

I use simple scan application to scan photos and text. lsusb shows my scanner as:

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

I have tried USB 2.0/3.0 ports. The same thing happens for both.

dmesg shows:

[ 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

How can I fix this problem? Thanks in advance for any tips.

  • 1
    Same for me. I reported the bug #1184699 about this problem.
    – jeekajoo
    May 27 '13 at 18:00
  • Thanks @jeekajoo , I replied your bug as a confirmation.
    – mehdix
    Jul 11 '13 at 9:57

@jeekajoo, your bug is flagged as "fixed" on https://bugs.launchpad.net/ubuntu/+source/sane-backends/+bug/1184699 (while it isn't) so I think nobody is paying attention.

The only way I found to avoid errors is to reset (unplug + replug) the scanner between each scan session. But instead of doing it physically, it is possible to use the "usbreset" described here How do you reset a USB device from the command line? It is VERY quick so it almost doesn't slow the scan process. Here is a little script I wrote to quickly scan multiple pages into one PDF

#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
    mv *.pdf temp_merge

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

I hope it'll help others!

  • Thanks for publishing the script. Right now I have ubuntu 14.04 and the scanner still has some problems, I will give your script a try next time.
    – mehdix
    Jul 9 '14 at 13:43

The official Ubuntu 14.04 repository is still at sane-backends version 1.0.23 but I fixed my problem by upgrading to sane-backends version 1.0.25 from https://launchpad.net/~rolfbensch/+archive/ubuntu/sane-git

If you still want to use my scan script, you can just skip the "usbreset" step now

  • Good to know that @max and thanks for the update.
    – mehdix
    Jan 28 '15 at 21:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.