Magic Lantern-ontwikkelaars krijgen Linux-kernel draaiend op Canon-dslr

0
352

De ontwikkelaars van Magic Lantern hebben het voor elkaar gekregen de laatste Linux-kernel op een Canon EOS dslr-camera te booten. Het is slechts proof of concept, aangezien de ML-ontwikkelaars naar eigen zeggen verder geen ervaring hebben met kernel-ontwikkeling.

Omdat de ‘bekendmaking’ op 1 april plaatsvond, deed het ontwikkelteam eerst alsof het om een grap ging, maar de ontwikkelaars verzekeren nu op het Magic Lantern-forum dat het toch echt is. De zoektocht kwam niet zomaar uit de lucht vallen. Recentelijk vond ontwikkelaar g3gg0 een mogelijkheid om bij Canon-dslr’s de bootloader via het lcd-scherm te bereiken, waarbij het als handig gezien werd om gebrickte camera’s te onderzoeken, maar ook om zelf wat aan low-level-engineering te doen.

Omdat bekend is welke ARM-processor er in de camera’s zit, hoeveel ram ze hebben en hoe tekst op het display weer te geven, gingen de ontwikkelaars aan de slag. Ook wisten ze hoe ze de timers en de interrupts moesten bedienen en hoe ze low-level sd-kaarttoegang konden krijgen op verschillende modellen en daarnaast hadden ze een globaal idee hoe te zoeken naar bepaalde toetscombinaties.

Na wat ‘gepiel’, lukte het om Linux-kernel 3.19 te booten op camera’s die Magic Lantern draaien. Dezelfde binary draait op de 60D, 600D, 7D, 5D2 en 5D3. Alle ram wordt toegewezen, debug-meldingen worden weergegeven op het lcd-scherm en timer interrupts worden opgezet. Daarnaast wordt een 8MB ext2fs-ramdisk gemount en wordt /bin/init gestart van de initrd en is deze opzichzelfstaand. De volgende stap is om een gui te bouwen.