User Tools

Site Tools


Porting guide

An attempt to create a high-level guide for how to port Magic Lantern to a new camera.

It's very important to note that at present, this guide is written by two people in the process of doing a new port (200D and RP specifically). We don't know (much of) what we're doing. That's the point - if you want to start a new port, you don't know what you're doing, either. But at present, it means these are going to be messy, confusing docs.

Requirements to get started

  • An unsupported cam (link to supported cams should go here)
  • A dev environment and ability to build ML (link to page holding links to how to setup source download and build (these pages already exist on wiki I think). Probably Qemu setup linked from here also? It's a soft req, you could in theory do without it…)
  • Reverse engineering tools (link to page holding links to recommended tools / tool categories. Prefer open / free tools where possible, documenting closed tools is less useful)

Porting process overview

  • Understanding ML (source tree structure, build process, high-level overview of boot process)
  • Early steps (link to page with: dump rom, Ghidra project setup, creating platform/XXD for a new cam)
  • Getting code running (don't know how to write this. Explain that this is already done for most/all D45678X cams and what this implies)
  • Showing something on the screen
  • Logging from the cam
  • … (digic-explorer? CONFIG_HELLO_WORLD build? Then what?)
porting/porting.txt · Last modified: 2021/01/04 22:10 by lorenzo353