Embedded Development Infrastructure - edi
edi is a generic tool that helps you to streamline your embedded development infrastructure. By itself edi does not do a lot but together with a project configuration (examples: edi-pi, edi-cl and edi-var) it unfolds its potential and you can build
artifacts like full OS images that can be directly flashed to a device,
artifacts that allow you to update your device over the air,
Linux containers that serve as a digital twin of the device and can be used for development, build automation, testing and even container based deployments and
nice documents about the content of your artifacts
in a reproducible manner that easily fits into a modern, automated development workflow.
edi is proven in use and OS and container images generated by edi are running on 250k+ devices all around the world! edi project configurations can easily be adjusted to individual use cases and additional hardware devices. The setup is designed in a way that it scales up to large development projects.
Instead of reinventing the wheel, edi leverages best of breed open source technologies:
Ansible is the tool of choice for doing the configuration management.
LXD allows you to run multiple OS instances on your development host. For complex target system deployments LXD is a great choice too.
Yaml and Jinja2 are the consistent way to write edi configuration files and Ansible playbooks.
Python is the language and ecosystem that makes the system integration efficient.
edi is supposed to be used on the Ubuntu Linux or Debian Linux distribution.
By default, edi generates Debian Linux based target systems.
License
edi is licensed under the LGPL license.
Contributions
You are welcome to contribute to edi. In case of questions you can contact me by e-mail (lueschem@gmail.com).
More Information
For more information please visit https://www.get-edi.io.