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.
Your emerge --info, please.
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.
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.)
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.)
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).
Please do post your emerge --info, and then reopen this bug.
Taking this issue up with the Gphoto2 mailing list instead.
(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
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.
# 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.
(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.
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"?
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.
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. ;-)
closing invalid since the original bug was due to a misunderstanding.