ELPH300HS aka IXUS220HS - Porting Thread - page 8 - DryOS Development - CHDK Forum  

ELPH300HS aka IXUS220HS - Porting Thread

  • 897 Replies
  • 215016 Views
Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #70 on: 15 / June / 2011, 21:04:09 »
Advertisements
or we could leave it open so other interested people may bump it in search of an guru to pull us out of the mud?  ???

it would be a shame for this camera to remain locked. do you think that if we send an email to canon and ask for unofficial support, they could help us with tips on the porting? what information is needed, specifically, which varies between cameras of the same range and cameras of other ranges? (like sx vs elph 300 vs ixus classic)

i hope that i am not violating any hack tabu by bringing such thing into discussion... after all it could be an other form of heching  :haha

*

Offline reyalp

  • ******
  • 12294
Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #71 on: 16 / June / 2011, 00:32:14 »
it would be a shame for this camera to remain locked. do you think that if we send an email to canon and ask for unofficial support, they could help us with tips on the porting?
As a developer, I would ask that you please do not do this. Ignoring CHDK is about the most positive approach they can realistically take.
Quote
what information is needed, specifically, which varies between cameras of the same range and cameras of other ranges? (like sx vs elph 300 vs ixus classic)
It's not a matter of some "specific information" that Canon could provide. CHDK hooks directly into the internals of the firmware. Every port needs a bunch of addresses and other stuff to pull this off. Because they are obtained by reverse engineering this isn't something Canon could provide with even if they wanted to.
Don't forget what the H stands for.

*

Offline db2

  • *
  • 13
Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #72 on: 16 / June / 2011, 10:41:07 »
I'm really hoping someone can help revive this. Its a great little camera, I just wish eos had more supported features. ugh!

Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #73 on: 16 / June / 2011, 11:20:48 »
it would be a shame for this camera to remain locked. do you think that if we send an email to canon and ask for unofficial support, they could help us with tips on the porting?
As a developer, I would ask that you please do not do this. Ignoring CHDK is about the most positive approach they can realistically take.
Quote
what information is needed, specifically, which varies between cameras of the same range and cameras of other ranges? (like sx vs elph 300 vs ixus classic)
It's not a matter of some "specific information" that Canon could provide. CHDK hooks directly into the internals of the firmware. Every port needs a bunch of addresses and other stuff to pull this off. Because they are obtained by reverse engineering this isn't something Canon could provide with even if they wanted to.

okay, that is why i was asking. thank you for your answer, now i just wish i hadn't abandoned programming 5 years ago :(


Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #74 on: 16 / June / 2011, 13:47:07 »
I have started work on adding this camera. My time to work on it is limited and this is a first time for me, so please be patient. If anyone with more experiance would like to help please do. I have already found a few functions manually, and will update as I have more done.

Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #75 on: 16 / June / 2011, 14:05:14 »
good news, godspeed with that!

reyalp & chris, i would like to ask if you see any practical utility in using machine learning to get the addresses for the new (unknown) firmware. i mean it's useful but believe me when i tell you that i have no idea about reverse engineering. the short story is to chuck all the currently "deciphered" firmwares AND their lists of useful addresses (incl. function name) and train something with it (neural nets or SVM for instance... kohonen maps could also work). after training, plugging in a new firmware will give possible start addresses (nn/koh) or probabilities for randomly generated address lists (svm + a tad bruteforce). keep in mind that the results returned will be almost certainly "dirty" but at least it could "highway" a part of the road :)

do you see any reason this might not work for? i might start on it next month and it could take anything between 4 days and 4 weeks. this month i'm still busy flunkin' my msc.

(edit: changed svn to svm... i'm dyslexic  :-X)
« Last Edit: 16 / June / 2011, 14:14:21 by 220canovolts »

*

Offline reyalp

  • ******
  • 12294
Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #76 on: 16 / June / 2011, 18:22:25 »
reyalp & chris, i would like to ask if you see any practical utility in using machine learning to get the addresses for the new (unknown) firmware. i mean it's useful but believe me when i tell you that i have no idea about reverse engineering.
You will not accomplish anything without a very thorough understanding of what is already there. Gaining that knowledge would take a substantial amount of time, at least equivalent to doing a port the normal way. In fact, doing a port would probably be a good place to start, since it will give you a good overview of the platform dependent areas of CHDK.

I don't know enough about the field to know if this kind of technique could be useful, but it certainly seems plausible. For some student doing work in this area, it could probably be an interesting and productive project. The end result might even be useful for future ports.

FWIW, we already have tools that find addresses based on reference to other firmwares, which work quite well without any  machine learning, see http://chdk.wikia.com/wiki/Signature_finder and http://chdk.wikia.com/wiki/CHDK-PT_:_A_tool_for_porting_different_firmware_versions_on_the_same_camera
Don't forget what the H stands for.

Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #77 on: 16 / June / 2011, 18:29:05 »
FWIW, we already have tools that find addresses based on reference to other firmwares, which work quite well without any  machine learning, see http://chdk.wikia.com/wiki/Signature_finder and http://chdk.wikia.com/wiki/CHDK-PT_:_A_tool_for_porting_different_firmware_versions_on_the_same_camera
And at the risk of stealing someone else's thunder,  philmoz has been working on a new sigfinder that probably does most of what is proposed here - albeit not with the same proposed AI & ML techniques but building on the existing knowledge from all the ports so far.  I don't know a lot more about what else he has done but the results he has shared with me working on a couple of ports recently have been pretty spectacular compared to the old way.   I'm sure philmoz will share details in his own time.

Ported :   A1200    SD940   G10    Powershot N    G16


*

Offline philmoz

  • *****
  • 3138
    • Photos
Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #78 on: 16 / June / 2011, 22:43:06 »
FWIW, we already have tools that find addresses based on reference to other firmwares, which work quite well without any  machine learning, see http://chdk.wikia.com/wiki/Signature_finder and http://chdk.wikia.com/wiki/CHDK-PT_:_A_tool_for_porting_different_firmware_versions_on_the_same_camera
And at the risk of stealing someone else's thunder,  philmoz has been working on a new sigfinder that probably does most of what is proposed here - albeit not with the same proposed AI & ML techniques but building on the existing knowledge from all the ports so far.  I don't know a lot more about what else he has done but the results he has shared with me working on a couple of ports recently have been pretty spectacular compared to the old way.   I'm sure philmoz will share details in his own time.


Thanks waterwings, it's getting there - I hope to have a version ready for general use soon.

I've been looking at the firmware dumps of the new Dryos R47 cameras (SX220, SX230, Ixus220) and my code is working pretty well with these.

Attached is my stubs_entry.S file for the Ixus220 firmware version 1.00c.

After each stub is some additional information:
- method used to find the address (for my internal use)
- % match (only shown if the match is less than 100%)
- comparison to stubs_entry_2.S (not relevant here as I don't have the existing file for this camera)
- comparison to original finsig/gensig generated address.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)

Re: ELPH300HS aka IXUS220HS - Porting Thread
« Reply #79 on: 17 / June / 2011, 17:10:55 »
Phil you are my hero. This is pure gold. I'm going through the stubs now and I had maybe 1/5 of these and this confirms all of those. I will continue to go through it and see if I can get a stable build when I get the chance. I'll let you know how it goes.

 

Related Topics