Skip to main content

Canon SD1000 (IXUS 70) CHDK installation

Ingredients:
Canon SD1000
SD card > 4GB (in our case, we have an 8GB microSD)
A Linux computer

First, figure out the firmware. I created a file, ver.req and put it in the root of the SD card. Turn on the camera and press FUNCSET and DISP simultaneously.

In our case, we have 1.02A firmware, so get that version of CHDK.

Unpack CHDK.

Now, to set up the SD card. Refer to: http://chdk.wikia.com/wiki/Prepare_your_SD_card.

The SD1000 was released before 2011, it seems, so it needs a FAT16 bootable partition. Since we have an 8GB card, we thus need to configure it to have 2 partitions.

I tried to set up the card with the STICK utility, but failed. So I used Linux to set up the card manually.

Refer to: http://chdk.wikia.com/wiki/CHDK_and_SD_cards_greater_than_4GB_%288GB,_16GB,_32GB,_64GB%29

I'm just going down the line of instructions and adding notes where necessary.

1. Find where the SD card is mounted (on my system, it was /dev/mmcblk0)

 sudo fdisk -l

2. Modify the filesystems/partitions in fdisk

 sudo fdisk /dev/mmcblk0

 o (create empty dos partition table)

I did 'w' to write the partition table and then reluaunched fdisk

3. Create the 2 partitions

FAT16 partition that will be made bootable (2048 was the start block; I couldn't set it to 1 like in the wiki article because it wasn't available):

 n,p,1,2048,+10M

then the FAT32 partition:

 n,p,2,[enter],[enter]

4. Set first partition to FAT16, second partition to FAT32

 t,1,6
 t,2,b

5. Write changes

 w

6. Write filesystem to partition 1

 sudo mkdosfs /dev/mmcblk0p1

7. Write filesystem to partition 2

 sudo mkdosfs -F32 /dev/mmcblk0p2

8. Make partition 1 bootable

 echo -n BOOTDISK | dd bs=1 count=8 seek=64 of=/dev/mmcblk0p1

9. Clone partition 1

 sudo sfdisk -uS -N3 -f /dev/mmcblk0

10. Partition 1's start, size, and id are:

 2048 20480 6

11. Change the partition 1 id to 5

 sudo sfdisk --id /dev/mmcblk0 1 5

Now if I do 

 sudo fdisk -l

I see:

Disk /dev/mmcblk0: 7964 MB, 7964983296 bytes
4 heads, 16 sectors/track, 243072 cylinders, total 15556608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5ea82522

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048       22527       10240    5  Extended
/dev/mmcblk0p2           22528    15556607     7767040    b  W95 FAT32
/dev/mmcblk0p3            2048       22527       10240    6  FAT16

12. Now mount partition 3 (mmcblk0p3) somewhere. I chose /mnt/usb.

 sudo mount /dev/mmcblk03 /mnt/usb -o uid=1000,gid=1000,flush

13. Copy BOOTDISK.BIN, PS.FIR (there was no PS.F12), vers.req to /mnt/usb

14. umount /mnt/usb

15. Mount partition 2 (mmcblk0p2) to /mnt/usb.

 sudo mount /dev/mmcblk03 /mnt/usb -o uid=1000,gid=1000,flush

16. Copy the CHDK directory to /mnt/usb.

17. Eject the card and lock it. (Since we are using a microUSB, I set the lock on the SD adapter.) Put card in the camera and turn it on.

18. Success! CHDK boots automatically.

Comments

Popular posts from this blog

Compiling pgmodeler on Yosemite (with Homebrew)

Refer to  pgmodeler installation . Steps: Clone the pgmodeler git repo. Use Homebrew to install qt5 (5.4.2, see here ), libxml2, and postgresql. Edit the pgmodeler.pri (not .pro) file and change these variables: PGSQL_LIB = /usr/local/opt/postgresql/lib/libpq.dylib PGSQL_INC = /usr/local/opt/postgresql/include XML_INC = /usr/local/opt/libxml2/include/libxml2 XML_LIB = /usr/local/opt/libxml2/lib/libxml2.dylib Follow instructions to compile pgmodeler (you might need to put Qt's binaries in your PATH. I was lazy and didn't). $ /usr/local/opt/qt5/bin/qmake pgmodeler.pro $ make $ make install $ cd /Applications $ /usr/local/opt/qt5/bin/macdeployqt pgmodeler.app -executable=pgmodeler.app/Contents/MacOS/pgmodeler-ch -executable=pgmodeler.app/Contents/MacOS/pgmodeler-cli Then I was able to do $ open pgmodeler.app

pgmodeler build in Debian Jessie

This is my qmake version: $ qmake -v QMake version 3.0 Using Qt version 5.3.2 in /usr/lib/x86_64-linux-gnu I had to edit linuxdeploy.sh: 1. Add "-makefile" to the QMAKE_ARGS variable: $ qmake -h Usage: /usr/lib/x86_64-linux-gnu/qt5/bin/qmake [mode] [options] [files] where mode is either "-makefile" (default) or "-project" QMAKE_ARGS="-makefile -r -spec linux-clang" 2. Right before "Running qmake...", I added another line to include pgmodeler.pro in the qmake invocation: QMAKE_ARGS="$QMAKE_ARGS pgmodeler.pro" Then I ran ./linuxdeploy.sh -no-qt-libs (https://github.com/pgmodeler/pgmodeler/issues/674)

The end of summer

It's been a wild year. Gains and losses. COVID-19 and the shelter in place. Lately, fires. Today was a very dark day, literally. For about half the daylight hours, there was so much ash in the air that it looked like it was close to sunset, but it was definitely not anywhere near as beautiful. Red sun following us everywhere. Bubonic plague found on fleas in Lake Tahoe. The list goes on and on. Everyone is tired. Exhausted. Burnt out. There is no respite, just a new normal that seems like an even steeper climb than before. Sleep gives way to another day with no refreshment. Yes, that's how things seem. But there have also been bright moments. Time spent with family, especially with the little one. Growing and nurturing plants, building things, trying new recipes, going to the store to shop for dinner, reading books, coloring with crayons... We grow closer together, weaving together a blanket of love and memories that we wrap ourselves in.