[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 21:43:30 CET 2007


Brilliant  :)  It wasn't /proc/bus/usb... for some reason, it was /dev/bus/usb 
that it was reading.  And the permissions on /dev/bus/usb were restricted for 
normal users.  I've granted permissions, and scanimage -L now tacks the 
serial number on properly, and I get no errors when running a test scan.  
I'll try it out in gimp when I get home.

Thanks -- you were a huge help!

 - Karen

On Wednesday 31 January 2007 08:13 pm, m. allan noah wrote:
> On 1/31/07, m. allan noah <kitno455 at gmail.com> wrote:
> > as non-root, `strace lsusb` and see what file it is opening. might not
> > be in /proc
>
> oh- and something i have seen before, is there any other software on the
> machine that might have the usb device open? like printing software?
>
> allan
>
> > On 1/31/07, Karen Pease <meme at daughtersoftiresias.org> wrote:
> > > Thanks for the response.  As mentioned in the original post, all
> > > of /proc/bus/usb is wide open.  All of the files in that directory have
> > > the same permissions. Specifically, the scanner (002/007) is:
> > >
> > > -rwxrwxrwx 1 root users 103 Jan 30 02:09 002/007
> > >
> > > Also, the directories are world-accessible:
> > >
> > > drwxrwxrwx 2 root root 0 Jan 29 23:45 002/
> > >
> > > and:
> > >
> > > drwxrwxrwx 4 root root 0 Jan 29 23:45 usb/
> > >
> > > If it's a permissions issue, it's not one that relates to /proc/bus/usb
> > > file permissions, as far as I can tell.
> > >
> > >  - Karen
> > >
> > > On Wednesday 31 January 2007 05:50 pm, m. allan noah wrote:
> > > > what are the perms on the actual /proc/bus/usb/XXX/YYY file?
> > > >
> > > > allan
> > > >
> > > > On 1/30/07, Karen Pease <meme at daughtersoftiresias.org> wrote:
> > > > > 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
> > > > >
> > > > >
> > > > > --
> > > > > sane-devel mailing list: sane-devel at lists.alioth.debian.org
> > > > > http://lists.alioth.debian.org/mailman/listinfo/sane-devel
> > > > > Unsubscribe: Send mail with subject "unsubscribe your_password"
> > > > >              to sane-devel-request at lists.alioth.debian.org
> > > >
> > > > --
> > > > "The truth is an offense, but not a sin"
> > >
> > > --
> > > sane-devel mailing list: sane-devel at lists.alioth.debian.org
> > > http://lists.alioth.debian.org/mailman/listinfo/sane-devel
> > > Unsubscribe: Send mail with subject "unsubscribe your_password"
> > >              to sane-devel-request at lists.alioth.debian.org
> >
> > --
> > "The truth is an offense, but not a sin"
>
> --
> "The truth is an offense, but not a sin"




More information about the sane-devel mailing list