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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
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:
1 2 3 4 5 6 7 8 9 10 11 |
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:
1 2 |
root@linux:/$ mkdosfs /dev/sdb1 mkfs.fat 3.0.28 (2015-05-16) |
4. Naformátujeme druhou oblast jako FAT32:
1 2 |
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:
1 2 3 4 |
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:
1 |
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:
1 |
root@linux:/mnt$ umount /mnt |
8. Připojíme druhou oblast do adresáře /mnt:
1 |
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:
1 |
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