MacBoot - a Card Preparer for Mac OSX


MacBoot is a Java application for OSX designed to make cards that will:

  1. automatically boot CHDK (if they are FAT16 or under certain circumstances FAT32)
  2. automatically boot DSLR hacks (such as Magic Lantern) on either Fat16 or Fat32 cards
  3. run CANON BASIC scripts

Broadly speaking it's the Mac equivalent of Pelican's EOSCard.

Note that MacBoot does NOT format cards, nor does it put any files there (except for the necessary "script.req" file needed for Canon BASIC scripts to run). All it does is write various strings to various locations in the boot sector of the card:

  1. "BOOTDISK" at location x'40' on FAT16 cards (for CHDK and DSLR hacks)
  2. "BOOTDISK" at location x'1E0' on FAT32 cards for CHDK on DryOS R47 or later cameras such as the A3300, SX150, SX220, SX230, IXUS220 and IXUS310. For an up-to-date list of such cameras see the bottom of the list on this page
  3. "BOOTDISK" at location x'5C' on FAT32 cards (for DSLR hacks)
  4. "BOOTDISK" at locations x'7A' and x'187A' on ExFAT cards (for DSLR hacks)
  5. "EOS_DEVELOP" at location x'2B' on FAT16 Cards (for DSLR hacks)
  6. "EOS_DEVELOP" at location x'47' on FAT32 Cards (for DSLR hacks)
  7. "EOS_DEVELOP" at locations x'82' and x'1882' on ExFAT cards (for DSLR hacks)
  8. "SCRIPT" at location x'1F0' (for Canon BASIC scripting)

For ExFAT cards it also recomputes the sector checksum and writes that back (twice).

Currently MacBoot works under all versions of OSX from Panther (10.3) to Mountain Lion (10.8). It also requires version 1.4 or later of the Java Runtime.

Note for Mountain Lion (10.8) and Mavericks (10.9) Users. Mountain Lion and Mavericks require root access to make changes to cards. As a result, MacBoot will fail with a "permission refused" message unless it has root access. To run MacBoot under Mountain Lion or Mavericks, download this zip file, put it in the same folder as Macboot and unzip it. You'll get a macboot.command script. Double-clicking the script will bring up a terminal window and sudo will ask you to type your logon password so MacBoot can get root access. MacBoot will run when you press return.

Canon Basic scripts

As well as enabling Canon Basic scripting (by writing the necessary "SCRIPT" string in the boot sector), the app also creates the necessary "script.req" file. To run scripts all you need to do is create a script and save it to the card under the name "extend.m".

See here for more about Canon Basic.

The image below shows MacBoot running. Click on any field for help about it.

To download the app (a single class file in a zip), click here. Double-Click on the class file to run the app.

Version History:

MacBoot has some extra features that can be enabled by changing its properties file, "macboot.properties", (which you will find in the same folder as the app once you've run it). The two main features are:

  • an option to increase the number of drives MacBoot searches (10 by default). For example to make it search 15 (because you have a lot of external drives) add the line:
    
       ndrives=15
    
  • a debug option that will cause MacBoot to display more information in the log. To turn it on, add the line:
    
       debug=yes
    
  • The properties file also lets you change the font used ('fontname=...') and remembers the size of the window 'height=...' and 'width=...').

    Comments, suggestions and bug reports welcome. Dave@zenoshrdlu.com.

    All my apps are freeware, but if you've found them useful and would like to thank the author, you can make a donation (for example £1, €1 or $1) to show your appreciation for the many hours spent working on them!

    For other SDM and CHDK-related stuff of mine, see here and here.