A2200 IS porting thread

  • 514 Replies
  • 81967 Views
Re: A2200 IS porting thread
« Reply #150 on: 01 / January / 2012, 19:07:35 »
Advertisements
OK, I'm having some problems trying to use all the space on my 8GB SD card. I've created 2 partitions on the card in Windows, using Minitool Partition Wizard Home Edition 7.0: A small 8MB FAT partition for CHDK, and a FAT32 partition filling the rest of the space.

Of course, Windows can't see the second partition, but a Ubuntu virtual machine running under VirtualBox can (the SD card is set as a "raw" disk in VirtualBox, which should provide total access to it). I've read from, and written to, both of these partitions under that virtual machine. I've also made the CHDK partition bootable using Cardtricks.

CHDK does indeed boot - but then complains there's insufficient space on the SD card. It's as if it can't see the second partition. Since the last week or so has been my first experience with CHDK it's entirely possible I'm doing all of this wrongly. It's also possible I need to partition / format the card on a "real" Linux machine and not a virtual one so, before I go wiping an old PC to install Linux on it, can someone confirm that this version of CHDK does indeed work properly on an SD card with 2 partitions?
The A2200 is a fairly new camera (released in 2011) and so does not need to be partitioned.  You can format it as FAT32 with one big partition and boot it that way.  In fact,  its possible the CHDK code does not even support dual partitions for that camera.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: A2200 IS porting thread
« Reply #151 on: 01 / January / 2012, 19:09:14 »
OK, I'm having some problems trying to use all the space on my 8GB SD card. I've created 2 partitions on the card in Windows, using Minitool Partition Wizard Home Edition 7.0: A small 8MB FAT partition for CHDK, and a FAT32 partition filling the rest of the space.
...

The A2200 can boot from a single FAT32 partition: DryOS R47 cameras can boot from SD card > 4GB without partitioning !!!!!!.

There are no needs to have two,neither does it support it (the support was left out since it didn't need it).

EDIT: waterwingz beat me to it :P

P.S. Check the link in this post to correctly put the BOOTDISK flag on the card (I don't know if cardtricks supports bigger cards)
« Last Edit: 01 / January / 2012, 19:11:42 by Nilinhim »

Re: A2200 IS porting thread
« Reply #152 on: 01 / January / 2012, 19:48:09 »
[edit: sorry, I misread the linked thread!]

Another question: What should I use in place of +/- in this version of CHDK? As that button acts as "up" when in CHDK menus, meaning I can't edit the user menu or perform certain other operations.
« Last Edit: 01 / January / 2012, 20:53:10 by Marko73 »

Re: A2200 IS porting thread
« Reply #153 on: 03 / January / 2012, 12:30:18 »
Anyone still trying to port 1.00D? I'm stuck. Would love to get some pointers from someone trying 1.00D porting.


Re: A2200 IS porting thread
« Reply #154 on: 03 / January / 2012, 18:18:14 »
Another question: What should I use in place of +/- in this version of CHDK? As that button acts as "up" when in CHDK menus, meaning I can't edit the user menu or perform certain other operations.

I don't know. I haven't used that feature yet. Do any suggestions from here work?

If not, any one knows where can I define the key for this action?

Anyone still trying to port 1.00D? I'm stuck. Would love to get some pointers from someone trying 1.00D porting.

Stuck where? With such general question I can only give you general pointers: Go trough For Developers wiki. Read how Add Support for new Firmware version to see where you can save some time and Adding Support for new Camera to see everything that needs to be done.

If nothing else, here is the diff for stubs_entry.S between 1.00B (1.00C) & 1.00D:

Code: [Select]
< //   Firmware Ver GM1.00B
---
> //   Firmware Ver GM1.00D
22c22
< // Firmware modemap table found @ff89353c -> ff88fde8 -> ff98d574 -> ffac1350 -> ffbe5140
---
> // Firmware modemap table found @ff89353c -> ff88fde8 -> ff98d574 -> ffac135c -> ffbe5148
35,36c35,36
< //DEF(levent_table                            ,0xffb97b94) // Found @0xffb97b94,          stubs_min = 0xffb97b94 (0xffb97b94)
< //DEF(FlashParamsTable                        ,0xffbe537c) // Found @0xffbe537c,          stubs_min = 0xffbe537c (0xffbe537c)
---
> //DEF(levent_table                            ,0xffb97b9c) // Found @0xffb97b9c, ** != ** stubs_min = 0xffb97b94 (0xffb97b94)
> //DEF(FlashParamsTable                        ,0xffbe5384) // Found @0xffbe5384, ** != ** stubs_min = 0xffbe537c (0xffbe537c)
42c42
< //DEF(zoom_status                             ,0x0000cb38) // Found @0xffac4a24,          stubs_min = 0x0000cb38 (0x0000cb38)
---
> //DEF(zoom_status                             ,0x0000cb38) // Found @0xffac4a30,          stubs_min = 0x0000cb38 (0x0000cb38)
54c54
< //void *vid_get_viewport_fb()      { return (void*)0x40546b80; } // Found @0xffb17310
---
> //void *vid_get_viewport_fb()      { return (void*)0x40546b80; } // Found @0xffb1731c
56c56
< //long hook_raw_size()             { return 0x014d2400; }        // Found @0xffb1a7d4
---
> //long hook_raw_size()             { return 0x014d2400; }        // Found @0xffb1a7e0
60c60
< //#define SD_READONLY_FLAG    0x00020000 // Found @0xffb56264, levent 0x90a
---
> //#define SD_READONLY_FLAG    0x00020000 // Found @0xffb5626c, levent 0x90a
62c62
< //#define USB_MASK            0x04000000 // Found @0xffb5628c, levent 0x902
---
> //#define USB_MASK            0x04000000 // Found @0xffb56294, levent 0x902
67,78c67,78
< //    { 0, KEY_MENU            ,0x04000000 }, // Found @0xffb561e4, levent 0x09
< //    { 1, KEY_UP              ,0x00001000 }, // Found @0xffb56214, levent 0x04
< //    { 1, KEY_RIGHT           ,0x00002000 }, // Found @0xffb5621c, levent 0x07
< //    { 1, KEY_DOWN            ,0x00004000 }, // Found @0xffb56224, levent 0x05
< //    { 1, KEY_LEFT            ,0x00008000 }, // Found @0xffb5622c, levent 0x06
< //    { 1, KEY_ZOOM_OUT        ,0x00010000 }, // Found @0xffb56234, levent 0x03
< //    { 1, KEY_ZOOM_IN         ,0x00020000 }, // Found @0xffb5623c, levent 0x02
< //    { 1, KEY_SET             ,0x00040000 }, // Found @0xffb56244, levent 0x08
< //    { 1, KEY_DISPLAY         ,0x00080000 }, // Found @0xffb5624c, levent 0x0a
< //    { 1, KEY_SHOOT_FULL      ,0x00000003 }, // Found @0xffb5620c, levent 0x01
< //    { 1, KEY_SHOOT_FULL_ONLY ,0x00000002 }, // Found @0xffb5620c, levent 0x01
< //    { 1, KEY_SHOOT_HALF      ,0x00000001 }, // Found @0xffb56204, levent 0x00
---
> //    { 0, KEY_MENU            ,0x04000000 }, // Found @0xffb561ec, levent 0x09
> //    { 1, KEY_UP              ,0x00001000 }, // Found @0xffb5621c, levent 0x04
> //    { 1, KEY_RIGHT           ,0x00002000 }, // Found @0xffb56224, levent 0x07
> //    { 1, KEY_DOWN            ,0x00004000 }, // Found @0xffb5622c, levent 0x05
> //    { 1, KEY_LEFT            ,0x00008000 }, // Found @0xffb56234, levent 0x06
> //    { 1, KEY_ZOOM_OUT        ,0x00010000 }, // Found @0xffb5623c, levent 0x03
> //    { 1, KEY_ZOOM_IN         ,0x00020000 }, // Found @0xffb56244, levent 0x02
> //    { 1, KEY_SET             ,0x00040000 }, // Found @0xffb5624c, levent 0x08
> //    { 1, KEY_DISPLAY         ,0x00080000 }, // Found @0xffb56254, levent 0x0a
> //    { 1, KEY_SHOOT_FULL      ,0x00000003 }, // Found @0xffb56214, levent 0x01
> //    { 1, KEY_SHOOT_FULL_ONLY ,0x00000002 }, // Found @0xffb56214, levent 0x01
> //    { 1, KEY_SHOOT_HALF      ,0x00000001 }, // Found @0xffb5620c, levent 0x00
92c92
< DEF(ctypes, 0xffb54b4a)
---
> DEF(ctypes, 0xffb54b52)
96c96
< NSTUB(AllocateMemory                          ,0xffaafd20) //101
---
> NSTUB(AllocateMemory                          ,0xffaafd2c) //101
115c115
< NSTUB(FreeMemory                              ,0xffaafd18) //101
---
> NSTUB(FreeMemory                              ,0xffaafd24) //101
133c133
< NSTUB(GetSystemTime                           ,0xffaafd78) //101
---
> NSTUB(GetSystemTime                           ,0xffaafd84) //101
144,146c144,146
< NSTUB(MoveFocusLensToDistance                 ,0xffb1366c) //102
< NSTUB(MoveIrisWithAv                          ,0xffaad658) //102
< NSTUB(MoveZoomLensWithPoint                   ,0xffaadd00) //102
---
> NSTUB(MoveFocusLensToDistance                 ,0xffb13678) //102
> NSTUB(MoveIrisWithAv                          ,0xffaad664) //102
> NSTUB(MoveZoomLensWithPoint                   ,0xffaadd0c) //102
155,156c155,156
< NSTUB(PutInNdFilter                           ,0xffaadb48) //102
< NSTUB(PutOutNdFilter                          ,0xffaadb6c) //102
---
> NSTUB(PutInNdFilter                           ,0xffaadb54) //102
> NSTUB(PutOutNdFilter                          ,0xffaadb78) //102
166c166
< NSTUB(SetAE_ShutterSpeed                      ,0xffb164e8) //102
---
> NSTUB(SetAE_ShutterSpeed                      ,0xffb164f4) //102
185,188c185,188
< NSTUB(_log                                    ,0xffb51670) //111
< NSTUB(_log10                                  ,0xffb51bb0) //112
< NSTUB(_pow                                    ,0xffb51d28) //114
< NSTUB(_sqrt                                   ,0xffb5394c) //  6
---
> NSTUB(_log                                    ,0xffb51678) //111
> NSTUB(_log10                                  ,0xffb51bb8) //112
> NSTUB(_pow                                    ,0xffb51d30) //114
> NSTUB(_sqrt                                   ,0xffb53954) //  6
210c210
< NSTUB(qsort                                   ,0xffaf64f4) //  6
---
> NSTUB(qsort                                   ,0xffaf6500) //  6


Re: A2200 IS porting thread
« Reply #155 on: 03 / January / 2012, 19:01:00 »
Another question: What should I use in place of +/- in this version of CHDK? As that button acts as "up" when in CHDK menus, meaning I can't edit the user menu or perform certain other operations.

I don't know. I haven't used that feature yet. Do any suggestions from here work?

Unfortunately not, I've tried every button on the camera, nothing seems to work for this particular feature :(

Re: A2200 IS porting thread
« Reply #156 on: 04 / January / 2012, 16:56:55 »
Another question: What should I use in place of +/- in this version of CHDK? As that button acts as "up" when in CHDK menus, meaning I can't edit the user menu or perform certain other operations.

I don't know. I haven't used that feature yet. Do any suggestions from here work?

Unfortunately not, I've tried every button on the camera, nothing seems to work for this particular feature :(

I'll try to substitute the +/- with a combination (like DISP + FUNC.SET for alt), but my free time has disapeared again, so it might take a while.

Re: A2200 IS porting thread
« Reply #157 on: 04 / January / 2012, 22:43:52 »
1.00D Porting Process:

Quote
Time to generate stubs 9.61 seconds
shooting.c:83:4: error: 'MODE_LIVE' undeclared here (not in a function)
shooting.c:86:4: error: 'MODE_SCN_BLUR_REDUCTION' undeclared here (not in a function)
shooting.c:103:4: error: 'MODE_DISCREET' undeclared here (not in a function)
C:\CHDK\gcc451\bin\gmake.exe[2]: *** [shooting.o] Error 1
C:\CHDK\gcc451\bin\gmake.exe[1]: *** [all-recursive] Error 1
gmake: *** [all-recursive] Error 1

This is the error I get when compiling with OPT_GEN_STUBS option in CHDK Shell and generates the attached stubs_entry.S

Can anyone tell me whether this is alright?


Re: A2200 IS porting thread
« Reply #158 on: 05 / January / 2012, 01:31:07 »
1.00D Porting Process:

Quote
Time to generate stubs 9.61 seconds
shooting.c:83:4: error: 'MODE_LIVE' undeclared here (not in a function)
shooting.c:86:4: error: 'MODE_SCN_BLUR_REDUCTION' undeclared here (not in a function)
shooting.c:103:4: error: 'MODE_DISCREET' undeclared here (not in a function)
C:\CHDK\gcc451\bin\gmake.exe[2]: *** [shooting.o] Error 1
C:\CHDK\gcc451\bin\gmake.exe[1]: *** [all-recursive] Error 1
gmake: *** [all-recursive] Error 1

This is the error I get when compiling with OPT_GEN_STUBS option in CHDK Shell and generates the attached stubs_entry.S

Can anyone tell me whether this is alright?

Looks like you didn't copy my declarations from include/camera.h

Re: A2200 IS porting thread
« Reply #159 on: 05 / January / 2012, 16:25:28 »
Looks like you didn't copy my declarations from include/camera.h

Huge D'oh on my part here!!!

I meant to say "include/modelist.h". I'm really sorry if I steered you in the wrong direction!

 

Related Topics