MacBoot - a Card Preparer for Mac OSX
MacBoot is a Java application for OSX designed to make cards that will:
- automatically boot CHDK (if they are FAT16 or under certain circumstances FAT32)
- automatically boot DSLR hacks (such as Magic Lantern) on either Fat16 or Fat32 cards
- 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:
- "BOOTDISK" at location x'40' on FAT16 cards (for CHDK and DSLR hacks)
- "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
- "BOOTDISK" at location x'5C' on FAT32 cards (for DSLR hacks)
- "BOOTDISK" at locations x'7A' and x'187A' on ExFAT cards (for DSLR hacks)
- "EOS_DEVELOP" at location x'2B' on FAT16 Cards (for DSLR hacks)
- "EOS_DEVELOP" at location x'47' on FAT32 Cards (for DSLR hacks)
- "EOS_DEVELOP" at locations x'82' and x'1882' on ExFAT cards (for DSLR hacks)
- "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) onwards. It also requires version 1.4 or later of the Java Runtime.
Note that starting with Mountain Lion OSX requires 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 recent versions of OSX, double-click the macboot.command script. 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.
Note that the password will NOT be displayed when you type.
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:
- version 1.11X - January 2018 - recompile to remove java class incompatibility
- version 1.11- October 2016 - support Sierra (OSX 10.12)
- version 1.10- September 2016 - support 256GB cards
- version 1.09- February 1st 2012 - make FAT32 cards CHDK-bootable
- version 1.08a- January 26th 2012 - ensure ExFAT cards recognised on Lion
- version 1.08 - December 27th 2011 - fix bugs affecting large (SDXC) cards
- version 1.07 - November 10th 2011 - deal with Lion 128GB ExFAT cards
- version 1.06 - July 21st 2011 - allow cards up to 128GB
- version 1.05 - January 26th 2011 - fix FAT16/FAT32 confusion
- version 1.04 - January 14th 2011 - allow maximum card size to be adjusted via on-screen choice
- version 1.03 - January 12th 2011 - deal with exFAT cards
- version 1.02 - January 6th 2011 - deal properly with DSLR-bootable and FAT32 cards
- version 1.01 - December 22nd 2010 - deal with card > 16GB and properly exclude TB-sized hard disks
- version 1.00 - December 21st 2010
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:
ndrives=15
debug=yes
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.