DryOS - some success - page 3 - DryOS Development - CHDK Forum
supplierdeeply

DryOS - some success

  • 220 Replies
  • 157425 Views
*

Offline GrAnd

  • ****
  • 916
  • [A610, S3IS]
    • CHDK
Re: DryOS - some success
« Reply #20 on: 02 / January / 2008, 18:16:36 »
Advertisements
Btw, GrAnd, still think it can't be done? ;)
What can't be done? The porting to DryOS? I never said that. I said: "it's almost impossible". ;)
CHDK Developer.

*

Offline jeff666

  • ****
  • 181
  • A720IS
Re: DryOS - some success
« Reply #21 on: 03 / January / 2008, 07:19:57 »
Good news: GUI works. I needed some tries to locate the correct vsprintf but it works now.

I do have some trouble with the keyboard, though. After finding out, that the keymap needs to be adjusted, I turned on the physw_status-debug-display. I noticed that keyboard activity changes at least two of the three values, but it seems that only physw_status[2] is used for the keymap. Is that correct?

Edit: It turns out that 3 buttons, SHOOT_HALF, SHOOT_FULL and ERASE are in physw_status[1]. Since the upper two bytes from [2] weren't used, I copied the relevant bits there. But this should be changed to something more generic later.

Since I have more to show than just funny blinking LEDs I made a (bad) picture. Note that this only shows the OSD. Virtually no (real) function has been added, yet.
http://img401.imageshack.us/my.php?image=capture00015zk0.jpg

Cheers.
« Last Edit: 03 / January / 2008, 09:21:14 by jeff666 »

*

Offline DataGhost

  • ****
  • 314
  • EOS 40D, S5IS
    • DataGhost.com
Re: DryOS - some success
« Reply #22 on: 03 / January / 2008, 10:42:41 »
That's great news indeed. Unfortunately, I'm not at home right now, so I can't have a go at this on my camera, but I'll be back tomorrow afternoon (GMT+1). As for the firmware dump: I bought a photo diode yesterday, it works when I point it at a 60 watt lightbulb, but the AF light isn't bright enough (it's not really sensitive in the green area, 0.4 relative). Since I'm not at home, I have to wait until tomorrow to order a proper diode from Conrad (the local store only has IR-sensitive diodes), which will probably arrive on tuesday :( unless I can find a nearby store that sells them.

*

Offline procopio

  • *
  • 23
  • [ A650IS - CHDK - 4GB SDHC]
    • Oipo Corp.
Re: DryOS - some success
« Reply #23 on: 03 / January / 2008, 12:35:21 »
Great to hear this man!

I had a A630 running CHDK and upgraded it to a A650IS.... so I can't wait for it to run on DryOS.

Congratulations on your effort and success!


Re: DryOS - some success
« Reply #24 on: 03 / January / 2008, 14:12:41 »
I folk,

I followed this thread is the last days and I'm impressed by your work ! I wonder if this work would be easily applicable on the SD870IS ?

Thanks !

Edgardz

*

Offline tommi2water

  • ***
  • 157
  • IXUS 220 HS Firmware: 1.00c
Re: DryOS - some success
« Reply #25 on: 03 / January / 2008, 14:29:00 »
I moved my questions to this thread:

http://chdk.setepontos.com/index.php/topic,263.0.html

Best regards,
tommi

Quote
Hi,

I'm new to this forum. I have a S5 and I am trying to dump its firmware, too. The version is also 1.01b.

I have a bootable SD-Card and tried to let some LED blink. But Camera only hangs. Ok, booting seems to work. ;-)

In blinker source code I only changed the following in main.c:

#define LED_AF 0xc02200E0
#define LED_PR 0xc02200D4

Do I have to adjust something else?

Dataghost, maybe you could provide your blinker source code that I can see, what I am doing wrong?

Thanks in advance and best regards,
tommi

« Last Edit: 04 / January / 2008, 06:35:10 by tommi2water »

*

Offline jeff666

  • ****
  • 181
  • A720IS
Re: DryOS - some success
« Reply #26 on: 04 / January / 2008, 05:57:54 »
I had a A630 running CHDK and upgraded it to a A650IS.... so I can't wait for it to run on DryOS.
I wonder if this work would be easily applicable on the SD870IS ?

We have the firmware of neither an A650 nor an SD870. Bring a firmware-dump and you will (very likely) get your port.

I'm new to this forum. I have a S5 and I am trying to dump its firmware, too. The version is also 1.01b.

Please continue that topic in the firmware dumping section. Mixed subjects in one thread confuse both and makes finding the thread later difficult. Thanks.


Now for the fun part:
I didn't do very much on the port, yesterday. News
  • OSD displays zoom, distance-to-focused-object and battery power.
  • Histogram is displayed but I think the graph is not accurate.
  • EXP-hint is always on. Clearly there's something to fix.
  • OSD refresh works. Had to locate another firmware function.
  • PropertyCase display in debug-mode works.
  • I turn on the DP-LED in ALT-mode :)

Still not working:
  • file access. I'll look into open/read/write/close today
  • raw shooting. This should be straight forward but requires moving of several firmware code into boot.c
  • script execution. Depends on file access
  • the mode-dial selects different modes in normal and alt mode.

If the remaining three are done I should be finished with CHDK trunk. I must say I'm a little disappointed by the few features of trunk :D

When everything works I intent to merge the A720-dependent parts into a more recent CHDK branch. What is it with the different builds? Are they all created from the same SVN code?

I will also document what needed to be changed outside of platform/ (very little, fortunately) and in platform/generic/ (a little bit).

Here is the current stage of development: http://www.zshare.net/download/61758748506219/

Cheers.

*

Offline lks

  • *
  • 16
  • [A570IS, S5IS]
Re: DryOS - some success
« Reply #27 on: 04 / January / 2008, 09:14:01 »
Very exciting stuff, Jeff.


*

Offline DataGhost

  • ****
  • 314
  • EOS 40D, S5IS
    • DataGhost.com
Re: DryOS - some success
« Reply #28 on: 04 / January / 2008, 14:55:48 »
Hm, I guess it's going to be slightly harder than I thought. I noticed you're using 0xFFC00000-relative stuff everywhere, that's going to cause trouble with my S5. Now, at least I can confirm that the S5 boots at least up to boot() in platform/a720/sub/100c/boot.c, after changing some addresses for my camera (the AF led lights, as 'debug led'). After that, it'll probably fail on the subsequent calls to 'A-series'-addresses, because everything needs to be offset for my camera.

Now, it looks like I won't receive my photo diode until tuesday, which sucks. I built a program which would read the 100 kB of 1.01a firmware I put in diskboot.bin and compare it with the firmware inside the camera, to see if there were any major differences in it... you never know, maybe the firmware is partially usable :) The value I'm blinking afterwards (human-readable) has at least the 13th bit set to 1, so I'm looking at 8096-16384 byte-differences in the first 100k only, that's 8-16% if the trend continues. I guess I really have to wait until I can make actual progress for my camera, too bad.

Edit: woohoo, I just stripped my current photo diode from my serial link cable and decided to tear up a couple of old headphones and try to attach the diode to that. I got some promising output, now I just hope the program on the wiki can properly interpret it (I get a strong, wide signal for 1 and a weak, narrow signal for 0).

Edit2: Ok, I just wrote a program that can read the high and low pulses based on a threshold from the last extreme and I got my first useful information from the dump. I even saw gaonisoy :) Now all I have to do is make it compatible with that crc16 thing, that surely does sound useful. Oh yes and I need to dump the firmware afterwards :p

Edit3: crc16 seems to work, I changed the batteries... it's dumping the firmware now. Let's hope it won't take long until I get some S5 stuff going :) ETA is 6 hours, it's doing 400 bytes per second now.
« Last Edit: 04 / January / 2008, 18:05:05 by DataGhost »

*

Offline jeff666

  • ****
  • 181
  • A720IS
Re: DryOS - some success
« Reply #29 on: 04 / January / 2008, 21:19:15 »
Quote
ETA is 6 hours, it's doing 400 bytes per second now.

And they say fiber optics were fast :D

Congratulations on your success. Seems like you'll have something to play for the weekend.

I've got some interesting news, as well. I spent the day not trying to get file access to work but instead to find a replacement for the (yet) missing taskCreateHookAdd.

Since the missing function adds a hook to the createTask function I traced it manually in IDA and checked for branches whose targets are runtime-determined and I actually found something. There is a pointer (0x1930) which is usually 0 but if it isn't the target is executed.

I made sure if the branch really takes place and checked where it comes from (by reading LR). This way I could make sure that the source of the branch is really CreateTask - it is. I also found out that the hooked function is passed a parameter that points to a task-table-entry which holds details about the spawn task - just like VxWorks.

Unfortunately I could not simply use the existing createHook function. It seems that the layout of the task-table has changed.

I found out this:
  • Each taskentry is 20*4 bytes long
  • (long*) +4 is the task-ptr
  • (long*) +6 points to the task name

A modified createHook recognized the "PhySw"-task but didn't manage to hook the replacement. Probably I'm missing some minor thing. I'll check it tomorrow.

Cheers.

 

Related Topics