IXUS107IS - DryOS Development - CHDK Forum supplierdeeply

IXUS107IS

  • 13 Replies
  • 5579 Views
IXUS107IS
« on: 23 / April / 2012, 18:19:08 »
Advertisements
Hey guys,
starting to port chdk to my ixus 107 bought in Germany
firmware version 1.00B

I am using linux and the result of the compilation is
http://dl.dropbox.com/u/8490812/DISKBOOT.BIN.ixus107.100B
http://dl.dropbox.com/u/8490812/stubs_entry_2.S
http://dl.dropbox.com/u/8490812/stubs_entry.S

from this firmware dump
http://dl.dropbox.com/u/8490812/PRIMARY.BIN.ixus107.100B

but I was never able to get it loaded...
What disassebler shall I use under linux?
I'll keep you posted guys

Silo

*

Offline srsa_4c

  • ******
  • 4451
Re: IXUS107IS
« Reply #1 on: 23 / April / 2012, 18:43:16 »
Hi,

without looking at the dump, I have a feeling that the Ixus107 is a renamed Ixus105. The latter is more or less supported by SDM "latest" released source at the bottom, an early fork of CHDK, and has a porting thread here.
Some pointers:
http://chdk.wikia.com/wiki/For_Developers
http://chdk.wikia.com/wiki/GPL_Disassembling
http://chdk.wikia.com/wiki/CHDK-PT (Windows program, but runs under Wine)
Armu by Pel (an extremely buggy Windows program, also runs under Wine, but you can't copy or save the decompiled code)

You can choose to make a complete new port or to fix (and port) the existing Ixus105 code.

Re: IXUS107IS
« Reply #2 on: 24 / April / 2012, 02:45:12 »
Hi srsa,
Wow, that a quick reply! Thank you.
I had the same suspect when I saw that the 107 shared the same P-ID of the 105.
My firmware version is different though WRT the one ported by cLOud.
I will give a try to SDM. I will try to port a version myself, just for the sake of my programming skills.
It would be great to have the platform dir of SD1300 to start with. Cause it's good to know what to write
but it's better to know what NOT to rewrite :)

Re: IXUS107IS
« Reply #3 on: 24 / April / 2012, 03:06:36 »
Quick update:
No luck loading SDM for ixus105 on my camera


Re: IXUS107IS
« Reply #4 on: 24 / April / 2012, 06:11:59 »
Try creating a build based on SDM 1.85 source code.

If that works, we can try updating to (the as yet unreleased) SDM 1.86, if you so wish.


David

Re: IXUS107IS
« Reply #5 on: 25 / April / 2012, 10:08:39 »
Thanks for the attentions guys, I really appreciate.
So here is what I did.
- Downloaded the source from  http://stereo.jpn.org/eng/sdm/file/sdm.zip
- unpacked
- copied platform and loader dirs from ixus105
- changed the sub 100d to 100b, copied my dump into it
- added CAMERA_ixus107 defs in include/camera.h and core/kbd.c
- run $make PLATFORM=ixus107 PLATFORMSUB=100b clean
- run $make PLATFORM=ixus107 PLATFORMSUB=100b fir

I get this error message:

-> main.elf
../platform/ixus107/sub/100b/libplatformsub.a(boot.o): In function `sub_FFC714F4_my':
boot.c:(.text+0x44c): undefined reference to `sub_FFD04AC8'

(I omitted the bit of trial and error in between, I confess.;) )

Alessandro

Re: IXUS107IS
« Reply #6 on: 25 / April / 2012, 18:57:11 »
Is it in stubs_auto.S ?


David

*

Offline c10ud

  • ***
  • 245
Re: IXUS107IS
« Reply #7 on: 26 / April / 2012, 11:00:44 »
Hello there,

mostly motivated by this thread i ported ixus105's platform-dependant code from SDM back to chdk.
As i said multiple times this is done mostly for education purposes, as i thought it could help you in the process of porting chdk to ixus107 (along with the reading of other recent camera portings which contain the newest "good practices" of chdk development)

See here for my ixus105 git branch: https://github.com/c10ud/CHDK/tree/ixus105

hope it helps


Re: IXUS107IS
« Reply #8 on: 26 / April / 2012, 11:48:43 »
contain the newest "good practices" of chdk development

In that case, I had better read it as well   :)

Re: IXUS107IS
« Reply #9 on: 26 / April / 2012, 18:28:27 »
Sorry guys for the late reply.
answer to David:
I guess not :( . I ran this in my SDM_1.85 directory:
Code: [Select]

$ for i in $(find . | grep ixus107 ); do grep FFD04AC8 $i; if [ $? == 0 ]; then echo $i; fi; done;
Binary file ./platform/ixus107/sub/100b/libplatformsub.a matches
./platform/ixus107/sub/100b/libplatformsub.a
" BL sub_FFD04AC8\n"        // nullsub_100
./platform/ixus107/sub/100b/boot.c
Binary file ./platform/ixus107/sub/100b/boot.c.rtf matches
./platform/ixus107/sub/100b/boot.c.rtf
Binary file ./platform/ixus107/sub/100b/boot.o matches
./platform/ixus107/sub/100b/boot.o

$ for i in $(find . | grep ixus107 ); do grep FFC714F4 $i; if [ $? == 0 ]; then echo $i; fi; done;
Binary file ./platform/ixus107/sub/100b/libplatformsub.a matches
./platform/ixus107/sub/100b/libplatformsub.a
" BL sub_FFC714F4_my\n"
sub_FFC714F4_my()
void __attribute__((naked,noinline)) sub_FFC714F4_my()
./platform/ixus107/sub/100b/boot.c
STUB(FFC714F4)
./platform/ixus107/sub/100b/stubs_auto.S
Binary file ./platform/ixus107/sub/100b/boot.c.rtf matches
./platform/ixus107/sub/100b/boot.c.rtf
Binary file ./platform/ixus107/sub/100b/boot.o matches
./platform/ixus107/sub/100b/boot.o
Binary file ./platform/ixus107/sub/100b/stubs_auto.o matches
./platform/ixus107/sub/100b/stubs_auto.o


Answer to c10ud.
GEE! Thank you!
I will give it a go NOW.