I have a Canon P-208II, which uses the canon_dr backend [0].

However, I noticed from lsusb that the product ID of mine (0x1660) differs from that in /etc/sane.d/canon_dr.conf and /usr/lib/udev/rules/49-sane.rules (0x165f), so I duplicated those lines, modifying the ID to match.

$ lsusb
Bus 001 Device 017: ID 1083:1660 Canon Electronics, Inc. CANON   P-208II

Despite that, neither sane-find-scanner nor scanimage -L detect the scanner, with verbose logging I can see it trying to access and getting permissions errors, or with root:

could not fetch string descriptor: Pipe error

in the same location.

I also tried sane-find-scanner /dev/usb/001/017, which says failed to open (Invalid argument) - I'm not sure what else to give as 'devname' [1]?

Is there somewhere else I need to change the product ID, or something to do to make the changes I have made take effect? Or is the pipe error a smoking gun?

[0] - http://www.sane-project.org/sane-mfgs.html

[1] - http://www.sane-project.org/man/sane-find-scanner.1.html

1 Answer 1


Ahah! Thanks to a 2015 hint from M. Allan Noah [0], I found that the reported product ID changes according to the postition of the 'auto start' switch on the back of the scanner:

Off - 0x165f
On - 0x1660

(it is necessary to re-plug after toggling the switch)

In the 'off' position, it thus reports the ID SANE was expecting, and works with nothing further - that 'pipe error' is unrelated and still occurs.

Works out of the box! ... as long as it comes out in the correct state.

[0] - http://sane.10972.n7.nabble.com/cannon-p208-raspberian-tp20448p20457.html

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .