Canon 300d in normal mode works fine, but in PTP mode,
no files are found, only two empty directories:
store_00010001
store_80000001
This camera has been upgraded to Canon Firmware 1.1.1
(which supposedly included PTP changes). I do not know
if it worked with this version of libghoto (2.1.3)
prior to the firmware upgrade.
Attached file is debug output from gphoto2 --shell mode
Here is the gtkam debug output:
ALWAYS INCLUDE THE FOLLOWING LINES WHEN SENDING DEBUG
MESSAGES TO THE MAILING LIST:
gtkam 0.1.10
gtkam has been compiled with the following options:
+ gcc (C compiler used)
+ no bonobo (for FIXME)
+ no gnome (for FIXME)
+ no gimp (plugin for The Gimp)
+ no exif (for displaying exif information)
libgphoto2 2.1.3
libgphoto2 has been compiled with the following options:
+ gcc (C compiler used)
+ EXIF (for special handling of EXIF files)
+ no ltdl (working around buggy libltdl, eh? :-)
+ /proc/meminfo (adapts cache size to memory available)
libgphoto2_port 0.5.1
libgphoto2_port has been compiled with the following
options:
+ gcc (C compiler used)
+ USB (for USB cameras)
+ serial (for serial cameras)
+ no resmgr (serial port access and locking)
+ no baudboy (serial port locking)
+ no ttylock (serial port locking)
+ no lockdev (serial port locking)
+ no ltdl (working around buggy libltdl, eh? :-)
Listing folders in '/store_00010001'...
Listing folders in '/store_00010001'...
Internally deleting all folders from '/store_00010001'...
Folder /store_00010001 contains 0 files.
Listing folders in '/store_80000001'...
Listing folders in '/store_80000001'...
Internally deleting all folders from '/store_80000001'...
Folder /store_80000001 contains 0 files.
Setting key 'width' to value '964' (gtkam)
Saving 16 setting(s) to file "/root/.gphoto/settings"
Setting key 'height' to value '677' (gtkam)
Saving 16 setting(s) to file "/root/.gphoto/settings"
Listing files in '/store_00010001'...
Listing files in '/store_00010001'...
Querying folder /store_00010001...
Setting key 'width' to value '964' (gtkam)
Saving 16 setting(s) to file "/root/.gphoto/settings"
Setting key 'height' to value '677' (gtkam)
Saving 16 setting(s) to file "/root/.gphoto/settings"
Listing files in '/store_80000001'...
Listing files in '/store_80000001'...
Querying folder /store_80000001...
Setting key 'width' to value '964' (gtkam)
Saving 16 setting(s) to file "/root/.gphoto/settings"
Setting key 'height' to value '677' (gtkam)
Saving 16 setting(s) to file "/root/.gphoto/settings"
debug output: gphoto2 --debug --auto-detect --shell 2>/tmp/gp.out
Logged In: YES
user_id=66603
Camera contained 12 photos when this debug output was generated.
Logged In: YES
user_id=881835
I also have the same problem.
If you use the -P and the --debug options, the debug
output displays sebug relating to the pictures in the
camera.
E.g.
.031101 gphoto2-port(2): Reading 512=0x200 bytes from
port...
1.102106 gphoto2-port(2): Could only read 130 out of 512
byte(s)
1.102466 gphoto2-port(3): Hexdump of 130 = 0x82 bytes
follows:
0000 82 00 00 00 02 00 08 10-07 00 00 00 01 00 01
00 ................
0010 01 38 00 00 24 5b 29 00-01 38 00 12 00 00 00
0c .8..$[)..8......
0020 00 00 00 08 00 00 00 0c-00 00 00 08 00 00 18
00 ................
0030 00 00 03 00 00 00 00 00-00 00 00 00 00 00 00
00 ................
0040 0d 49 00 4d 00 47 00 5f-00 30 00 30 00 35 00
32 .I.M.G._.0.0.5.2
0050 00 2e 00 4a 00 50 00 47-00 00 00 12 32 00 30
00 ...J.P.G....2.0.
0060 30 00 34 00 30 00 31 00-31 00 33 00 54 00 32 00
0.4.0.1.1.3.T.2.
0070 31 00 34 00 38 00 32 00-32 00 2e 00 30 00 00 00
1.4.8.2.2...0...
0080 00 00 - ..
1.103425 gphoto2-port(2): Reading 512=0x200 bytes from
port...
1.106084 gphoto2-port(2): Could only read 12 out of 512
byte(s)
1.106293 gphoto2-port(3): Hexdump of 12 = 0xc bytes
follows:
0000 0c 00 00 00 03 00 01 20-07 00 00
00 ....... ....
1.106612 PTP2/library.c(2): ObjectInfo for 'IMG_0052.JPG':
1.106812 PTP2/library.c(2): Object ID: 0x00000006
1.107049 PTP2/library.c(2): StorageID: 0x00010001
1.107241 PTP2/library.c(2): ObjectFormat: 0x3801
1.107429 PTP2/library.c(2): ProtectionStatus: 0x0000
1.107621 PTP2/library.c(2): ObjectCompressedSize:
2710308
1.107817 PTP2/library.c(2): ThumbFormat: 0x3801
1.108046 PTP2/library.c(2): ThumbCompressedSize: 4608
1.108240 PTP2/library.c(2): ThumbPixWidth: 3072
1.108428 PTP2/library.c(2): ThumbPixHeight: 2048
1.108616 PTP2/library.c(2): ImagePixWidth: 3072
1.108803 PTP2/library.c(2): ImagePixHeight: 2048
1.108991 PTP2/library.c(2): ImageBitDepth: 24
1.109188 PTP2/library.c(2): ParentObject: 0x00000003
1.109382 PTP2/library.c(2): AssociationType: 0x0000
1.109571 PTP2/library.c(2): AssociationDesc: 0x00000000
1.109764 PTP2/library.c(2): SequenceNumber: 0x00000000
1.110346 gphoto2-filesystem(2): Listing files in '/'...
1.110572 gphoto2-filesystem(2): Querying folder /...
1.110801 gphoto2-camera(2): Listing folders in '/'...
1.111005 gphoto2-filesystem(2): Listing folders in '/'...
1.111343 gphoto2-port(2): Writing 12=0xc byte(s) to
port...
1.111556 gphoto2-port(3): Hexdump of 12 = 0xc bytes
follows:
0000 0c 00 00 00 01 00 04 10-08 00 00
00 ............
Logged In: YES
user_id=173521
Need full debug output, preferably using newest version of
libgphoto2 and gphoto2: "gphoto2 -L --debug", with english
locales.
Logged In: YES
user_id=173521
Ups... sorry for the mess... I found the attached file.
The problem is that CANON reports that the parent object ID
of all objects in 'root folder' is an object 0x00000001,
which is not present at all.
It's an obvious BUG in CANON firmware, as the PTP spec says
that the 'root folder' object ID is 0x00000000.
I suggest reporting it to Canon.
Logged In: YES
user_id=881835
Change to 'Canon EOS 300D (nomal mode)'.
It works fine, assuming you are using latest gphoto2 and
libghototo...
Logged In: YES
user_id=27487
but in Normal mode it is not PTP, hence not a bug.
sure, this can help the user, but not the PTP driver
developper to make it work.
Logged In: YES
user_id=173521
There is a bug, and the bug is in Canon firmware. A
workaround for it would break other cameras functionality.
However, if you wish to use a PTP driver for your camera,
please edit the file ptp.h in camlibs/ptp2/ folder and
change the following line:
#define PTP_HANDLER_ROOT 0x00000000
to:
#define PTP_HANDLER_ROOT 0x00000001
Logged In: YES
user_id=27487
Could it be possible to make a dirty hack like:
if (camera == "EOS 300D") {
PTP_HANDLER_ROOT = 0x00000001;
}
possibly breaking when firmware gets updated (or trying to
fallback if that does not work because of a possible fix) ?
I know this is dirty but it may be worth.
Logged In: YES
user_id=173521
Honestly I hate dirty hacks. They usually justify existence
of broken devices. Adding more and more dirty hacks results
in obscured code, very hard to improve.
Beside that the PTP_HANDLER_ROOT constant (it's a CONSTANT,
not variable BTW ;) is used in other meanings also. I'm not
even sure if changin this value won't break functionality in
some other places...
I'd suggest reporting it to CANON very strongly. I can't do
it on my own, as I have no canon camera, no support contact
and stuff like that.
It might be also valuable to test, whether the windows
generic PTP driver works with this camera. I know, ther is
such "generic" driver in windows XP.
Another idea is to format the memory/card. The bug may be
not a "permanent feature" of a firmware, but some bizarre
result of filesystem content coruption.
Logged In: YES
user_id=881835
You're right. As it is, PTP does not work in XP.
Wish I had known that earlier ! I wasted a lot of time
assuming the problem was somewhere in Linux or my setup !
Logged In: YES
user_id=248825
On my box PTP works in XP. But in Linux I've the same
problem also with reformatted CF.
Logged In: YES
user_id=48092
please try to update the firmware of the EOS 300D and see if that helps.
Logged In: YES
user_id=48092
fixed in upcoming 2.1.6 release.
Logged In: YES
user_id=27487
FYI, this is the 20D patch.