Digikam won't connect to digital camera

When I click on the camera icon itself, I get:

Could not start process Unable to create io-slave:
klauncher said: Unknown protocol ‘camera’.

When I use Digikam, it says:

“Failed to connect to the camera. Please make sure it is connected properly and turned on. Would you like to try again?”

The camera has worked with this PC and openSUSE 11.1 before, but a recent update seems to have broken something. I tried the KDE 3 and KDE 4 versions of Digikam, and also logging into a KDE 3 session, and a KDE 4 session. Same problem.

Here is the kicker. If I log in as root, then I can download pictures fine. But with the normal user account, I get those errors.

Any suggestions?

What camera is it? Does it use the USB mass storage protocol (ie, does it show up as a disk that you can browse in Konqueror or Dolphin when plugged?) or only the PTP protocol?

Your problem sounds exactly like this report but the solution doesn’t work as-is with openSUSE. If you do have a PTP camera, could you attach the relevant lsusb output here and I’ll find out where to tweak the udev rules so that you can run digikam as a regular user.

It is my mother’s computer so I’d have to go back to her house.

I could browse to it before in a file manager like Dolphin/Konqueror. It attempts to mount the camera and shows an icon on the desktop, but it won’t allow me to actually use it.

Like I said, it does work under root, and it did work previously under my mother’s account.

What I should have tried and didn’t when I was over there was wiping her $HOME/.kde/share/apps/digikam folder and then trying it again, but that wouldn’t change how the file managers attempt to access it over kio-slave.

I’ll post lsusb and some more info next time I’m over there.


Bus 001 Device 010: ID 04a9:30ba Canon, Inc. PowerShot S410 Digital Elph

I don’t seem to have a libmtp.rules file, or anything like it in /etc/udev/rules.d

That won’t help. The reason (I think) it doesn’t work is that the camera IDs are not present in the database that the system uses to recognise cameras and set them up for digikam to access.

I’ll have a look around and find out where to add the USB IDs you’ve supplied, and have a look at how digikam can be made more robust in the face of a camera that is detected but not accessible - perhaps a dialog that shows the lsusb output and gives instructions how to get this information included in your distro out of the box.

I asked someone who knows better, and it turns out that we use a different mechanism than the cited post, but that it boils down to a permissions problem. Over to Marcus…

Foremost, we use HAL FDI files to match devices and hand out permissions to cameras.

The S400 is included there already, as is a generic PTP entry, both will match this camera.

That permissions are broken can have two reasons:

  • there is a bug in HAL on multiprocessor systems, which occasionaly (every third time or so) does not grant the correct permissions. If the camera works again after unplugging and replugging it - this is the problem. https://bugzilla.novell.com/show_bug.cgi?id=465166

  • If it never works, the correct permissions were not handed out at all. Run:
    as user to see if this user is correctly detected as being logged. If it is not shown, this is the bug.

I tried it over and over again, and it never worked, so it wasn’t the first bug.

I will try ck-list-sessions and let you know what I get next time I’m over there.

That being said, sadly due to issues with the camera, and her inability to play Silverlight video from her company (they’re using Silverlight 2 and even compiling Mono and Moonlight from SVN, I still can’t get the videos to play) she has asked me to format her PC and reinstall Windows for her.