GENIVI Open Source Project and Baseline Listing
GENIVI employs an "upstream first" model and actively adopts and/or adapts existing components residing in the FOSS community to meet the defined requirements for its IVI software platform. In some cases, however, software to meet defined requirements does not exist in any upstream project. In those cases, GENIVI hosts projects that facilitate the development of required functionality in an open and collaborative manner, consistent with the best practices of other FOSS projects. Further, cases may exist for new projects to be launched which implement automotive functionality not yet defined by GENIVI or that may employ a different and innovative approach that GENIVI should consider for future platform releases.
Open Source Projects
As an alliance, GENIVI aims to leverage Linux and other Open Source technologies. One of the tools GENIVI aims to re-use, D-Bus, has become a de facto standard for many components to communicate with each other.
The AudioManager is a framework for managing audio in the IVI context.
This Browser Proof of Concept has taken a from scratch approach due to the specific requirements for an in-vehicle browser, existing browsers were evaluated but not found suitable. The Browser PoC is an example IVI browser and has limited functionality. It is built with Qt 5, WebKit 1, and the declartive QML language. It consists of a QML webview runtime and C++ code for implementing backend services and dbus connectivity. A QML webview element renders web content using the Qt webkit integration. No other User interface elements or controls will be implemented for the webview.
DLT is a reusable open source software component for standardized logging and tracing in infotainment ECUs based on the AUTOSAR 4.0 standard. The goal of DLT is the consolidation of the existing variety of logging and tracing protocols on one format.
Diagnostic Log and Trace - Transport
DLT-T (i.e. Diagnostic Log & Trace Transport Protocol) provides typical transport protocol features in the communication between the GENIVI DLT Viewer and DLT Daemon. It provides a more robust and reliable communication.
The GENIVI Development Platform is a software platform that is aligned with the GENIVI compliance specification running on actual commercial hardware. This development platform aligns itself with the Yocto GENIVI baseline, it additionally includes an example application and HMI framework and integrates multiple GENIVI proof of concepts.
CommonAPI C++ is an Inter Process Communication (IPC) language binding API for C++, which enables applications to use different IPC middleware as backend without any changes to the application code.
The goal of this work package is to define a common API and provide a proof-of-concept implementation for the IVI Layer Management Service.
Under the scope of the Location Based Services (LBS), the GENIVI Alliance plans to develop LBS features and applications on top of a GENIVI compliant, Open Source, automotive IVI software stack. The "IVI Navigation" project hosts the whole set of public code running on the APIs of the LBS domain, as well as the APIs standardized by the Alliance.
The basic idea of the IVI Radio project is to verify the functionality of the Tuner API. Therefore the Tuner API has been implemented and a few testcases to show some functionality has been realized.
In the first version only the API for Station Management and Additional Services (specially Announcements) is implemented. Further version will extend the Proof of Concept for more functionality coresponding to the state of the API agreed in the Media & Graphics Expert Group and the several maturity checks prior to the compliance freezes.
Among the different virtualization technologies Linux Containers (LXC) are particularly appealing for implementing multi-hosting embedded systems, by providing an userspace container object that supports full resource isolation and resource control for an applications or a system.
Lifecycle Management: Node Startup Controller
The Node Startup Controller (NSC) was introduced into the lifecycle package for GENIVI in order to handle some startup and shutdown functionality.
Lifecycle Management: Node State Manager
The node state management is the central function for information regarding the current running state of the embedded system. The Node State Manager (NSM) component provides a common implementation framework for the main state machine of the system.
The purpose of a common Media Manager API is to provide applications a way to control basic playback of contents of connected CE devices in a unified way. That way applications can support a wider range of available devices / media without implementing separate solutions for each one. At a later point in time this API can be extended to support more advanced features like
metadata of playing media
browsing of device content
Indexing of device content
The Persistence Management is responsible to handle persistent data, including all data read and modified often during a lifetime of an infotainment system. "Persistent data" is data stored in a non-volatile storage such as a hard disk drive or FLASH memory.
SmartDeviceLink is a project which intends to standardize and wrap the many in-vehicle interfaces which may exist in the automotive context. The end goal is to provide an expandable software framework to both mobile application developers and automotive head unit creators for the creation of brought-in applications that appear integrated onto a head unit.
This project is forked from IVI Layer Management to define a common set of APIs by wayland style protocol and provide reference implementation which can be loaded on Weston: http://wayland.freedesktop.org.
The Web API Vehicle is a proof of concept that demonstrates an interface to the vehicle accessible from HTML5.
The proof of concept shows how one can use the various system calls and sensors on a vehicle via an HTML5 interface. It allows for a browser or similar HTML rendering toolkit to access vehicle data and manipulate that data with standard HTML5 tools.
YAMAICA is an Eclipse based tool to provide easy usability of various features around usage of the Franca Interface Description Language (IDL) and IPC CommonAPI C++.
The idea behind YAMAICA, Franca and CommonAPI together is to provide a fully automated workflow to implement communication software layers based on UML model specification of interfaces.
The Yocto GENIVI Baseline is a GENIVI compliant Linux distribution for a variety of embedded devices.
The Baserock GENIVI Baseline is a GENIVI compliant optimised build approach to create Linux-based appliance solutions.