skip to Main Content

Magic Lantern makes Linux boot on Canon DSLRs

The skilled folks at Magic Lantern did another trick: booting Linux operating system on Canon DSLRs. And no, this is not a joke. It’s a proof of concept so far, a working prototype, never the less it is another big step in the right direction. Watch the video above to see Linux booting on a Canon camera.

From Magic Lantern:

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)

Back To Top