[sane-devel] PIXMA MP530: Unprivileged user can't see iSerialNumber, thus can't get proper device name.

Karen Pease meme at daughtersoftiresias.org
Wed Jan 31 00:58:11 CET 2007


Is it possible to have non-root users scan from the MP530?  I've been spinning 
my gears just to get the scanner to work at all as root, and finally managed 
to only by installing the CVS version of the backend and fiddling around with 
it.  However, I can't seem to get a common user to have access to the 
scanner.  

First, what root sees.  Lets just do a test.

[root at daughtersoftiresias sane-backends]# scanimage -L
[sanei_debug] Setting debug level of pixma to 10.
[pixma] pixma version 0.12.2
device `v4l:/dev/video0' is a Noname BT848 video ( *** UNKNOWN/GENER virtual 
device
device `pixma:04A91712_114A42' is a CANON Canon PIXMA MP530 multi-function 
peripheral
[root at daughtersoftiresias sane-backends]# scanimage -d pixma:04A91712_114A42 
-n
[sanei_debug] Setting debug level of pixma to 10.
[pixma] pixma version 0.12.2
[pixma] pixma_open(): Canon PIXMA MP530
[pixma] pixma_close(): Canon PIXMA MP530
[root at daughtersoftiresias sane-backends]#       

Success.  Now, for a mere mortal (with the same SANE-related 
debug/experimental environmental variables):

[meme at daughtersoftiresias ~]$ scanimage -L
[sanei_debug] Setting debug level of pixma to 10.
[pixma] pixma version 0.12.2
device `v4l:/dev/video0' is a Noname BT848 video ( *** UNKNOWN/GENER virtual 
device
device `pixma:04A91712' is a CANON Canon PIXMA MP530 multi-function peripheral
[meme at daughtersoftiresias ~]$ scanimage -d pixma:04A91712 -n
[sanei_debug] Setting debug level of pixma to 10.
[pixma] pixma version 0.12.2
[pixma] pixma_open(): Canon PIXMA MP530
[pixma] pixma_connect() failed EACCES
[pixma] pixma_open() failed EACCES
[pixma] pixma_close(): Canon PIXMA MP530
scanimage: open of device pixma:04A91712 failed: Access to resource has been 
denied
[meme at daughtersoftiresias ~]$ scanimage -d pixma:04A91712_114A42 -n
[sanei_debug] Setting debug level of pixma to 10.
[pixma] pixma version 0.12.2
scanimage: open of device pixma:04A91712_114A42 failed: Invalid argument
[meme at daughtersoftiresias ~]$  

The first thing to notice is that the regular user doesn't see the same device 
name as root from scanimage -L: they see a name that's missing the serial, 
thus an improperly formatted pixma device name, as far as I can tell.  When I 
give that device, we get an "access denied", even though I've set 
my /proc/bus/usb wide open.  When I try the proper name that root is given 
(but meme is not), I get an invalid argument -- the same as I'd get if I 
typed -d pixma:qwijibo or -d pixma:ThisIsNotAValidDevice.

So, why does it omit the serial?  Well, I think I've got that one figured out.  
From sane-find-scanner -v -v: First, as root:

trying libusb:

<device descriptor of 0x04a9/0x1712 at 002:007 (Canon MP530)>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          0
bDeviceSubClass       0
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x04A9
idProduct             0x1712
bcdDevice             1.05
iManufacturer         1 (Canon)
iProduct              2 (MP530)
iSerialNumber         3 (114A42)
bNumConfigurations    1
 <configuration 0>
...

Now, as meme:

trying libusb:

<device descriptor of 0x04a9/0x1712 at 002:007>
bLength               18
bDescriptorType       1
bcdUSB                2.00
bDeviceClass          0
bDeviceSubClass       0
bDeviceProtocol       0
bMaxPacketSize0       64
idVendor              0x04A9
idProduct             0x1712
bcdDevice             1.05
iManufacturer         1 ((null))
iProduct              2 ((null))
iSerialNumber         3 ((null))
bNumConfigurations    1
 <configuration 0>

Meme seems unable to get iSerialNumber -- but it can get idVendor and 
idProduct, and thus ultimately determine what kind of scanner we're dealing 
with.  The same thing happens with lsusb -v; root can see the serial number, 
while meme can't.

Does this look like what's causing the problem to you?  Can you think of a way 
to work around it?  My ultimate goal is to be able to have users just start 
up gimp and be able to scan, but as it stands, that's not an option.  Which 
is a shame, because I specifically picked the MP530 because all of its 
features were reported as working well in Linux.

Thanks!

 - Karen




More information about the sane-devel mailing list