Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 224565 - media-gfx/gphoto2 Fails communicating with Canon SD200 (PTP Mode) (F-Spot Dependency)
Summary: media-gfx/gphoto2 Fails communicating with Canon SD200 (PTP Mode) (F-Spot Dep...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo Graphics Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-02 02:13 UTC by Roger
Modified: 2009-07-22 17:10 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Gphoto2 debug output (Possibly compiled with cameras_canon USE Flag?) (my-logfile.txt,28.35 KB, text/plain)
2008-06-02 05:05 UTC, Roger
Details
Debug file from Gphoto2 (my-logfile.txt,167.17 KB, text/plain)
2008-06-02 05:17 UTC, Roger
Details
Explicitly specifying PTP Mode results in hang (my-logfile.txt,1.64 MB, text/plain)
2008-06-02 06:10 UTC, Roger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roger 2008-06-02 02:13:11 UTC
Gphoto2 Fails communicating with Canon SD200 (PTP Mode).  This bug is present in the following packages:

=media-gfx/gphoto2-2.4.1 (aalib exif ncurses nls readline)
=media-libs/libgphoto2-2.4.1 (exif hal nls -doc)
=media-libs/libgphoto2-2.4.1-r1 (exif hal nls -doc)


Reproducible: Always

Steps to Reproduce:
1. Upgrade to the above listed (marked stable) versions
2. gphoto2 -L will fail communicating with camera
3. (And f-spot depends on gphoto2, as such, will fail communicating also.)

Actual Results:  
Here's gphoto2's output:

Error -114: LibGPhoto2.GPhotoException: Unknown Error

Here's f-spot's output for kicks:

f-spot can not import: Could not claim the USB device

Expected Results:  
gphoto2 should recognize and list images available for download on the camera

For temporarily working around this issue, with effort focused on keeping f-spot working, users can depend on the following packages to still work.

=media-gfx/gphoto2-2.2.0
=media-libs/libgphoto2-2.2.1-r1

I have masked the stable versions, or versions I verified the problem existed in:

/etc/portage/package.mask
=media-gfx/gphoto2-2.4.1
=media-libs/libgphoto2-2.4.1
=media-libs/libgphoto2-2.4.1-r1

Gphoto2 developers request --debug log, unfortunately, I might still have a logged output on my laptop.  If I get to it before somebody else posts theirs, I push it to this page.

This is more then likely an upstream bug.  However, haven't ruled out patches applied by this ebuild, etc.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2008-06-02 02:32:49 UTC
Your emerge --info, please.
Comment 2 Roger 2008-06-02 05:01:41 UTC
Just doing some research and found another on the Gphoto2-users mailing list post this topic:
"[Gphoto-user] Canon IXUS 30/Powershot SD200 doesn't work anymore"

However, posting trails off and I don't think the issue was ever really resolved.  Gphoto2 seems to be trying to use the "normal mode" driver instead of the working "ptp mode" driver.  Even forcing gphoto to try PTP mode, would still get the same error.

Comment 3 Roger 2008-06-02 05:05:13 UTC
Created attachment 155195 [details]
Gphoto2 debug output (Possibly compiled with cameras_canon USE Flag?)

Posting yesterdays debug log file.  (Log file might have been obtained from using the cameras_canon USE flag.)
Comment 4 Roger 2008-06-02 05:17:00 UTC
Created attachment 155197 [details]
Debug file from Gphoto2

=media-gfx/gphoto2-2.4.1 (aalib exif ncurses nls readline)
=media-libs/libgphoto2-2.4.1 (exif hal kernel_linux nls)

Yup, definitely trying to use the Normal Mode driver instead of the PTP driver.  

(Think they committed a patch causing libgphoto2 to give priority to this driver over PTP driver?  It seems not even trying to use the PTP driver.)
Comment 5 Roger 2008-06-02 06:10:15 UTC
Created attachment 155201 [details]
Explicitly specifying PTP Mode results in hang

It took me awhile, but I've figured out how to force ptp mode with the following:
# env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt  --camera "Canon PowerShot SD200" --port "ptpip:" -L

However, all I get is a hang while communicating and something about a bad parameter (after I think the camera times out).
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2008-06-02 06:23:30 UTC
Please do post your emerge --info, and then reopen this bug.
Comment 7 Roger 2008-06-02 08:28:15 UTC
Taking this issue up with the Gphoto2 mailing list instead.
Comment 8 Levi Stanley 2009-07-12 19:18:12 UTC
(In reply to comment #6)
> Please do post your emerge --info, and then reopen this bug.
> 

Portage 2.1.6.13 (default/linux/amd64/2008.0, gcc-3.4.6, glibc-2.9_p20081201-r2, 2.6.28.8 x86_64)
=================================================================
System uname: Linux-2.6.28.8-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T9400_@_2.53GHz-with-glibc2.2.5
Timestamp of tree: Sat, 11 Jul 2009 01:30:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.8-r1
dev-lang/python:     2.4.4-r13, 2.5.4-r3
dev-python/pycrypto: 2.0.1-r8
dev-util/cmake:      2.6.4
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r3
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=nocona -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://mirror.leaseweb.com/gentoo/ http://mirror.switch.ch/ftp/mirror/gentoo/"
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LDFLAGS="-Wl,-O1"
LINGUAS="en en_US"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="7zip X a52 aac aalib accessibility acl acpi additions admin administrator allegro alsa amarok amd64 animgif ansi apache2 aspell aspnet2 asyncns audacious autoipd avahi bash-completion beagle berkdb bittorrent bluetooth boehm-gc boost bzip2 c++ cairo canna caps ccache cdaudio cdda cddb cdio cdparanoia cdr cdrom cegui cg chm clamav cli colordiff colors compress corefonts cpudetection cracklib crypt css csv ctype cups cupsddk curl custom-cflags daap dbus dc1394 deskbar dirac divx djbfft djvu dmx dnd dri dts dv dvd dvdnav dvdr dvi dxr3 enca encode fame fat fbsplash ffmpeg firefox3 flac flash fortran gcc-libffi gcj gd gdbm gif glitz glut gnome gnome-print gpg gpm gsm gstreamer gtk gtkhtml gzip h323 hal haskell iconv id3 id3tag idea image imagemagick imlib innodb ipv6 isdnlog jabber java java6 javascript jbig jce jde jfs jmf jms jmx jni jpeg jpeg2k jpgraph json kerberos kino lame laptop lcms ldap ldap-sasl libcaca libffi libssh2 libv4l2 libvisual live log4j lua lv2 lzma lzo matroska matrox max-idx-128 mdnsresponder-compat mhash midi mikmod mjpeg mmx mng mod_python mono moonlight mozdevelop mp2 mp3 mp3rtp mp3tunes mp4 mp4live mpeg mpeg2 mplayer mtp mudflap multilib musicbrainz mysql mysqli nas nautilus ncurses nemesi network nls nptl nptlonly nsplugin objc objc++ objc-gc ocaml ogg ogg123 opengl openmp openvpn pam pango pcap pcre pdf pdo perl php pidgin pike player png pnm povray pppd pulseaudio python qt3 qt4 quicktime rar raw readline realmedia reflection regex regexp rtc rtsp ruby schroedinger screen screenshot sdl sdl-image sdl-sound session shout simplexml skins sms soap sockets sound sounds speex spl sqlite sse sse2 ssh ssl stream svg svgz sysfs tcl tcpd theora threads threadsafe tiff tokenizer transcode truetype twolame unicode usb uudeview uuencode v4l v4l2 vhook video videos vim-syntax visualization vorbis wav wavpack wddx wireshark wma wmf wmp x264 xinerama xml xmlreader xmlrpc xmlwriter xmp xorg xpm xrandr xrender xsl xslt xterm xterm-color xulrunner xv xvid xvmc zeroconf zip zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 9 Roger 2009-07-14 10:06:55 UTC
I've verified this.

My camera model again: Canon PC1102 - Detected in gtkam as a Canon Digital IXUS  30 (PTP Mode)


Compiling libgphoto2 (media-libs/libgphoto2-2.4.3) with USE flag "-cameras_canon" causes libgphoto2 not to be able to detect my camera.

If I'm correct, this is likely an upstream bug with it's configure, Makefiles or code headers.
Comment 10 Roger 2009-07-14 10:09:33 UTC
# eix -s libgphoto

Installed versions:  2.4.3!t(01:33:12 07/14/09)(exif hal kernel_linux nls 

... all other USE flags for libgphoto disabled, and it works.  Enable cameras_canon USE flag and the camera fails detection.
Comment 11 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-07-14 17:15:34 UTC
(In reply to comment #10)
> # eix -s libgphoto
> 
> Installed versions:  2.4.3!t(01:33:12 07/14/09)(exif hal kernel_linux nls 
> 
> ... all other USE flags for libgphoto disabled, and it works.  Enable
> cameras_canon USE flag and the camera fails detection.

That's is because cameras_canon is for old canon cameras that uses a specific protocol and/or serial cable. You need ptp2 which is the generic PTP support. Not setting any USE flag is equivalent to enabling all of them. That's how IUSE_EXPAND works.

Comment 12 Roger 2009-07-14 19:03:20 UTC
So maybe using a use flag a little more descriptive would be more appropriate?

ie.  User has a canon camera and automatically assumes to enable "cameras_canon" within make.conf?

Something like "cameras_canon_old", "cameras_canon_nonptp", or "cameras_nonptp_canon"?

Comment 13 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-07-14 20:19:01 UTC
well you set the summary so it seems you failed to understand the correlation between PTP and cameras_ptp2. Better descriptions are always welcomed but changing the useflag is no go.
Comment 14 Roger 2009-07-14 22:26:34 UTC
Comments #3, #4, #5, I started understanding somewhat what was going on.  Then I trailed-off, guessing because I found the solution and failed to follow-up.  The topic was set during a time I completely didn't understand what was going on.

Depending on a user to understand their Canon camera uses PTP mode to communicate vs. a USE flag called "cameras_canon" seems like a recipe for disaster, as specifying this use flag will cause gtkam & f-spot to be non-communicative with this canon (as well as other cameras).

I see the calamity that is caused if cameras_ptp is only specified, preventing all other drivers from being compiled.

Might I suggest at least a message to stdout during emerge:

"PTP mode (cameras_ptp) is a suitable communication protocol used by most cameras even though their specific model is listed within the cameras_* USE flags.  The default, specifying no cameras_* USE flags will build all camera communication protocols."

In other words when programing a program with switches and arguments, they should be self explanatory as to what they do instead of cause confusion. ;-)
Comment 15 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-07-22 17:10:48 UTC
closing invalid since the original bug was due to a misunderstanding.