It has been interesting to be involved in the evolution of the GENIVI Linux Infotainment solution, and the progress of early adopters taking their implementations to market. At the GENIVI All-Members meeting in Barcelona last week, BMW presented some details of their 3-year journey to take a GENIVI 1.0 Compliant Linux-based platform into production, scheduled for later this year.
The early work of the project was around software integration, platform selection, middleware and libraries. The work of course involved several other organizations, providing software and hardware components such as Harman, nVidia and Magneti Marelli. However the final responsibility for performance optimization and tuning for the complete system fell to BMW, who implemented the user interface themselves, and had to carry out further work on such issues as CPU Load, context switching between tasks, and Graphics/HMI performance. It is always hard, if not impossible, to predict performance until the full prototype is available, and as it turned out, there were many design adjustments needed. BMW presented the pre-production solution in their cars at the GENIVI members showcase last Thursday– it is hard to tell from the outside that there is so much Open Source software within!
Another area that caught my attention, and is likely to cost members a lot of time and energy in future, is around Open Source Software Licensing. Car makers have avoided using any Open Source software covered under the terms of GNU Public License V3 (GPLV3), because of the requirement to allow end-users to have the ability to modify, update or replace the software. The implications on warranties and liabilities are to hard to accommodate at present. So a lot of Open Source software is being made available under the more acceptable (to a car maker) GPLV2. However, even merging GPLV2 code with other license types such as Apache or BSD, and potentially some vendor-proprietary licenses, can throw up conflicts between the license terms when the software is combined into a single Infotainment product. Commercial scanning tools are available, such as Black Duck Protex, which automatically check if any included Open Source has been modified, without the original use terms being preserved and passed on (CopyLeft). However these compliance scans can produce massive amounts of output-data, and resolving any reported license conflicts can involve a lot of painstaking investigation. Some may be false-positive matches, but all have to be investigated and/or dismissed. The remedies may require removal of some Open Source components, or re-writing of software functions.
Making sure all license conflicts are resolved is ultimately the responsibility of the car-maker selling the vehicle – this is new territory for many automotive organisations more familiar with a strict code of liability and responsibility from their supply chain.