Tuesday, January 13, 2009

How To: Installing CHDK from Ubuntu

I finally got around to putting CHDK (Canon Hacker's Development Kit, chdk.wikia.com) on my Canon PowerShot SD400 Digital Elph. It's actually a lot easier than what I thought it was going to be. I'll save anyone who reads this a few minutes of figuring out. Here is a three (basic) step how-to. I have used exhastive directions, so hopefully this is easy to follow. Just read it all over once, and then start going right down the list and you should do it without any hassles.
You will need:
- SD Card (anything larger than 4GB might have issues, see the CHDK site)
- SD Card reader for the computer (I found that my Toshiba card reader DID NOT work for this)
- hexedit (sudo apt-get install hexedit in a terminal will fetch it)

1) Check if your camera is supported and download CHDK
1. a. Get your firmware for your camera.
-Connect your SD card onto your computer
-Create two empty text files on the root directory of the card (not in any folders, just on the main part of the card). The files need to be named "ver.req" and "vers.req". My camera was old enough, it needed the "ver.req" text file. Newer cameras need the "vers.req" file. I found that it worked if I just had BOTH in there.
-Unmount the card, put it in your camera (right click on the SD Card on your desktop and press select "Unmount" to unmount the card)
-Power on, go to the "play" function on your camera, hold "Func / Set" and press "Disp"
-Write down what it says your Firmware version is (will be something like 1.01A, 1.01E, etc NOT 1.0.0.0 or 1.0.1.0)
1. b. Download CHDK for your camera (by the easiest method: autobuild site)
-Go to http://mighty-hoernsche.de/ (preferably in a different tab / window)
-Download the zip file for your camera model and your camera's firmware

2) Create a bootable SD Card and "install" CHDK
2. a. Create the bootable SD Card
-Connect your SD Card to your computer
-BACK UP ANY PICTURES OR MOVIES YOU WANT TO SAVE
-Unmount the card, put it in your camera
-Format the card using the function found in the camera's menu (this will ERASE EVERYTHING ON THE CARD)
-Connect your SD Card to your computer again
-open up a terminal
-type "sudo fdisk -l", figure out the "/dev/sd{letter}" of the SD Card (hint: look at the storage capacities)
-write down what you found out (for me, it was "/dev/sdb") and add a "1" to the end (again, for me, it was "/dev/sdb1")
-type "sudo hexedit /dev/sdb1" (replace with what you wrote above)
----press Enter / Return key
----type 40 (to take you to 0x40)
----press Tab key
----type "BOOTDISK"
----hold Ctrl and press the "x" key
----confirm you are saving and quitting hexedit
2. b. "Install" CHDK
-Unzip the file you downloaded for CHDK
-go to Places and then click on the SD card
-Copy the files from CHDK onto the SD card (do not place in any folders) (I had two files to copy "DISKBOOT.BIN" and "PS.FIR", some newer models will only need "DISKBOOT.BIN" apparently)
-Unmount SD card, take out of the reader (we will put it in the camera in just a bit)

3) Test CHDK
-Slide the "Lock" on the SD Card before you put it into the camera
-Put the SD Card in your camera, turn it on

There you go, you can now play around with CHDK. If you don't want to use CHDK, just unlock the SD Card and put it back in the camera. No harm to your camera. No hassle.