The team a Magic Lantern has done wonders for the filmmakers industry (and arguably for Canon as well). They made RAW shooting on DSLRs available, implemented a scripting language, and even improved the exposure and dynamic range of the Canon EOS line.
But announcing that the ML team managed to run a 3.19 Linux Kernel on several EOS cameras has the potential to make a huge difference in how apps are developed for cameras. Apps for cameras? yes. This may become a reality.
The announcement on the Magic Lantern forums says that:
We, the Magic Lantern Team, are very proud to present you a new milestone in DSLR customization!
LINUX ON CANON EOS CAMERAS!
(edit: after playing a game, making it look like an April’s fool, we can ensure: this is not a fake!)
Starting from our recent discovery about display access from bootloader, we thought, hey, we could now have full control of the resources from this embedded computer. At this stage, we knew what kind of ARM processor we have (ARM 946E-S), how much RAM we have (256MB/512MB depending on the model), how to print things on the display (portable code), how to handle timers and interrupts, how to do low-level SD card access on select models (600D and 5D3), and had a rough idea where to start looking for button events.
So, why not trying to run a different operating system?
We took the latest Linux kernel (3.19) and did the first steps to port it. As we have nearly zero experience with kernel development, we didn’t get too far, but we can present a proof of concept implementation that…
…boots the Linux kernel 3.19 on Canon EOS DSLR cameras!
– it is portable, the same binary runs on all ML-enabled cameras (confirmed for 60D, 600D, 7D, 5D2 and 5D3)
– allocates all available RAM
– prints debug messages on the camera screen
– sets up timer interrupts for scheduling
– mounts a 8 MiB ext2fs initial ramdisk
– starts /bin/init from the initrd
– this init process is a selfcontained, libc-less hello world
– next step: build userspace binaries (GUI, etc)
and no, it is not an April’s fool joke, it is totally real:
The message does mention that this basic code has been confirmed for 60D, 600D, 7D, 5D2 and 5D3, which is definitely happy news.
If the team manages to make the EOS line Linux compatible and open up the camera’s APIs to that OS, there is a lot that can be done with those camera both in terms of functionality, but probably also with pushing the core feature set of the camera to new places. Not to mention the rapid expansion of the developer team that can follow – developing for Linux is so much easier than working with low end firmware.
You can download the firmware here, but as always with third party firmware, you should be extra careful if you choose to test it.