I'm desperately in need of help with building a connection on my Rpi between
My SLRs (Canon EOS 700D and 300D) and Gphoto2. I need to use it as my major
experimental monitoring method. I installed Gphoto2 from apt-get, I can
auto-detect my cameras but can't do any further.

*** Error ***
An error occurred in the io-library ('Could not lock the device'): Camera is
already in use.
*** Error (-60: 'Could not lock the device') ***
For debugging messages, please use the --debug option.
Debugging messages may help finding a solution to your problem.
If you intend to send any error or debug messages to the gphoto
developer mailing list <gphoto-devel@...>, please run
gphoto2 as follows:
env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt --summary
Please make sure there is sufficient quoting around the arguments.

*** Error ***
An error occurred in the io-library ('Could not lock the device'): Camera is
already in use.
ERROR: Could not capture image.
*** Error (-60: 'Could not lock the device') ***
For debugging messages, please use the --debug option.
Debugging messages may help finding a solution to your problem.
If you intend to send any error or debug messages to the gphoto
developer mailing list <gphoto-devel@...>, please run
gphoto2 as follows:
env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt

But what this does not show you is that the camera seems to drop out of usb-remotely-controlable mode after each run of gphoto2. It seems the LCD screen on the back must be showing BUSY for gphoto2 to be able to communicate with it. This can be toggled by setting the camera to OFF then to ON again.

I had the same problem with a Nikon D40 - "gphoto2 --auto-detect" would correctly identify the camera, but any other call to gphoto2's functions produced the -60 error.

I followed Deejay's instructions and installed the new versions of libgphoto2 and gphoto2 2.5.3, but the problem persisted. It seems that even when the camera is set to USB=PTP mode, the RPi insists on treating it as a mass storage device. The ‘Eject’ and ‘Umount’ functions did not cure this.

However, I found a suggestion on another thread that the problem was caused by gphoto2 itself, starting gvfs daemons that lock the camera into mass storage mode. By removing (or, preferably, renaming) certain files, this behaviour can be stopped.

This worked for me, and I can now use gphoto2 to drive the camera. I renamed the following files (by simply adding an arbitrary prefix to the filename):

NB: I had to reboot after renaming the files, otherwise the old daemons still ran. Obviously the whole thing can be reversed by changing the files back to their original names and rebooting again.

Edit 10 Jan 2015: Since the previous post I've had to restore my RPi a couple of times, and in re-building gphoto2 I found that the errors mentioned above only occur when the old version of gphoto2 has previously been installed. I guess the 'purge' command doesn't remove the gvfs files, so they're still there after the new version is installed. Once those files are removed, however, a new installation of v.2.5.3 doesn't replace them, so everything works fine.

This might explain why some people found that v2.5.3 cured the problem, and some didn't.