Főoldal arrow Cikkek arrow Fotótechnikai csemegék arrow Canon kompakt gépek tudásnövelése: CHDK
Canon kompakt gépek tudásnövelése: CHDK
Írta: Nagy Sándor (nasa@http.hu)   
2008. április 18.

Minden digitális fényképezőgépben van egy (vagy több) processzor, gyakorlatilag egy mikroszámítógép. A gép működése, funkciói a gyárban beírt programnak köszönhetők, ami a gép kikapcsolt állapotában is megőrződik (firmware), bekapcsolásakor elindul, és  a gépen található kezelőszervekkel (gombok, kapcsolók, stb.) terelhető különböző irányba, a különböző feladatok megoldása érdekében. Ez a program új programrészekkel felülírva átalakítható. Maguk a gyártók néha új verziókat tesznek közzé (amit akár magunk is beírhatunk gépünkbe), ezzel kisebb-nagyobb programhibákat javítanak, esetleg új (rendszerint nem túl jelentős) funkciókkal bővítik a gép teljesítőképességét. Ügyes programozók ("hackerek") megfejtik egyes gépek firmware-ét, és nemhivatalos módosításokat írnak, amelyek esetleg jelentős új tudással bővítik. Mivel ezek feltöltése gépünkre átírja a firmware-t, ha a módosítás hibás, akár működésképtelenné is teheti azt. A CHDK projekt keretében készült program merőben másképp működik: nem írja át a firmware-t, csak a gép bekapcsolása után települ a (kikapcsoláskor törlődő) memóriába, igen jelentős új funkciókkal bővíti annak tudását, de a gép kikapcsolásakor nyomtalanul eltűnik. Feltöltésével nem kockáztatjuk gépünk működőképességét, garanciája érvényességét. Számos Canon kompakt fényképezőgéphez állnak rendelkezésre ilyen kiegészítő programok.

A CHDK egy nyitott forráskódú szoftver-fejlesztési projekt, amit Andre Gratchev kezdeményezett a DIGIC II processzoros Canon kompakt gépek firmware-ének kiterjesztésére, a gépek tudásának jelentős bővítésére. A betűszó elnevezést is ő adta (jelenlegi értelmezés szerint "Canon Hacker's Development Kit" - Canon hekkerek fejlesztő készlete). A kezdeményezéshez számos lelkes programozó csatlakozott, mára igen nagyszámú Canon géptípusra adaptálták (már DIGIC III processzorosakra is, és újabbakra van folyamatban az adaptáció), és egyre újabb, érdekesebb funkciókkal gazdagítják a lehetőségeket. A Világhálón elszórtan találhatók a különböző fejlesztési eredmények, de van összesítés róluk, onnan érdemes tájékozódni. A projekt rövid ismertetése, valamint a GYakran Ismétlődő Kérdések (FAQ) adnak áttekintést a projektről, egyúttal hasznos gyakorlati útmutatót is tartalmaznak, ha Canon kompaktunkon ki akarjuk próbálni valamelyik CHDK-változatot. A fényképezőgép kigészítő funkcióinak használatát külön útmutató segíti.

Kedvcsinálónak felsorolunk néhányat a CHDK nyújtotta új (vagy csak drágább gépen elérhető) szolgáltatások közül:

  • kép mentése RAW formátumban (a képérzékelőből kiolvasott eredeti információ, megkerülve a gép processzora által történő feldolgozást, tömörítést JPG fájlba), ami utólagos foldolgozással - némi többletmunka árán - jobb minőségű képet eredményezhet;
  • élő hisztogram megjelenítése, hatékonyan segíti az optimális megvilágítés beállítását;
  • "zebra-mód", a keresőképen a beégett, vagy túl sötét részek megjelölése villogtatással, szintén hatékony eszköz az optimális megvilágítás beállításához;
  • akkumulátor töltöttségi állapot kijelzés;
  • hosszabb és rövidebb expozíciós idők lehetősége (akár 1/25000s, vagy 1/60000s), műszaki-tudományos fényképezéshez, rendkívül érdekes képhatásokhoz (mintaképek rövid záridővel);
  • Megvilágítás-sorozat (exposure bracketing), fókusz-sorozat (sorozat éles tárgytávolság változtatással);
  • intervallum-sorozat ( periódikus felvételkészítés meghatározott időközönként);
  • exponálás vezérlés USB porton át;
  • videofelvétel hosszának, kompressziójának növelése;
  • parncsfájl (script) írás (egyszerű BASIC nyelven) és futtatás (kész parancsfájlok is vannak);
  • két géppel egyidejű exponálás (sztereofelvétel készítés).

A CHDK szoftver feltöltése gépünkre visszonylag egyszerű, ha létezik a Canon kompaktunk típusára és annak firmware verziójára megfelelő változat (ezek gyűjteménye itt). Az alkalmazandó eljárás főbb lépései az alábbiak (részletesebben a FAQ lapon):

  1. Megállapítjuk gépünk firmware-verzióját: A gép SD memória-kártyájára írunk (annak gyökér-könyvtárába, azaz a legmagasabb szintű könyvtárba) egy üres "ver.req" nevű fájlt, majd a kártyát a fényképezőgépbe téve, "Playback" (képvisszajátszás) módban bekapcsoljuk, és megnyomjuk a SET + DISP gombokat együtt (előbb a SET, majd azt lenyomva tartva DISP). A gép kijelzőjén megjelenik a verziószám.
  2. SD kártyára írjuk a világhálóról letöltött, gépünk típusának és firmware verziójának megfelelő CHDK program két fájlját, a "PS.fir" és "Diskboot.bin" nevű fájlokat (a gyökér-könyvtárba), csak maximum 2 GB kapacitású kártya használható erre a célra, de a két fájl kb. 210 kB helyet foglal, marad bőségesen hely a képfájloknak. Visszatesszük a kártyát a fényképezőgépbe.
  3. Kézzel feltöltjük a CHDK programot a fényképezőgépre: "Playback" módban bekapcsoljuk
    Forrás: http://chdk.wikia.com/wiki/CHDK_firmware_usage#HDK_firmware_splash_screen
    CHDK szoftver betöltés (boot) visszajelzése a monitoron
    a fényképezőgépet (a CHDK programot tartalmazó SD kártya már a gépben van), megnyomjuk a "MENU" gombot, kiválasztjuk a "Firm Update" menütételt, a kiválasztást megerősítjük "OK"-val (ha nem jelenik meg ez a menütétel, nem megfelelően másoltuk a fájlokat a kártyára, vagy nem megfelelően kapcsoltuk be a gépet). Ha mindent korrektül végeztünk, a gép memóriájába betöltődik a CHDK szoftver (újra "bootol" a gép) 1-2 másodperc alatt, egyszer felvillan a kék LED, majd megjelenik egy üzenet a monitoron ("firmware splash screen"), amely azonosítja a betöltött szoftvert (egy minta látható a képen). Ha bármilyen hiba (pl. nem kompatibilis CHDK verzió) miatt a gép lefagy, az akkumulátor kivételével-visszahelyezésével alapállapotba hozható (reset), visszatér működőképes állapotába.
  4. A CHDK használatához, paramétereinek beállításához jól illusztrált használati utasítás áll rendekezésre.
  5. Ha rendszeresen CHDK-módban kívánjuk használni gépünket, elérhetjük, hogy bekapcsoláskor automatikusan betöltődjön (bootoljon) a CHDK: Miután kézzel feltöltöttük a CHDK-t a fenti 3. szerint, lépjünk be az "ALT" módba (gépenként más-más gomb rövid megnyomása, "A" sorozatú gépeknél "Direct print" gomb, S2 IS és S3 IS gépeknél "Shortcut" gomb, részletesebben itt), "MENU" gomb megnyomásával belépünk a CHDK Főmenübe, kiválasztjuk a "Debug Parameters" menütételt, majd a "Make Card Bootable" tételt (látszólag semmi nem történik, de már majdnem kész). Kikapcsoljuk a gépet, kivesszük az SD kártyát, és a kártyán levő apró kapcsolót "Lock" állásba kapcsolva írásvédett állapotba kapcsoljuk (ettől függetlenül a gép tud rá írni képfájlokat!). Visszatéve az SD-kártyát a gépbe, minden bekapcsolás után automatikusan betöltődik a CHDK, mindaddig, amíg a kártyán az írásvédelmet ki nem kapcsoljuk. Természetesen másik, CHDK-fájlokat nem tartalmazó SD-kártyával is használhatjuk eredeti firmware-rel a gépünket.  Az automatlkus betöltés csak akkor működik biztonságosan, ha nem "Record", hanem "Playback" módban kapcsoljuk be.

Gépünk épsége, garanciája

Ezt a kérdést már röviden érintettük a cikk bevezető részében. Hogy mindenki számára világos legyen, tekintsük át három számítástechnikai fogalom pontos jelentését (elnézést azoktól, akik ismerik). 1. A hardver (magyarul néha "vas"-ként említik) maga az eszköz, az alkatrészek összessége. Önmagában is képes programszerű működésre, de ez a program a gyártás során kerül rögzítésre, a beépített logikai áramkörök és azok összekapcsolásának, huzalozásának szerkezete határozzák meg (akár nagy alkatrész-sűrűségű, nagyon nagy integráltságú (VLSI) integrált áramkörök formájában), véglegesen, megváltoztathatatlanul. Minden hardver tartalmaz ilyen "huzalozott " programot, ez adja azt az utasításkészletet, amit a másik két szint felhasznál. 2. A szoftver egy olyan ideiglenes program, amelyet a hardverre feltölthetünk, ez "fut" a hardveren, ideiglenesen meghatározza annak működését. Ideiglenesen, mert olyan tárolóba, memóriába kerül a feltöltéskor, aminek tartalma az eszköz kikapcsolásakor törlődik. De ideiglenes azért is, mert a felhasználó, változó feladatok végzéséhez, más-más programot tölthet az eszközre. 3. A firmvare (ejtsd: förmver; nincs elterjedt magyar megfelelője, szószerinti fordításban "szilárd áru"-nak nevezhető, míg az előzőek "kemény áru"-nak és "puha áru"-nak) az első kettő közötti átmenetet képez, a hardvert működtető tartós program. Tartós, mert olyan tárba töltik fel, rendszerint az eszköz gyártója, aminek tartalma nem törlődik az eszköz kikapcsolásakor sem. Abban a vonatkozásban is tartós, hogy többnyire az eszköz teljes élettartama alatt változatlan, mintegy a hardver része. De program, ami a memóriában át is írható, tehát nem teljesen "kemény", megváltoztathatatlan, csak "szilárd", amit legfeljebb ritkán változtatnak meg, és megváltoztatása, feltöltése is rendzerint körülményesebb, mint a szoftveré.

A fényképezőgépek szolgáltatásait megvalósító programot a gyártók firmware formájában töltik fel a gépre, és csak ritkán hoznak forgalomba újabb változatot. Ennek működése biztosítja a gép legalapvetőbb, a fotózást nem is közvetlenül  érintö funkcióit is (pl, a különböző kezelőszervek, gombok, kapcsolók állapotának érzékelését, beleértve akár a ki/be kapcsolót is). Ha ez meghibásodik (vagy eleve, bizonyos ritkábban használt ágon hibát tartalmaz, amit a gyártó a teszteléskor nem fedezett fel), a gép teljesen működésképtelenné is válhat (lefagyhat"), azaz akár még a ki/be kapcsolóra is érzéketlen lehet. Ilyen esetben a program alapállapotba hozása, "reszetelése" segít, ami többnyire a tápfeszültség drasztikus megszakítását, azaz a gép akkumulátorának kivételét, majd visszahelyezését jelenti. A firmware gyártó által közzétett új verzióját akár magunk is feltölthetjük a gépünkre (a gyártó honlapjáról letöltve, majd általában a gép memóriakártyájára írva), de a szervizek is megteszik helyettünk. A gyártó pontos leírást is közöl a feltöltés folyamatáról, amit betartva a művelet veszélytelen. Ha a folyamatban hibázunk, vagy az megszakad feltöltés közben (pl. az akkumulátor időközbeni lemerülése miatt - mindég teljesen feltöltött akkumulátorral kezdjünk hozzá), a gépben hibás firmware jöhet létre, gépünk véglegesen "meghibásodhat" (mert a firmware feltöltést is maga a firmware szervezi, tehát annak javítása már csak "gyárilag" oldható meg). Minden, nem a gyártó által készített firmware-változat feltöltése ugyanennek kockázatával jár, hiszen nem tudhatjuk, milyen gondossággal tesztelte azt készítője.

Most értünk a lényeghez (elnézést a hosszaú bevezetőért azoktól akiknek unalmas volt): A CHDK egyértelműen szoftver, nem pedig firmware. Nem változtatja meg a gépen levő firmware-t, nem a tartós tárba kerül (abban semmi változtatást nem eszközöl), hanem a kikapcsoláskor törlődő memóriába. Ha bármilyen hiba folytán (korábban már utaltunk ilyenre, pl. nem a gépünkkel kompatibilis CHDK-változatot próbálunk használni) gépünk működésképtelenné válik, "lefagy", legfeljebb az akkumulátor kivételével kell alapállapotba hozni. Ennek eredménye garantáltan az eredeti állapot visszaállítása, a CHDK, használatának minden hatása nyomtalanul eltűnik a gépről, akárcsak annak szabályos kikapcsolásakor.

Különböző fotós portálokon, fórumokon számos vita folyt (és folyhat jelenleg, vagy a jövőben is) a CHDK feltöltésének kockázatáról, a gép végleges meghibásodásának, a garancia elvesztésének veszélyéről. A CHDK fejlesztői természetesen kijelentik, hogy azt mindenki saját kockázatára használja, a készítők, terjesztők semmi felelősséget nem vállalnak (hiszen ez egy szabad, ingyenes szoftver). Ugyanakkor mindazt elmondják, ami itt is olvasható. A FAQ lapon olvasható egy e-mail váltás a Canon Technical Services részlegével. Ebben a cég képviselője kijelentette (hevenyészett fordításbvan): "Ennek az interneten levő a szoftvernek a vizsgáalta alapján úgy tűnik, hogy a CHDK nem okoz semmilyen tényleges változást az ön fényképezőgépén. Ha törli a CHDK szoftvert a memóroakártyájáról, vagy nem aktiválja a kártyán levő CHDK szoftvert (vagy kiveszi majd visszahelyezi az akkumulátort), a fényképezőgép teljesen szabályosan fog viselkedni - semmi és sohasem változik meg, tehát nem érinti a garanciát." Megnyugtató. Ugyanott egy fotós is tájékoztat arról, hogy A710 IS gépe javításra szorult, a "Play/Capture" kapcsoló felmondta a szolgálatot. Korábban CHDK-t használt, de természetesen a szoftvert tartalmazó SD kártyát kivette a gépből, amikor elküldte javításra. A megjavított gép melleti levél alkatrészcserét tanúsít, azaz hardver-hibára utal. A javítást költség-mentesen végezték, a garancia alapján.

Ki a hekker?

Még egy kérdést szeretnék tisztázni, ha már amúgy is mélyre ástuk magunkat az informatikai fogalmakban. A hekkert (Hacker) a wikipedia magyar változata egyértelműen az informatikai rendszerek biztonsági intézkedéseinek réseit kihasználó, a rendszerekbe "betörő" informatikus szakemberel azonosítja: "A Hacker kifejezés alatt olyan számítástechnikai szakembert értünk aki bizonyos informatikai rendszerek működését a publikus avagy a mindenki számára elérhető szint fölött ismeri. Ezáltal képes egy adott rendszerbe 'betörni', avagy amennyiben valamilyen motiváció hatására cselekszik, képes onnan információt a saját maga avagy mások számára eltulajdonitani." Az angol nyelvű wikipédia a szó három eltérő jelentését különbözteti meg, úgymint (számozás a szerzőtől - NaSa):  "Hacker (computing) has a spectrum of meanings: (1)  Hacker (computer security), someone who breaks computer and network security, (2) Hacker (free and open source software), a programmer in the free software and open source movement, (3) Hacker (hobbyist), an enthusiastic home computer hobbyist." Ismét csak hevenyészett fordításban: "Hekker (számítástechnika), három jelentésű: (1) Hekker (számítógép biztonság), olyan személy, aki feltöri számítógépek és hálózatok biztonsági rendszerét, (2) Hekker (szabad és nyílt forráskódú szoftver), a szabad szoftver és a nyílt forráskódú mozgalomban tevékenykedő programozó, (3) Hekker (hobbitevékenység), akinek elkötelezett szenvedélye az otthoni számítástechnikai tevékenység." A (2) jelentéshez kapcsolódó linket követve olvasható (már csak fordítását közöljük): "... a hekker szleng definíciója szerint 'a hekker olyan személy, akit szórakoztat a programozható rendszerek részletes megismerése, teljesítőképességük kiterjesztése, ellentétben a legtöbb felhasználóval, akik csak a legszükségesebb minimális ismeretek elsajátítására törekszenek.' ... megerősíti ezt a jelentést [egy másik definíció:] 'Olyan személy, aki élvezettel kerül bensőséges kapcsolatba a rendszerek, különösen számítógépek és számítógépes hálózatok belső működésével. Ezekre a  hekkerekre kiábrándítólag hat a tömegkommunikáció és az általános közfelfogás azon szóhasználata, amely szerint hekkerknek a biztonsági betörőket nevezik, szerintük azokat inkább "cracker"-eknek (feltörőknek, számítógépes kalóznak) kellene nevezni.'"

Azért tartottam fontosnak e kérdés tisztázását, nehogy valaki a biztonsági betörések művelőihez (számítástechnikai kalózokhoz) kösse a CHDK-t, sőt inkább kellő tisztelettel gondoljon a fejlesztőire, kiemelten a kezdeményező, Andre Gratchev munkájára. Ezeket a hekkereket a számítástechnikai kalózokkal szöges ellentétben, semmilyen rossz szándék nem motiválja, épp ellenkezőleg - egyáltalán nem apró munkájuk, fejlesztésük eredményét közzé teszik, minden potenciális felhasználónak térítés nélkül rendelkezésére bocsátják. Tevékenységük a gyártó cég érdekeit sem sérti, közvetve érzékelhető ez a Canon cég képviselőjének fentebb idézett mailjéből. Minden ilyen fejlesztés első lépése a gyári szoftver (ezesetben firmware) megfejtése (ami igen nagy, aprólékos munka), hiszen abba kell belenyúlni, annak részegységeit felhasználni, eredményeivel tovább dolgozni. Aligha tekinthető véletlennek, hogy éppen Canon kompaktokra született meg a CHDK projekt (tekinthetjük akár egyfajta mozgalomnak), bár indulásában meghatározó lehetett, milyen gépe volt Gratchevnek. A digitális gépek (mind a kompaktok, mind a tükörreflexesek) legnagyobb gyártója a Canon, a PwerShoot éa Ixus típusok a legelterjedtebb kompaktok világszertre. Bár minden géptípus firmware-je más, az ugyanolyan processzort tartalmazó gépek firmware-jében nyilván sok közös elem, részprogram van. Gratchev egy DIGIC II processzoros kompaktra készítette a CHDK első változatát, amit később ugyanezen processzort, valamint az újabb, DIGIC III processzort tartalmazó számos géptípusra és firmware-változatra adaptáltak.  

Személyes megjegyzés, kérés

A CHDK nem friss kezdeményezés (egyelőre nem sikerült pontosan azonosítanom a kezdetét), a figyelmemet egy friss cikk hívta fel rá. Nekem nincs Canon kompaktom, így kipróbálni nem tudtam, amit itt leírtam, mind csak olvasmányokból szerzett ismeret. Magyar fórumokon is találkoztam vele. Kedves Látogatók! Ha valaki már használta, vagy e cikk alapján kedvet kap hozzá és kipróbálja, kérem, ossza meg tapasztalatait az Agora látogatóival. Regisztrálás után írhat hozzászólást a cikkhez (ha netán hibát talál leírásomban, kérem korrigálja, de bármely kijelentésemet vitató észrevételt is szívesen fogadok). Ha netán élénk visszhangot vált ki a cikk, akár külön fórum-témát is nyithatunk!

Hozzászólások
HozzáadásKeresés
Install
Piszkos Freud (213.16.122.xxx) 2010-08-17 10:42:44

Nemrég tettem fel 2 gépre a CHDK-t. Használattal kapcsolatos tapasztalataimat esetleg pár hónap múlva fogom megosztani. Az installálásról néhány szót:

A cikk jól ismerteti a 2 lehetőséget (autoboot vagy manuális), azonban - valószínűleg azóta - rendelkezésünkre állnak más lehetőségek is a manuális bohóckodáson kívül az automatikus indításra:

1) Ha 2GB vagy kisebb kártyára szeretnéd felrakni a CHDK-t, akkor érdemes használni a CardTricks programot. Formáz, letölti a CHDK-t és felteszi a kártyára. Ráadásul formázás után automatikusan felteszi a ver.req file-t a root könyvtárba, ami ahhoz kell, hogy le tudd kérdezni a géped firmware verzióját. (CardTricks: http://chdk.wikia.com/wiki/CardTrick)

2) 2GB - 4GB között is használható, de ekkor már nem standard block mérettel formázza kártyát (ami általában nem gond), és elvileg ugyan úgy működik. (Az ok, hogy az autoboot funkció csak FAT16 tip. file rendszerből működik.)

3) 4GB felett két lehetőséged van. Vagy 2 partíciót hozol létr...
Köszönöm
Nagy Sándor (80.85.49.xxx) 2010-11-11 10:51:37

Köszönöm a kiegészítést, Piszkos Freud, a FotoAgora minden, a CHDK iránt érdeklődő olvasója nevében is! Örömmel fogadnánk, várjuk a CHDK használatával kapcsolatos tapasztalatokat is. Ha terjedelmesebb írás kívánkozik, esetleg illusztrációkkal, azt juttassa el hozzám e-mailben ( nasa@http.hu ), szívesen publikálom az Agorán! Sok örömet a CHDK hsználatához, és szép fényeket!
Hozzászólást csupán a bejegyzett felhasználó tehet hozzá!
 
< Előző   Következő >
Advertisement
Advertisement
Advertisement