V článku Rozšíření možností fotoaparátu díky Canon Hack Development Kitu jsem psal o problému s použitím CHDK se souborovým systémem FAT32 a SD kartách větších než 4 GB. V té době jsem se tomuto tématu dále nevěnoval z důvodu absence karty větší kapacity. Po nákupu nového 32 GB úložiště se ale situace změnila. Jak tedy problém s instalací CHDK na karty se souborovým systémem FAT32 vyřešit?
Prvotní je uvědomit si, jaké jsou limity SD karet a souborových systémů. Fotoaparáty Canon vyrobené do roku 2011 podporují zavádění firmware z SD karty formátované souborovým systémem FAT16. Tento souborový systém lze použít do maximální kapacity 4 GB, a proto je nutné pro větší úložná zařízení použít souborový systém FAT32.
V následujícím postupu bude popsáno zprovoznění automatického zavádění CHDK z karty o kapacitě 32 GB pro fotoaparát Canon PowerShot A710 IS.
Pro automatizovanou instalaci lze použít několik programů popsaných na stránkách projektu CHDK. Pokud budeme mít problémy s jejich funkčností, můžeme využít GNU Linux, a přípravu karty vykonat ručně.
Nejprve musíme na SD kartě vytvořit dva diskové oddíly. První, formátovaný souborovým systémem FAT16, bude sloužit k zavedení CHDK. Jeho velikost bude 10 MB. Druhý oddíl, formátovaný FAT32, bude určen k ukládání multimediálního obsahu fotoaparátem. Tento oddíl bude na SD zabírat zbytek kapacity.
1. Vložíme SD kartu do čtečky a rozdělíme obě diskové oblasti:
root@linux:/$ fdisk /dev/sdb
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Příkaz (m pro nápovědu): o
Created a new DOS disklabel with disk identifier 0x60810822.
Příkaz (m pro nápovědu): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Číslo oddílu (1-4, default 1):
First sector (2048-65535999, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-65535999, default 65535999): +10M
Created a new partition 1 of type 'Linux' and of size 10 MiB.
Příkaz (m pro nápovědu): t
Selected partition 1
Partition type (type L to list all types): 6
Changed type of partition 'Linux' to 'FAT16'.
Příkaz (m pro nápovědu): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Číslo oddílu (2-4, default 2):
First sector (22528-65535999, default 22528):
Last sector, +sectors or +size{K,M,G,T,P} (22528-65535999, default 65535999):
Created a new partition 2 of type 'Linux' and of size 31,2 GiB.
Příkaz (m pro nápovědu): t
Číslo oddílu (1,2, default 2): 2
Partition type (type L to list all types): b
Changed type of partition 'Linux' to 'W95 FAT32'.
Příkaz (m pro nápovědu): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
2. Zkontrolujeme vytvořené oblasti na SD:
root@linux:~/Downloads$ fdisk -l /dev/sdb Disk /dev/sdb: 31,3 GiB, 33554432000 bytes, 65536000 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 Disklabel type: dos Disk identifier: 0x60810822 Zařízení Zaveditelný Start Konec Sektory Size Id Druh /dev/sdb1 2048 22527 20480 10M 6 FAT16 /dev/sdb2 22528 65535999 65513472 31,2G b W95 FAT32
3. Naformátujeme první oblast jako FAT16:
root@linux:/$ mkdosfs /dev/sdb1 mkfs.fat 3.0.28 (2015-05-16)
4. Naformátujeme druhou oblast jako FAT32:
root@linux:/$ mkdosfs -F32 /dev/sdb2 mkfs.fat 3.0.28 (2015-05-16)
5. U první oblasti nastavíme příznak pro zavádění CHDK pomocí originálního firmware Canon:
root@linux:/$ echo -n BOOTDISK | dd bs=1 count=8 seek=64 of=/dev/sdb1 8+0 vstoupivších záznamů 8+0 vystoupivších záznamů 8 bajtů zkopírováno, 0,00483104 s, 1,7 kB/s
6. Připojíme první oblast do adresáře /mnt:
root@linux:/$ mount /dev/sdb1 /mnt
Do připojeného adresáře nakopírujeme soubory DISKBOOT.BIN, PS.FIR a vers.req z instalačního archívu CHDK.
7. Odpojíme první oddíl:
root@linux:/mnt$ umount /mnt
8. Připojíme druhou oblast do adresáře /mnt:
root@linux:/$ mount /dev/sdb2 /mnt
Do připojeného adresáře nakopírujeme z instalačního archívu CHDK celý adresář CHDK.
9. Odpojíme druhý oddíl:
root@linux:/mnt$ umount /mnt
10. Vyndáme SD kartu ze čtečky a zamkneme ji přepínačem na jejím boku.
V tuto chvíli máme SD kartu připravenu k použití. Vložíme ji do fotoaparátu, přepneme jej do režimu přehrávání a zapneme.
Na displayi bychom měli po několika sekundách vidět červené logo CHDK. Pokud tomu tak není, stiskneme tlačítko MENU a vybereme možnost upgrade firmware. Jestliže není k dispozici, přeskočili jsme v přípravě karty některý krok, nebo nelze tímto způsobem SD kartu pro náš fotoaparát připravit.

Pingback: Rozšíření možností fotoaparátu díky Canon Hack Development Kitu | brichacek.net