The Eclipse Leda project will provide system image “recipes” to deliver a functional Linux-based image/distribution in the context of SDV (Software Defined Vehicle), by pulling together individual contributons from the SDV and the larger OSS community.
The Eclipse Leda distribution will work with build scripts, package definitions, image build pipelines, etc, with the goal to pull SDV projects and dependecies from the larger OSS community into a working Linux system. Such system images (or other useful forms of delivery, as determined by the project) will be made available for consumption for anyone who is interested in working with the SDV tech stack. These deliveries take the form of container (base) images, installable/flashable image files, etc (again to be evolved by the project team according to community needs). Also in scope is concise and useful documentation for consumers of the project’s deliverables, plus a method of delivering that documentation.
In the context described above - the ambition of SDV to build a technology ecosystem for software-defined vehicle concern - a prime challenge will be the combination of these initially diverse components into a coherent and useful whole: all the software components in the world will not have the impact needed to transform the automotive industry unless we can make them play together coherently an form a functional portfolio. As a first step towards that goal, this proposal (Eclipse Leda) is for a “SDV distribution” project that pulls together individual contributor pieces from SDV and the larger OSS community, to deliver a functional and always-available Linux-based image/distribution with two primary goals:
be the crystalization point for functionally integrating diverse SDV-scope projects into a working whole
deliver a continually available, always working starting image for developers interested in getting going with the SDV tech stack
1 - Architecture
Runtime Overview
The runtime overview shows the general layer architecture for the runtime of the SDV edge stack as implemented by the Leda quickstart image.
Dotted lines indicate out-of-scope components. They may be non-Edge components (such as cloud services, or SDKs and additional development tooling for vehicle applications). Dotted lines for in-vehicle edge components indicate that they may be used, but are not pre-installed or pre-configured on the Leda quickstart image.
Deployment Overview
Eclipse Leda can be used in different deployment scenarios: on physical hardware, on virtual machines or installed on existing Linux distributions.
Depending on the specific deployment, some features may not be applicable. Each deployment option is meant for different uses. The applicabability
depend to your specific requirements.
Option 1: Hardware - Suitable for proof-of-concepts, system integration tasks, access to actual physical actuators and sensors.
However, an automated setup is much harder to realize, as additional hardware for remote controlling of power supply is needed.
The constrained environment of a physical device is good to verify accidental assumptions made by application developers,
such as resource consumptions (CPU, memory) or the existence of Linux tools, Kernel modules or device drivers.
Option 2: Docker Containers - Good for quick startup and throw-away (ephemeral) uses, such as automated system testing or one-off troubleshooting.
The access to physical hardware is limited and more complicated to set up. QEMU provides emulation of devices, such as CAN-Bus.
Due to multiple nesting of abstraction technology (Docker + QEMU + OS), additional configuration of networking and device pass-thrus are necessary.
It’s easy and cheap to spin-off many separate instances to simulate a whole vehicle system with multiple vehicle computers and
simulated ECUs in the same vehicle network.
Option 3: Package Installation - Good for existing devices with feature-rich functionality where the original OS should be used.
Leda does not support self-update for this deployment option, as it relies on the master OS distribution channels.
The constraints of an embedded device are not replicable easily on a PC-style host machine without additional effort.
Package installation is good when the focus is on exploring the Vehicle Applications, SDKs, Vehicle Signal Abstractions etc.
Option 1: Hardware
Option 2: Docker Containers
Option 3: Package Installation
Target use case
PoC
Automation
Existing devices
Cloud communication
++
++
+++
Automation
–
+++
++
Device provisioning
++
++
+++
Access to hardware
+++
-
++
Container isolation
+++
++
+++
Network flexibility
+++
-
++
Self update
+++
+
–
Realistic constrains
+++
-
-
Build Environment Overview
2 - Features
Publish/Subscribe messaging infrastructure for cloud connectivity by Eclipse Kanto
local messaging for applications and SDV system components via an MQTT message broker
connection to a backend messaging hub, such as Azure IoT Hub or the IoT Suite
device identification and authentication for cloud connectivity by using TLS device certificates
Container runtime
An OCI-compliant container orchestration for vehicle applications and services by Eclipse Kanto
containerd.io as the default container runtime. Both layers of container runtimes can be exchanged with other implementations
A Vehicle Update Manager to orchestrate deployments of Vehicle Applications, configurations and base operating system updates
An example Vehicle Seat Service implementation to showcase
An OpenTelemetry collector and example configurations to collect and publish logs and metrics of containerized Vehicle Applications to the cloud backend for further processing
The features of the reusable build recipes implemented as an OpenEmbedded metalayer meta-leda are:
Build recipes for a Yocto-based distribution to build SDV-related software components
Build recipes for customizations of the target device’s storage structure to enable A/B system updates
Build recipes for pre-packaging container images into the device during the manufacturing process to minimize initial online provisioning time
A customized minimal setup for use on constrained devices and a full setup with convenient developer tools
Ready images for virtual devices, for automated testing and evaluation purposes, eg QEMU ARM-64
Ready images for physical devices, for evaluation and demo purposes, eg Raspberry Pi 4
3 - Goals
The project aims to provide an integration point for Open Source components for the Software Defined Vehicle ecosystem.
In a complex architecture, there are many different ways of implementations and alternative solutions possible.
For embedded vehicle computer systems and their software stack, there are a lot of requirements to consider, depending on the actual use cases:
Integration and High-Level Testing (System Integrators, Suppliers)
Open Source Collaboration (Developers, OEMs, ISVs, Open Source Organizations, Standardization Organizations)
Some of the requirements derived from the above are taken into account for Leda’s quickstart setups.
Thereas some other requirements can only be met once the project is in a nearer production environment and by customizing the target device image.
The following document will list some of these requirements and give an explanation on why they are set as goals in the Leda quickstart distribution.
Overview
Provide an example operating system build and configuration for constrained in-vehicle devices:
Suppliers and system integrators want a way to cusomize and optimize the base operating system as much as possible.
This is to achieve a high efficiency, high level of reuse and cost benefits of the planned hardware.
The build system for the operating system, and the selection of the underlying distribution is key to the convenience for new users,
but also commercially a business decision with an impact on the future maintainability of the platform.
The Yocto Project has been chosen as an established de-facto standard for customized Linux distributions for embedded systems.
Leda provides an OpenEmbedded Meta-Layer, which can be used with many existing SDKs of SoC manufacturers.
Additionally, Leda will strive for being easy to install on low-cost “evaluation boards” such as the Raspberry Pi,
or development environments such as a virtual machine in the cloud.
Integrate software-defined-vehicle Open Source components to showcase the available features and their state of maturity:
The SDV ecosystem will grow and a lot of new software projects will be needed to solve the current problems and challenges.
The Eclipse SDV ecosystem already contains many software packages, which independently make sense for their set goals.
With Leda, we want to increase the integrational aspect, helping project leads, developers, contributors, users and architects
to evaluate the SDV portfolio, how it can be integrated with each other and how a possible reference architecture implementation might be loooking like.
Demonstrate the use and interaction of open protocols and specifications:
OpenTelemetry specs and components, to show the possibilities of applying DevOps methodologies and technologies
to operate, monitor and maintain fleets of vehicles and their distributed software applications
Eclipse IoT related specifications for software rollouts and digital twin representations
4 - Roadmap
Initial Open Source contribution expected by Q2 2022 (Done)
A first milestone build is expected end of 2022 (Done)
Plan for the first release cycle to be created in Q1/2023 (In Progress - Q2/2023)
Release cycles are planned every 3-6 months
Release planning will be conducted together with corresponding Eclipse projects
First pre-release of Eclipse Leda quickstart images, based on Yocto LTS release
Kirkstone with Long Term Support until at least April 2024.
Minimal feature set to run software-defined-vehicle applications (such as Eclipse Velocitas apps) using COVESA Vehicle Signal Specification
and the Eclipse Kuksa.VAL Databroker on virtual devices (QEMU), in Docker,
or on physical consumer-grade devices (Raspberry Pi 4 64-Bit) for development, demonstration and prototyping purposes.
Includes example applications from Kuksa:
Example Seat Service
Example HVAC Service
DBC Feeder replays a Tesla Model 3 CAN-Dump and feeds it into Kuksa.VAL Databroker
Switched to a BitBake build using kas for layer management
Added automated system tests using Robot framework and Dockerized environments
General cleanup of recipes, dependencies and structuring of the meta-leda sublayers to improve reusability
Automatic deployment of containers based on container manifests with ad-hoc updates (filewatcher in kanto-auto-deployer)
Preparation for AirGap installation of containers
General improvements, such as Wifi network management
Known Issues
The following issues were known to the development team before starting the 0.1.0-M1 build cycle.
They have been prioritized as non-critical and may be fixed for later releases.
Rule: OCaaS Policy A9 License with no classification
Message: The license LicenseRef-scancode-biosl-4.0 found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is not categorized and / or evaluated for usage.
Evaluation: This license seems to be detected incorrectly by the tool being used, as it is an internal, proprietary license which is not used in the Eclipse Leda project.
Incorrectly detected license “GPL-1.0” for ORT configuration file
Rule: OCaaS Policy C1 Strict Copyleft
Message: License GPL-1.0-only found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is categorized as strict-copyleft which must not be used for BT11 Open Source Development service applications.
Evaluation: The scan tool incorrectly detects its own configuration file (.ort.original.yml) as being licensed under GPL-v1.0
Incorrectly detected license “GPL-2.0-only” for standard Leda license header (which is Apache Software License)
Rule: OCaaS Policy C1 Strict Copyleft
Message: License GPL-2.0-only found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is categorized as strict-copyleft which must not be used for BT11 Open Source Development service applications.
Evaluation: The scan tool incorrectly detects the Apache License header as GPL-2.0 license text
Incorrectly detected license “proprietary”
Rule: OCaaS Policy C3 Commercial
Message: License LicenseRef-scancode-proprietary-license found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is categorized as commercial and requires special handling.
Evaluation: The scan tool incorrectly detects its own configuration file (.ort.original.yml) as being licensed under proprietary licenses.
First pre-release of Eclipse Leda quickstart images, based on Yocto LTS release
Kirkstone with Long Term Support until at least April 2024.
Minimal feature set to run software-defined-vehicle applications (such as Eclipse Velocitas apps) using COVESA Vehicle Signal Specification
and the Eclipse Kuksa.VAL Databroker on virtual devices (QEMU), in Docker,
or on physical consumer-grade devices (Raspberry Pi 4 64-Bit) for development, demonstration and prototyping purposes.
Includes example applications from Kuksa:
Example Seat Service
Example HVAC Service
DBC Feeder replays a Tesla Model 3 CAN-Dump and feeds it into Kuksa.VAL Databroker
Change log 0.1.0-M2
Remove skopeo dependency from packagegroup-sdv-tools.bb
Fix typo in SRCREV_FORMAT for pahocpp
dd kernel config for RAUC stream mode to raspberrypi4-64 and qemuarm64
Switched to a BitBake build using kas for layer management
Added automated system tests using Robot framework and Dockerized environments
General cleanup of recipes, dependencies and structuring of the meta-leda sublayers to improve reusability
Automatic deployment of containers based on container manifests with ad-hoc updates (filewatcher in kanto-auto-deployer)
Preparation for AirGap installation of containers
General improvements, such as Wifi network management
Known Issues
The following issues were known to the development team before starting the 0.1.0-M1 build cycle.
They have been prioritized as non-critical and may be fixed for later releases.
Rule: OCaaS Policy A9 License with no classification
Message: The license LicenseRef-scancode-biosl-4.0 found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is not categorized and / or evaluated for usage.
Evaluation: This license seems to be detected incorrectly by the tool being used, as it is an internal, proprietary license which is not used in the Eclipse Leda project.
Incorrectly detected license “GPL-1.0” for ORT configuration file
Rule: OCaaS Policy C1 Strict Copyleft
Message: License GPL-1.0-only found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is categorized as strict-copyleft which must not be used for BT11 Open Source Development service applications.
Evaluation: The scan tool incorrectly detects its own configuration file (.ort.original.yml) as being licensed under GPL-v1.0
Incorrectly detected license “GPL-2.0-only” for standard Leda license header (which is Apache Software License)
Rule: OCaaS Policy C1 Strict Copyleft
Message: License GPL-2.0-only found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is categorized as strict-copyleft which must not be used for BT11 Open Source Development service applications.
Evaluation: The scan tool incorrectly detects the Apache License header as GPL-2.0 license text
Incorrectly detected license “proprietary”
Rule: OCaaS Policy C3 Commercial
Message: License LicenseRef-scancode-proprietary-license found for package ‘Unmanaged::leda-distro-fork:0716b55ff8f57319263d67ee16d90e64588b391d’ is categorized as commercial and requires special handling.
Evaluation: The scan tool incorrectly detects its own configuration file (.ort.original.yml) as being licensed under proprietary licenses.
The following components are not yet released in public or did not yet finished the project review, and may only be added to the release on shorter notice:
(Eclipse Backend-Function-Bindings)
(Eclipse SommR)
(OTA Client)
Compatibility
Compatibility to previous versions is not considered for this first release.