Powershot S95にCHDK導入
2014/10/19PowershotSシリーズの最後のCCD機ということで売らずに残してあるS95でインターバル撮影ができるようなので、ちょっとお試し。
参考: http://chdk.wikia.com/wiki/CHDK
PCはUbuntu12.04、32GBのSDHCカードをUSBカードリーダで接続した状態で作業。
- パーティションのチェック
- パーティションの作成
- ファイルシステム作成
- 起動設定と必要ファイルのコピー
こんな流れで。
▼パーティションのチェック
username@thinkpadt60:~$ mount
/dev/sdb1 on / type ext4 (rw,errors=remount-ro,user_xattr,discard)
proc on /proc type proc (rw)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/dev/sda1 on /mnt/sdb1 type ext4 (rw,errors=remount-ro)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/username/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=username)
/dev/sdc1 on /media/CANON_DC type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush)username@thinkpadt60:~$ ls -la /dev/sd*
brw-rw—- 1 root disk 8, 0 2014-10-19 10:12 /dev/sda
brw-rw—- 1 root disk 8, 1 2014-10-19 10:12 /dev/sda1
brw-rw—- 1 root disk 8, 16 2014-10-19 10:12 /dev/sdb
brw-rw—- 1 root disk 8, 17 2014-10-19 10:12 /dev/sdb1
brw-rw—- 1 root disk 8, 18 2014-10-19 10:12 /dev/sdb2
brw-rw—- 1 root disk 8, 21 2014-10-19 10:12 /dev/sdb5
brw-rw—- 1 root disk 8, 32 2014-10-19 10:12 /dev/sdc
brw-rw—- 1 root disk 8, 33 2014-10-19 10:12 /dev/sdc1username@thinkpadt60:~$ sudo umount /dev/sdc1
[sudo] password for username:
username@thinkpadt60:~$ ls -la /dev/sd*
brw-rw—- 1 root disk 8, 0 2014-10-19 10:12 /dev/sda
brw-rw—- 1 root disk 8, 1 2014-10-19 10:12 /dev/sda1
brw-rw—- 1 root disk 8, 16 2014-10-19 10:12 /dev/sdb
brw-rw—- 1 root disk 8, 17 2014-10-19 10:12 /dev/sdb1
brw-rw—- 1 root disk 8, 18 2014-10-19 10:12 /dev/sdb2
brw-rw—- 1 root disk 8, 21 2014-10-19 10:12 /dev/sdb5
brw-rw—- 1 root disk 8, 32 2014-10-19 10:12 /dev/sdc
brw-rw—- 1 root disk 8, 33 2014-10-19 10:12 /dev/sdc1username@thinkpadt60:~$ sudo fdisk -l
ディスク /dev/sda: 1000.2 GB, 1000204886016 バイト
ヘッド 81, セクタ 56, シリンダ 430671
Units = シリンダ数 of 4536 * 512 = 2322432 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
ディスク識別子: 0x9178b881デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 1 430672 976761556+ 83 Linuxディスク /dev/sdb: 64.0 GB, 64023257088 バイト
ヘッド 255, セクタ 63, シリンダ 7783
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000224e5デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 * 1 7460 59922418+ 83 Linux
/dev/sdb2 7461 7783 2594497+ 5 拡張領域
/dev/sdb5 7461 7783 2594466 82 Linux スワップ / Solarisディスク /dev/sdc: 31.9 GB, 31914983424 バイト
ヘッド 255, セクタ 63, シリンダ 3880
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 1 3881 31162880 c W95 FAT32 (LBA)
▼パーティションの作成
FAT32で1パーティション作ってあるので、2つに分割。
username@thinkpadt60:~$ sudo fdisk /dev/sdc
警告: DOS互換モードは廃止予定です。このモード (コマンド ‘c’) を止めることを
強く推奨します。 and change display units to
sectors (command ‘u’).コマンド (m でヘルプ): p
ディスク /dev/sdc: 31.9 GB, 31914983424 バイト
ヘッド 255, セクタ 63, シリンダ 3880
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 1 3881 31162880 c W95 FAT32 (LBA)コマンド (m でヘルプ): d
選択した領域 1コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
p
パーティション番号 (1-4): 1
最初 シリンダ (1-3880, 初期値 1):
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-3880, 初期値 3880): +10Mコマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
p
パーティション番号 (1-4): 2
最初 シリンダ (3-3880, 初期値 3):
初期値 3 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (3-3880, 初期値 3880):
初期値 3880 を使いますコマンド (m でヘルプ): p
ディスク /dev/sdc: 31.9 GB, 31914983424 バイト
ヘッド 255, セクタ 63, シリンダ 3880
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 1 2 16033+ 83 Linux
/dev/sdc2 3 3880 31150035 83 Linuxコマンド (m でヘルプ): t
パーティション番号 (1-4): 1
16進数コード (L コマンドでコードリスト表示): L0 空 24 NEC DOS 81 Minix / 古い bf Solaris
1 FAT12 39 Plan 9 82 Linux スワッ c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 隠し C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux 拡張領 c7 Syrinx 5 拡張領域 42 SFS 86 NTFS ボリュ da 非 FS デー 6 FAT16 4d QNX4.x 87 NTFS ボリュ db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux プレー de Dell ユーテ 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX ブート 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 ブート 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 拡張領 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC 11 隠し FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq 診断 61 SpeedStor a9 NetBSD f4 SpeedStor 14 隠し FAT16 <3 63 GNU HURD また ab Darwin ブー f2 DOS セカン 16 隠し FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 隠し HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI スワッ fd Linux raid 自 1b 隠し W95 FAT3 75 PC/IX bb 隠し Boot Wiz fe LANstep 1c 隠し W95 FAT3 80 古い Minix be Solaris ブー ff BBT 1e 隠し W95 FAT1 16進数コード (L コマンドでコードリスト表示): 1 領域のシステムタイプを 1 から 1 (FAT12) に変更しました コマンド (m でヘルプ): t パーティション番号 (1-4): 2 16進数コード (L コマンドでコードリスト表示): c 領域のシステムタイプを 2 から c (W95 FAT32 (LBA)) に変更しました コマンド (m でヘルプ): p ディスク /dev/sdc: 31.9 GB, 31914983424 バイト ヘッド 255, セクタ 63, シリンダ 3880 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 デバイス ブート 始点 終点 ブロック Id システム /dev/sdc1 1 2 16033+ 1 FAT12 /dev/sdc2 3 3880 31150035 c W95 FAT32 (LBA) コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 警告: DOS 6.x パーティションを作成、または変更してしまった場合は、 fdisk マニュアルの追加情報ページを参照してください。 ディスクを同期しています。
▼ファイルシステムの作成
username@thinkpadt60:~$ sudo mkdosfs -F 12 /dev/sdc1
mkdosfs 3.0.7 (24 Dec 2009)username@thinkpadt60:~$ sudo mkdosfs -F 32 /dev/sdc2
mkdosfs 3.0.7 (24 Dec 2009)
▼起動設定と必要ファイルのコピー
DISKBOOT.BIN、PS.FI2はパーティション1にコピー。
CHDKディレクトリはパーティション2にコピー。
(ここでは両方にコピーしているけど)
username@thinkpadt60:~$ cd Downloads/chdk/
username@thinkpadt60:~/Downloads/chdk$ echo -n BOOTDISK | sudo dd bs=1 count=8 seek=64 of=/dev/sdc1
8+0 記録始め
8+0 記録終わり
8 バイト (8 B) コピー終了, 0.00726625 s, 1.1 kB/susername@thinkpadt60:~/Downloads/chdk$ ls -la
合計 1000
drwxr-xr-x 3 username username 4096 2014-10-18 18:06 .
drwxr-xr-x 4 username username 4096 2014-10-18 17:54 ..
drwxr-xr-x 14 username username 4096 2014-10-18 12:49 CHDK
-rw-r–r– 1 username username 141193 2014-10-12 10:31 DISKBOOT.BIN
-rw-r–r– 1 username username 82192 2014-10-12 10:31 PS.FI2
-rw-r–r– 1 username username 2093 2014-03-17 11:20 changelog.txt
-rw-r–r– 1 username username 10465 2014-10-12 10:31 readme.txt
-rw-r–r– 1 username username 761530 2014-10-18 12:48 s95-100e-1.2.0-3659-full_BETA.zip
-rw-r–r– 1 username username 107 2008-08-02 04:52 vers.requsername@thinkpadt60:~/Downloads/chdk$ sudo mount /dev/sdc1 /mnt/usb/
username@thinkpadt60:~/Downloads/chdk$ sudo cp DISKBOOT.BIN /mnt/usb/
username@thinkpadt60:~/Downloads/chdk$ sudo cp PS.FI2 /mnt/usb/
username@thinkpadt60:~/Downloads/chdk$ sudo cp -r CHDK /mnt/usb/
username@thinkpadt60:~/Downloads/chdk$ sudo umount /dev/sdc1
username@thinkpadt60:~/Downloads/chdk$ sudo mount /dev/sdc2 /mnt/usb/
username@thinkpadt60:~/Downloads/chdk$ sudo cp -r CHDK /mnt/usb/username@thinkpadt60:~/Downloads/chdk$ ls -la /mnt/usb/
合計 36
drwxr-xr-x 3 root root 16384 2014-10-19 10:16 .
drwxr-xr-x 11 root root 4096 2014-10-18 12:55 ..
drwxr-xr-x 14 root root 16384 2014-10-19 10:16 CHDKusername@thinkpadt60:~/Downloads/chdk$ sudo umount /dev/sdc2
SDカードの作成はこれで完了。
CHDKディレクトリをパーティション2にコピーしないと各種スクリプトが使えなかった。
パーティションサイズを10MB取ったけど、DISKBOOT.BIN、PS.F12の2ファイルが入るサイズ確保すれば十分かも。
- SDカードをR/W可能状態でPLAYボタンを押し、[MENU]キー、[リング上]、[ファームウエアアップデート]、[1.1.0.0にアップデート]を選ぶと起動する
- SDカードをR/O状態で差しておくと、電源キーでCHDKが起動する
共に起動させた後シャッターボタン押下で撮影モートになる。
リングの左上のショートカットキーでALTモード切替。
通常撮影する場合は撮影モードにした後シャッター押せばこれまでどおり撮れる。
インターバル撮影のスクリプトを用使う場合、ALTモードにしてからシャッターを押下すると撮影が始まる。