[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 19:14:07 CET 2007
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"
More information about the sane-devel
mailing list