User Tools

Site Tools


eg-gap_genivi_yocto_tizenivi_gap_analysis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
eg-gap_genivi_yocto_tizenivi_gap_analysis [2015/10/14 01:37]
mbc
eg-gap_genivi_yocto_tizenivi_gap_analysis [2015/10/14 10:19] (current)
mbc
Line 1: Line 1:
 ====== GENIVI/​Yocto/​Tizen IVI gap analysis ====== ====== GENIVI/​Yocto/​Tizen IVI gap analysis ======
-(as of 2015/10/13)+source : **IoT.bzh** ​(as of 2015/10/13) 
 + 
 +**Original document :** [[http://​iot.bzh/​download/​public/​2015/​Audit_on_GENIVI_components_in_AGL_Phase-1.pdf|Audit_on_GENIVI_components_in_AGL_Phase-1.pdf]] 
 + 
 +**Appendix :** [[http://​iot.bzh/​download/​public/​2015/​Audit_on_GENIVI_components_in_AGL_Phase-1_ANNEX.pdf|Audit_on_GENIVI_components_in_AGL_Phase-1_ANNEX.pdf]] 
 +----
  
 ===== Introduction ===== ===== Introduction =====
Line 21: Line 26:
   * [[http://​git.yoctoproject.org/​cgit/​cgit.cgi/​poky/​log/?​h=dizzy|Poky 1.7 '​Dizzy'​]]   * [[http://​git.yoctoproject.org/​cgit/​cgit.cgi/​poky/​log/?​h=dizzy|Poky 1.7 '​Dizzy'​]]
   * [[http://​git.openembedded.org/​meta-openembedded/​log/?​h=dizzy|OpenEmbedded 1.7 '​Dizzy'​]]   * [[http://​git.openembedded.org/​meta-openembedded/​log/?​h=dizzy|OpenEmbedded 1.7 '​Dizzy'​]]
 +
 +----
  
 ===== GENIVI Components ===== ===== GENIVI Components =====
Line 49: Line 56:
 | glib-networking ​      ​| ​ 2.38.0 ​  ​| ​ 2.38.0 ​  ​| ​ 2.38.0 ​   |  ?  | Network subset of glib library requiring additional dependencies | | glib-networking ​      ​| ​ 2.38.0 ​  ​| ​ 2.38.0 ​  ​| ​ 2.38.0 ​   |  ?  | Network subset of glib library requiring additional dependencies |
  
-[1] : maintained in Poky, but not the default version +[1] : maintained in Poky, but not the default version ​\\
 [2] : forked and maintained in GENIVI [2] : forked and maintained in GENIVI
  
Line 101: Line 107:
   * Parted   * Parted
  
-**Side notes** +__Side notes__ : As a side note, recent GENIVI build instructions [[http://​git.yoctoproject.org/​cgit/​cgit.cgi/​meta-ivi/​tree/​README.md|do not contain the GPLv3 mention anymore]]. Does this mean that GENIVI now allows GPLv3 packages ? A formal clarification on GPL licensing policies would be more than welcome.
-As a side note, recent GENIVI build instructions [[http://​git.yoctoproject.org/​cgit/​cgit.cgi/​meta-ivi/​tree/​README.md|do not contain the GPLv3 mention anymore]]. Does this mean that GENIVI now allows GPLv3 packages ? A formal clarification on GPL licensing policies would be more than welcome.+
  
-**Suggestions** +__Suggestions__ : Whether GENIVI would allow GPLv3, it would then be possible to switch to more recent versions of many packages (except for Gettext).
-Whether GENIVI would allow GPLv3, it would then be possible to switch to more recent versions of many packages (except for Gettext).+
 If it does not, then we have to keep these older versions until a suitable replacement is found. If it does not, then we have to keep these older versions until a suitable replacement is found.
 Potential replacements include : Potential replacements include :
-  ​* **Bash :** [[http://​gondor.apana.org.au/​~herbert/​dash/​|Dash]] - [[http://​www.kornshell.com/​|ksh]] +  * Bash : [[http://​gondor.apana.org.au/​~herbert/​dash/​|Dash]] - [[http://​www.kornshell.com/​|ksh]] 
-  ​* **Gawk :** [[http://​www.cs.princeton.edu/​~bwk/​btl.mirror|BWK awk]]  +  * Gawk : [[http://​www.cs.princeton.edu/​~bwk/​btl.mirror|BWK awk]]  
-  ​* **Coreutils :** [[http://​www.landley.net/​toybox|Toybox]] +  * Coreutils : [[http://​www.landley.net/​toybox|Toybox]] 
-  ​* **Parted :** [[http://​sourceforge.net/​projects/​gptfdisk/​|GPT fdisk]]+  * Parted : [[http://​sourceforge.net/​projects/​gptfdisk/​|GPT fdisk]] 
 +\\
  
 == Package misalignment == == Package misalignment ==
Line 119: Line 124:
 The Tizen IVI version is a bit older. As there is no technical explanation,​ this is most likely to be a mistake or an oversight. Updating should be straightforward. ​ The Tizen IVI version is a bit older. As there is no technical explanation,​ this is most likely to be a mistake or an oversight. Updating should be straightforward. ​
  
-**Suggestions** ​Stick to the Yocto/​OpenEmbedded version.+__Suggestions__ : Stick to the Yocto/​OpenEmbedded version.
  
 +\\
 == Custom patches == == Custom patches ==
  
Line 128: Line 134:
 The patches are security fixes, one of which (CVE 2015-1315 for Unzip) was released subsequently to TIzen IVI's latest release (mid-February 2015). Using these Yocto-patches versions is a no-brainer. The patches are security fixes, one of which (CVE 2015-1315 for Unzip) was released subsequently to TIzen IVI's latest release (mid-February 2015). Using these Yocto-patches versions is a no-brainer.
  
-**Suggestions** ​Keep the Yocto versions, with custom patches.+__Suggestions__ : Keep the Yocto versions, with custom patches.
  
 +\\
 == Nonexistent packages == == Nonexistent packages ==
  
 There are some packages which simply do not have any correspondence between distributions. This mostly happens for "​administrative"​ packages (i.e. used for compilation or production of the final image) or for strategical reasons. There are some packages which simply do not have any correspondence between distributions. This mostly happens for "​administrative"​ packages (i.e. used for compilation or production of the final image) or for strategical reasons.
  
-= Packages present in Tizen IVI, but NOT in GENIVI/​Yocto =+\\ 
 +== Packages present in Tizen IVI, but NOT in GENIVI/​Yocto ​==
   * Procps-ng : "​procps"​ is the traditional package providing /​proc-related command-line tools (ps, top, skill...). However, it has not been updated for years and requires lots of custom patches for today'​s uses ; hence why Tizen IVI prefers to use its "​procps-ng"​ fork instead.   * Procps-ng : "​procps"​ is the traditional package providing /​proc-related command-line tools (ps, top, skill...). However, it has not been updated for years and requires lots of custom patches for today'​s uses ; hence why Tizen IVI prefers to use its "​procps-ng"​ fork instead.
 Yocto 1.7, though, unfortunately does not provide this package. Yocto 1.7, though, unfortunately does not provide this package.
  
-**Suggestions** ​Keep the Tizen IVI version, store it in the AGL tree, and submit it to the upstream Yocto project meanwhile. This way, future AGL releases may be able to use Procps-ng directly without maintaining the packaging.+__Suggestions__ : Keep the Tizen IVI version, store it in the AGL tree, and submit it to the upstream Yocto project meanwhile. This way, future AGL releases may be able to use Procps-ng directly without maintaining the packaging.
  
-= Packages present in GENIVI/​Yocto,​ but NOT in Tizen IVI =+\\ 
 +== Packages present in GENIVI/​Yocto,​ but NOT in Tizen IVI ==
   * Quota   * Quota
   * Libcgroup   * Libcgroup
Line 151: Line 160:
   * "​tcp-wrappers",​ "​os-release"​ and "​volatile-binds"​ are administrative packages used mostly for OS image preparation and boot. For instance, "​os-release"​ customizes the "/​etc/​os-release"​ file, used by most tools to identify the distribution ; Tizen IVI does it too, but in its "​tizen-release"​ package.   * "​tcp-wrappers",​ "​os-release"​ and "​volatile-binds"​ are administrative packages used mostly for OS image preparation and boot. For instance, "​os-release"​ customizes the "/​etc/​os-release"​ file, used by most tools to identify the distribution ; Tizen IVI does it too, but in its "​tizen-release"​ package.
  
-**Suggestions** ​Keep "​quota",​ "​libcgroup"​ and "​os-release"​ from Yocto 1.7. Remove use of "​tcp-wrappers"​ and "​volatile-binds"​ until it proves itself useful. "​os-release"​ could be replaced by a specific package named "​agl-release"​.+__Suggestions__ : Keep "​quota",​ "​libcgroup"​ and "​os-release"​ from Yocto 1.7. Remove use of "​tcp-wrappers"​ and "​volatile-binds"​ until it proves itself useful. "​os-release"​ could be replaced by a specific package named "​agl-release"​. 
 + 
 +----
  
 ===== GENIVI Yocto layer ("​meta-ivi"​) ===== ===== GENIVI Yocto layer ("​meta-ivi"​) =====
Line 166: Line 177:
 | audiomanager_6.2.bb ​      ​| ​ Required by AGL 1.0 specification ​   | GENIVI System - Audio Manager | | audiomanager_6.2.bb ​      ​| ​ Required by AGL 1.0 specification ​   | GENIVI System - Audio Manager |
 | audiomanager_git.bb ​      ​| ​ Required by AGL 1.0 specification ​   | GENIVI System - Audio Manager | | audiomanager_git.bb ​      ​| ​ Required by AGL 1.0 specification ​   | GENIVI System - Audio Manager |
-| common-api-c++_2.1.6-p1.bb ​      | | GENIVI Libraries - Misc (IPC) | +<​nowiki>​common-api-c++_2.1.6-p1.bb</​nowiki> ​      | | GENIVI Libraries - Misc (IPC) | 
-| common-api-c++-dbus_2.1.6-p6.bb ​      | | GENIVI Libraries - Misc (IPC) |+<​nowiki>​common-api-c++-dbus_2.1.6-p6.bb</​nowiki> ​      | | GENIVI Libraries - Misc (IPC) |
 | dlt-daemon_2.11.1.bb ​      ​| ​ Required by AGL 1.0 specification ​  | GENIVI Libraries - Logging daemon | | dlt-daemon_2.11.1.bb ​      ​| ​ Required by AGL 1.0 specification ​  | GENIVI Libraries - Logging daemon |
 | encryptfs-utils_104.bb ​      ​| ​ GENIVI configuration - disable NSS dependency ​  | Base - Utilities | | encryptfs-utils_104.bb ​      ​| ​ GENIVI configuration - disable NSS dependency ​  | Base - Utilities |
Line 216: Line 227:
 <​code>#​ find meta-ivi -name *.bbappend | xargs -n 1 basename | sort</​code>​ <​code>#​ find meta-ivi -name *.bbappend | xargs -n 1 basename | sort</​code>​
  
 +\\
 === Explanation of motivations === === Explanation of motivations ===
  
 == AGL 1.0 specification compliance (original packages) == == AGL 1.0 specification compliance (original packages) ==
  
-Most of the non-Yocto ("​specific"​) packages implement parts of the AGL 1.0 specification,​ for which there is no notable implementation in the upstream field nor in Tizen IVI.+Most of the non-Yocto ("​specific"​) packages implement parts of the [[https://​www.automotivelinux.org/​sites/​agl/​files/​pages/​files/​agl_spec_v1.0_final_0.pdf|AGL 1.0 specification]], for which there is no notable implementation in the upstream field nor in Tizen IVI.
  
 Concerned sections of the specification are studied further below (see [AGL 1.0 specification matching]), but here is a short summary : Concerned sections of the specification are studied further below (see [AGL 1.0 specification matching]), but here is a short summary :
Line 239: Line 251:
   * qt4-embedded : **enable the QML/Qt graphical widget definition language**   * qt4-embedded : **enable the QML/Qt graphical widget definition language**
   * ... and other negligible things.   * ... and other negligible things.
 +
 +----
  
 ===== Suggestions for an AGL integration workflow ===== ===== Suggestions for an AGL integration workflow =====
Line 301: Line 315:
  
 4) Write instructions on how to generate the final image using this repository. 4) Write instructions on how to generate the final image using this repository.
 +
 +----
  
 ===== Advanced study ===== ===== Advanced study =====
Line 369: Line 385:
   - If not, is there an existing Tizen Common/IVI package supporting these features ? If there are, we should list them, and decide if adaptation work is needed.   - If not, is there an existing Tizen Common/IVI package supporting these features ? If there are, we should list them, and decide if adaptation work is needed.
  
 +=== Detailed AGL specification 1.0 analysis ===
 +
 +This chapter describes how to group the features by package types, then determine existing package names in GENIVI, upstream, and Tizen.
 +
 +Here follows some of the AGL specification 1.0 points which can materialize as packages (the notation '​AGL§x.y.z'​ is used to reference an AGL specification 1.0 chapter).
 +
 +**Home Screen (AGL§3.1)**
 +
 +The specification requires a "//​customizable GUI layout//",​ defined with items such as "//​screen resource//",​ "//​input resource//",​ "//​transition effect//"​. (AGL§3.1.8.1)
 +
 +**Weston**'​s ivi-shell provides a home screen without any specific automotive applications,​ fitting those needs. It is included starting from Weston 1.7, which is present in **latest Yocto**.
 +
 +However, it also requires "//​sound resource//"​ management, a "//​system setting menu//",​ a "//​mechanism to change date//",​ "//​change wireless communications//"​... (AGL§3.1.8.2).
 +
 +For this, we need an enhanced home screen. GENIVI nor upstream do not provide one ; **Tizen IVI**, though, has 2 optional packages fitting this need : "​**Modello-Homescreen**"​ (HTML5) and "​**ico-uxf-homescreen**"​ (native). Note that these 2 packages are not maintained anymore, so we need to resume their maintenance.
 +
 +__Proposal__ : pull Weston ivi-shell from latest Yocto, pull ICO or Modello homescreen from Tizen IVI, and secure maintenance/​development of these.
 +
 +**Window Manager (AGL§4.1.2)**
 +
 +The specification requires a "//​software component that is responsible for a layout management of windows//"​ (this is satisfied by the standard "​weston"​ package) but also which satisfies "//​IVI'​s complex requirements,​ typically requested from Policy Manager//"​.
 +
 +The Use Case (AGL§4.1.2.1) then refers to Policy Manager'​s (see below) screen resource control section, which specifies :
 +  * allocation of surfaces (position, size...) ;
 +  * visibility control (surface visibility depending on driving mode e.g.) ;
 +  * layer information (z-order...).
 +
 +The GENIVI Yocto layer "​meta-ivi"​ contains the "​layer-management"​ and "​wayland-ivi-extensions"​ packages, which fulfill these requirements.
 +
 +__Proposal__ : pull the "​layer-management"​ and "​wayland-ivi-extensions"​ package from GENIVI Yocto layer.
 +
 +** Policy Manager (AGL§4.1.3)**
 +
 +The specification requires a Policy Manager which will "//​collect lots of status, such as user operation and application status, then issue Vehicle Info Control or Resource Control//"​ (AGL§4.1.3.1.1).
 +
 +The detailed sections specify that it includes Screen (AGL§4.1.3.1.2.a),​ Sound (AGL§4.1.3.1.2.b),​ Input (AGL§4.1.3.1.2.c) resources, and precisely which resources.
 +
 +A policy manager is specific to the IVI market, there are no well-known implementations upstream, nor does GENIVI provide one. **Tizen IVI**, though, had such a software called **Murphy**. Note that it's not much maintained anymore.
 +
 +__Proposal__ : pull Murphy from Tizen IVI, and security its maintenance/​development.
 +
 +** Sound Manager (AGL§4.1.4)**
 +
 +The specification requires a Sound Manager which will "//​manage a mediation rule//"​ when a "//​sound output demand in two or more zones from two or more zones from two or more applications is arbitraded//"​.
 +
 +The GENIVI Yocto layer "​meta-ivi"​ contains an **audio-manager** package, which server precisely this requirement.
 +
 +__Proposal__ : pull the GENIVI Yocto "​audio-manager"​ package.
 +
 +** Web HMI (AGL§4.2)**
 +
 +The specification requires a web-based interface for the application framework, including a HTML5-based Web API (AGL§4.2.1) which must provide :
 +  * a multimedia content selection API (with URL, predefined list...) ;
 +  * a multimedia content browsing API (play, pause, rewind...) ;
 +  * a volume control API (up, down, mute) ;
 +  * a metadata access API for content (author, year...) ​
 +  * a notification emission API ;
 +  * an AM/FM radio playing API (frequency change, station info...);
 +  * a digital radio playing API ;
 +  * a vehicle information access API (fuel level, car model...) ;
 +  * a speech-to-text/​text-to-speech control API ;
 +  * a navigation control API ;
 +  * a peer-to-peer communication API for applications ;
 +  * a W3C/HTML5 DOM, Forms and Style API ;
 +  * a W3C/HTML5 Device API (touch event, screen orientation change event...) ;
 +  * a W3C/HTML5 graphics API (canvas, SVG...) ;
 +  * a W3C/HTML5 media API (audio/​video tags...) ;
 +  * a W3C/HTML5 communication API (web sockets, server events...) ;
 +  * a W3C/HTML5 storage API (web storage, file storage, web SQL...) ;
 +  * a W3C/HTML5 security API (cross-origin restriction,​ iframe restriction...) ;
 +  * a W3C/HTML5 desktop UI API (clipboard access, drag-&​-drop events...) ;
 +  * a W3C/HTML5 performance API (timing control...) ;
 +  * a W3C/HTML5 geolocation API ;
 +  * a W3C/Widget API ;
 +  * Khronos WebGL API.
 +
 +In order to support all these APIs, a Web Runtime, which is a web application execution environment,​ is required (AGL§4.2.2). It provides :
 +  * an access control mechanism ;
 +  * GUI components (text labels, buttons, sliders, input forms...) ;
 +
 +Neither Yocto, nor GENIVI have a ready-to-use ​ web framework for this purpose. Tizen had **webkit-efl** and **crosswalk** (based upon Chromium) together with the **tizen-extensions** package, but they are tightly linked wih the Tizen Web API, which is slightly different from the AGL web API specification.
 +
 +__Proposal__ : find an alternative.
 +
 +** Native HMI (AGL§4.3)**
 +
 +The specification requires a native interface for the application framework, providing :
 +  * GUI components (text labels, buttons, sliders, input forms...) ;
 +Neither Yocto, nor GENIVI have a ready-to-use native framework for this purpose. Tizen had the **platform/​core/​api/​** packages, but they are tightly linked with the Tizen API, which is slightly different from the AGL API specification.
 +
 +__Proposal__ : find an alternative.
 +
 +** Location Services (AGL§5.1.4)**
 +
 +The specification requires the presence of a GPS system, which will be used for geolocation as well as for time-of-day adjusting (AGL§5.1.4.2).
 +
 +The OpenEmbedded Yocto layer provides the **gpsd** daemon. It is a well-known and functional GPS daemon implementation.
 +
 +__Proposal__ : use gpsd from Yocto/​OpenEmbedded.
 +
 +** Health Monitoring (AGL§5.1.5)**
 +
 +The specification requires "//​platform monitoring services such as watchdog or active monitoring//"​.
 +
 +The **GENIVI Yocto layer ("​meta-ivi"​)** provides a "​**node-health-monitor**"​ package which addresses the requirement.
 +
 +__Proposal__ : pull the "​node-health-monitor"​ package from GENIVI Yocto layer.
 +
 +** Persistent Storage (AGL§5.1.9)**
 +
 +The specification requires a "//​power-safe persistent storage//"​ solution.
 +
 +The **GENIVI Yocto layer ("​meta-ivi"​)** provides a "​**persistence-client-library**"​ package which, together with "​**persistence-administrator**"​ and "​**persistence-common-object**",​ fulfill this requirement.
 +
 +__Proposal__ : pull the "​persistence-client-library"​ package from GENIVI Yocto layer.
 +
 +** Telephony Services (AGL§5.1.12)**
 +
 +The specification requires the presence of a phone system, which will support Bluetooth pairing (AGL§5.1.12.1.1).
 +
 +**Yocto** 1.7 contains the **ofono** telephony daemon, as well as the **bluez** subsystem for Bluetooth hardware recognition and data transfer. Bluez may need enhancements or patches to work well with the board Bluetooth adapter.
 +
 +__Proposal__ : use the ofono and bluez packages from Yocto, eventually patch and upgrade bluez depending on hardware.
 +
 +** Miracast (AGL§5.1.13.1.2)**
 +
 +The specification requires a display sharing protocol, which is specifically named to be Miracast.
 +
 +There is no well-known open-source implementation of Miracast, mostly due to royalty fees concerns. A proprietary stack named **[[http://​nttd-mse.com/​sites_en/​special/​mwc/​|WiDi]]** is available but was not shipped with Tizen IVI for this reason.
 +
 +__Proposal__ : find/choose an implementation.
 +
 +** DLNA (AGL§5.1.13.1.3)**
 +
 +The specification requires a digital media sharing protocol, which is specifcally named to be DLNA.
 +
 +There is an open-source implementation of DLNA named **dleyna**, which is included in Yocto (0.4.0 in 1.7 as of writing).
 +
 +__Proposal__ : use the dleyna package from Yocto.
 +
 +** Camera Services (AGL§5.2.2)**
 +
 +The specification requires support for mounted cameras inside the vehicle.
 +
 +**Yocto** includes a version of the **v4l** (Video4Linux) libraries, which enables hardware access to cameras, allowing recording, monitoring...
 +
 +__Proposal__ : use the v4linux-util package from Yocto.
 +
 +** Multimedia Server (AGL§5.2.5)**
 +
 +The specification requires support for a variety of multimedia formats : CD, DVD, Blu-Ray, MP3...
 +
 +What's more, it also requires the presence of a Media Player (AGL§5.2.5.1),​ which is said, without much precision, to match "//​major end-user expectation//",​ support "//​multiple audio/video sources//"​... It further indicated that it should be able to extract data such as "​subtitles",​ support streaming protocols such as "​HTTP",​ "​RTPS",​ (AGL§5.2.5.2.1)...
 +
 +Further text states support for containers such as "​MPEG2-TS/​PS",​ "​MP4"​ ; audio codecs such as "​MP3"​ or "​AAC"​ (AGL§5.2.5.2.2),​ video codecs such as "​MPEG-2",​ "​MPEG-4 Part 2" (AGL§5.2.5.2.3),​ and image formats such as "​JPEG"​ or "​PNG"​ (AGL§5.2.5.2.4)...
 +
 +Among Yocto packages, **libav**, which is a fork of the popular FFmpeg, provides such audio/video capabilities. Please note, however, that some codecs such as MP3 may suffer distribution restrictions depending on publication region, and thus may be disabled for development builds.
 +
 +__Proposal__ : use libav from Yocto. Provide Yocto configuration options to disable restricted codecs in development builds.
 +
 +** Personal Information Manager (AGL§5.2.7)**
 +
 +The specification requires a service able to centralize personal data : appointments,​ reminders...
 +
 +Tizen used the "​evolution-data-server"​ (eds) package together with libfolks for this purpose.
 +
 +__Proposal__ : use the evolution-data-server package from Tizen.
 +
 +** Smart Device Link (AGL§5.2.8.2)**
 +
 +The specification requires Smart Device Link capabilities,​ also known as remote control from a smartphone (for capable applications only).
 +
 +There is no Yocto package implementing this ; **Tizen IVI**, though, contains a "​smartdevicelink"​ package, which responds to the requirements.
 +
 +__Proposal__ : use **smartdevicelink** from Tizen IVI.
 +
 +** Speech Services (AGL§5.2.9)**
 +
 +The specification requires "//​voice recognition and synthesis//"​.
 +
 +There is no dedicated package in Yocto. **Tizen IVI**, however, contains the dedicated "​**festival**"​ library, the dedicated "​**sphinx**"​ library, and even a dedicated "​**speech-recognition**"​ daemon, which may however need some modifications.
 +
 +__Proposal__ : use the festival/​sphinx packages from Tizen IVI. Evaluate the speech-recognition daemon of Tizen IVI.
 +
 +=== AGL specification compliance in GENIVI / Upstream projects / Tizen ===
 +
 +In this chapter, for each package group listed in §5.1[Global gap : Tizen IVI / Yocto 1.7], we try to find a match in GENIVI, Upstream and Tizen IVI.
 +
 +** GUI resource management**
 +
 +The Policy Manager (AGL§4.1.3.1.2) requires the following :
 +  * Weston 1.7, for IVI-Shell : in Yocto 1.8 ;
 +  * Policy manager : Tizen IVI contains Murphy, which fulfills the requirement.
 +
 +** Preinstalled applications**
 +
 +Only a HomeScreen is mandatory (AGL§4.1.3.1.2).
 +
 +Tizen IVI contains 2 packages fulfilling the requirement : ICO and Modello,
 +  * ICO is native, whereas Modello is HTML5 ;
 +  * Both are not heavily maintained anymore, though.
 +
 +__Proposal__ : choose one and resume its maintenance.
 +
 +** Screen Sharing**
 +
 +Miracast (AGL§5.1.13.1.2) requires an implementation.
 +
 +Tizen IVI had WiDi, which fulfills the requirement,​ but it was not included due to royalty fees issues.
 +
 +**Digital Multimedia Server**
 +
 +DLNA (AGL§5.1.13.1.3) requires the following :
 +  * Yocto 1.7 contains Dleyna 0.4.0, which fulfills the requirement.
 +
 +**Login and security**
 +
 +From AGL§4.1.6.7 : login/​password is mandatory, NFC and biometric identification COULD be supported.
 +
 +Yocto 1.7 contains Neardal, and Tizen IVI contains nfc-manager-neard. Both are needed in order to fulfill the requirement. Adaptation is needed for nfc-manager-neard.
 +
 +**Applications**
 +
 +An Online Store is needed (AGL§3.1.8.3),​ with support for secure communications.
 +
 +Local databases and multi-user support are needed for applications.
 +
 +**Sound**
 +
 +A Sound Manager is needed (AGL§4.1.4).
 +
 +----
 +
 +===== CONCLUSION =====
 +
 +The gaps between Tizen-IVI and Genivi packages as extracted from Genivi mailing list and Yocto repository originate from 3 main motivations:​ license dependency on GPLV3, specific requirements addressed by Genivi or simplicity of construction.
 +
 +For most of the packages, it should be relatively simple to make a pragmatic choice of which version or a given package should be used or not. For some others nevertheless due to complex dependencies,​ this decision might me more political than technical.
 +
 +Going further and aiming at AGL-1.0 compliance, it looks obvious that even by collecting every packages from Tizen, Genivi and Yocto some functionality would still miss.
 +
 +In order to move forward: first basic version conflict of identical packages in between Yockto/​Genevi/​Tizen should be cleared out. Secondly the AGL architecture group and steering comity should address missing functionality and choose technologies they would like to use to address those requirements.
 +
 +----
 +(see [[http://​iot.bzh/​download/​public/​2015/​Audit_on_GENIVI_components_in_AGL_Phase-1_ANNEX.pdf|Appendix]] for additional data)//
eg-gap_genivi_yocto_tizenivi_gap_analysis.1444786626.txt.gz · Last modified: 2015/10/14 01:37 by mbc