Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
FS#5081 - I can't mount my camera
Attached to Project:
Arch Linux
Opened by Eugenia Loli-Queru (Eugenia) - Friday, 21 July 2006, 07:20 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 02 August 2006, 13:38 GMT
Opened by Eugenia Loli-Queru (Eugenia) - Friday, 21 July 2006, 07:20 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 02 August 2006, 13:38 GMT
|
DetailsI can't mount my Kodak camera as a user, while it works perfectly as root. My user IS on the camera group:
camera:x:97:eugenia,jbq gtkam bails out while gthumb gives me this: "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." There are no others apps using the device btw. It's just that it won't work as user. Solution? |
This task depends upon
Closed by Jan de Groot (JGC)
Wednesday, 07 February 2007, 09:44 GMT
Reason for closing: Fixed
Additional comments about closing: Implemented upstream for all PTP cameras.
Wednesday, 07 February 2007, 09:44 GMT
Reason for closing: Fixed
Additional comments about closing: Implemented upstream for all PTP cameras.
The problem is that the product and vendor ID of that camera does not exist on the /etc/udev/rules/gphoto.rules file. However the system and HAL *recognizes* that this device is a camera and automatically fires up gThumb upon connection. And yet, just because the product ID is not on gphoto.rules file, it won't give my users access to the hardware, even if all are part of the camera group. If I manually add the product/vendor IDs on that file, then it works. But this is hardly intuitive.
This is a clash of bad design between HAL and gphoto IMHO. HAL wants to give access, gphoto doesn't.
This is a lot like Windows telling you that a new 512 MB USB got connected, and then Explorer comes up and tells you that it can't read or write to it. This behavior is a BUG.
Please ALTER gphoto to play by more modern rules (no, there are no security concerns for cameras IMHO), OR, don't let HAL come up like a little fart saying that there's a new camera connected. This behavior currently, is wrong. It gives a false hope to the user.
Things should JUST WORK.
- hal doesn't know shit about any camera, it just fires up a gphoto application for any camera it thinks it is a camera (actually gnome-volume-manager does this based on hal policy)
- gphoto 2.1.x doesn't support your camera officially, so the udev rules file doesn't contain a rule to set permission on your camera
The solution:
- update to libgphoto2 2.2.1, which should support your camera
- make libgphoto2 generate fdi files so hal knows which camera is supported and which one isn't
- make libgphoto2 generate udev rules with the tool that comes with it, not some shitty bash script we invented ourselves to convert a hotplug map.
With this new setup, gnome-volume-manager will only fire up the photo program when you plugin a camera that is supported by gphoto2. This also means that we should be a bit quicker on libgphoto2 updates and that we should receive bugs when people find cameras that aren't supported by gphoto2, but which work with a driver supplied with libgphoto2.
At this moment, the only thing that hal does is know about the cameras in a .fdi file and only firing up gthumb when the camera is known to gphoto.
Also, I upgraded to the new libghoto2, and your latest version still does NOT support my cameras. As a user I could not import pictures, same problem as with the previous version. They told me that these new product IDs are on the trunk of libgphoto2 that's not released yet. So, I had to manually add these on my own gphoto.rules file for 3 of our 9 cameras:
# Kodak P850
SYSFS{idVendor}=="040a", SYSFS{idProduct}=="0592", GROUP="camera"
# Canon A700 (Canon, Inc.)
SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="3117", GROUP="camera"
# Kodak V550 (Kodak Co.)
SYSFS{idVendor}=="040a", SYSFS{idProduct}=="058f", GROUP="camera"
But of course, the point is for this to work out of the box... ;)
This is the property that should make difference between regular USB devices and cameras. I'm not good at writing udev rules, but I guess some of us will come up with a generic camera rule then.
SYSFS{bInterfaceSubClass}=="01"
SYSFS{bInterfaceClass}=="06"
SYSFS{bNumEndpoints}=="03"
SYSFS{bAlternateSetting}==" 0"
SYSFS{bInterfaceNumber}=="00"
looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1':
ID=="3-1"
BUS=="usb"
DRIVER=="usb"
SYSFS{configuration}==""
SYSFS{serial}=="CYEV539J6031"
SYSFS{product}=="KODAK EasyShare P850 Zoom Digital Camera"
SYSFS{manufacturer}=="Eastman Kodak Company"
SYSFS{maxchild}=="0"
SYSFS{version}==" 2.00"
SYSFS{devnum}=="3"
SYSFS{speed}=="12"
SYSFS{bMaxPacketSize0}=="8"
SYSFS{bNumConfigurations}=="1"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bDeviceClass}=="00"
SYSFS{bcdDevice}=="0100"
SYSFS{idProduct}=="0592"
SYSFS{idVendor}=="040a"
SYSFS{bMaxPower}==" 0mA"
SYSFS{bmAttributes}=="c0"
SYSFS{bConfigurationValue}=="1"
SYSFS{bNumInterfaces}==" 1"
looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3':
ID=="usb3"
BUS=="usb"
DRIVER=="usb"
SYSFS{configuration}==""
SYSFS{serial}=="0000:00:1d.1"
SYSFS{product}=="UHCI Host Controller"
SYSFS{manufacturer}=="Linux 2.6.17-ARCH uhci_hcd"
SYSFS{maxchild}=="2"
SYSFS{version}==" 1.10"
SYSFS{devnum}=="1"
SYSFS{speed}=="12"
SYSFS{bMaxPacketSize0}=="64"
SYSFS{bNumConfigurations}=="1"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bDeviceClass}=="09"
SYSFS{bcdDevice}=="0206"
SYSFS{idProduct}=="0000"
SYSFS{idVendor}=="0000"
SYSFS{bMaxPower}==" 0mA"
SYSFS{bmAttributes}=="e0"
SYSFS{bConfigurationValue}=="1"
SYSFS{bNumInterfaces}==" 1"
looking at parent device '/devices/pci0000:00/0000:00:1d.1':
ID=="0000:00:1d.1"
BUS=="pci"
DRIVER=="uhci_hcd"
SYSFS{modalias}=="pci:v00008086d000024C4sv00001584sd00009011bc0Csc03i00"
SYSFS{local_cpus}=="f"
SYSFS{irq}=="20"
SYSFS{class}=="0x0c0300"
SYSFS{subsystem_device}=="0x9011"
SYSFS{subsystem_vendor}=="0x1584"
SYSFS{device}=="0x24c4"
SYSFS{vendor}=="0x8086"
looking at parent device '/devices/pci0000:00':
ID=="pci0000:00"
BUS==""
DRIVER==""