Valentin Kuznetsov wrote:
Hi,
once upgrading to FC5 I lost my ability as a user to use my digital
camera.
Everything works still fine if I use it as root. As a used, from
gphoto2 --debug I got
0.339543 gphoto2-port-usb(1): Looking for USB device (vendor 0x4a9,
product 0x30ff)... found.
0.340134 gphoto2-port-usb(1): Detected defaults: config 1, interface
0, altsetting 0, inep 81, outep 02, intep 83, class 06, subclass 01
0.340920 gphoto2-camera(2): Loading '/usr/lib/libgphoto2/2.1.99/ptp2'...
0.341949 gphoto2-port(2): Opening USB port...
0.342884 gphoto2-port(0): Could not query kernel driver of device.
0.343463 gphoto2-port(0): Could not claim interface 0 (Operation not
permitted). Make sure no other program or kernel module (such as
sdc2xx, stv680, spca50x) is using the device and you have read/write
access to the device.
0.344500 context(0): An error occurred in the io-library ('Could not
claim the USB device'): Could not claim interface 0 (Operation not
permitted). Make sure no other program or kernel module (such as
sdc2xx, stv680, spca50x) is using the device and you have read/write
access to the device.
and the relevant part from root account is:
0.299921 gphoto2-port-usb(1): Looking for USB device (vendor 0x4a9,
product 0x30ff)... found.
0.300637 gphoto2-port-usb(1): Detected defaults: config 1, interface
0, altsetting 0, inep 81, outep 02,
intep 83, class 06, subclass 01
0.301429 gphoto2-camera(2): Loading '/usr/lib/libgphoto2/2.1.99/ptp2'...
0.302492 gphoto2-port(2): Opening USB port...
0.303453 gphoto2-port(0): Could not query kernel driver of device.
0.304175 gphoto2-port(2): Setting timeout to 8000 millisecond(s)...
0.304804 ptp(2): PTP: Opening session
0.305369 gphoto2-port(2): Writing 16=0x10 byte(s) to port...
0.305978 gphoto2-port(3): Hexdump of 16 = 0x10 bytes follows:
0000 10 00 00 00 01 00 02 10-00 00 00 00 01 00 00 00 ................
I'm confident that the problem with permission. In FC4 the hotplug was
used which setup such permission.
What's the equivalent in FC5. I read about udev and even was able to
write two rules,
one for my usb stick and another for my camera. The problem is that my
camera is not
mounted as USB drive, I need to use software in order to download my
pictures.
From past experience I have suspisious that it may be related to wrong
SELinux settings, I may be wrong though.
I would appreciate any feedback on this issue.
Valentin.
I have a poor hack for it. In the file /etc/udev/rules.d/50-udev.rules
look for these lines:
ACTION=="add", SUBSYSTEM=="usb_device", \
PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf
bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", \
NAME="%c", MODE="0644"
Then change the mode to MODE="0666". Remember it's a poor hack because
it gives write access to everybody.
I think the problem has to do with not being able to mount the camera as
a disk. If you can mount as a disk I think udev runs another script
(can't remember where it is now) that gets the disk device created which
properly gives you write access to. Since your camera is not capable it
only gets the usb device created.
FYI to get a better idea what was going on I used udevmonitor and
plugged in my camera to see the events.