summaryrefslogtreecommitdiffstats
path: root/agl-layers-overview.md
blob: 409eae529d3bd960d340b669b5947ae76c5ad724 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Overview
========

The
[AGL Project](https://www.automotivelinux.org/) is an automotive-specific
development environment that provides a Linux distribution
[(AGL UCB](https://www.automotivelinux.org/software/unified-code-base)).

AGL uses layers designed to be compatible with the
[Yocto Project](https://www.yoctoproject.org) and the
[OpenEmbedded Project (OE)](https://www.openembedded.org/wiki/Main_Page).

This section provides information about the layers used by the AGL Project:

* **`meta-agl`**: Minimal set of software needed to create an AGL distribution
  used to boot a system.
  AGL profiles are built on top of this minimal set of software.

* **`meta-agl-demo`**: Provides a reference or demo platform and applications
  for the AGL Distribution.
  The reference UI is part of the `meta-agl-demo` layer.

* **`meta-agl-devel`**: Contains components under development or being tested.
  This layer also contains software packages that OEMs need but do not exist
  in AGL.
/ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# AGL Profiles

The AGL Profiles cover the different use-cases that the AGL platform serves.\
This ranges from minimal systems without display, telematic systems, HUD, IVI, ADAS and more.\
Common to all of them is the use of the AGL APIs (agl-service-*).

All systems have the 'core' profile in common.\
This small set of libraries and binaries is the essential set including the AGL APIs that every AGL system needs.\
All other profiles reuse the 'core' profile.

The other profiles and their dependencies are currently:

* agl-profile-core
  * agl-profile-telematics
  * agl-profile-hud
  * agl-profile-graphical
  * agl-profile-graphical-html5
  * agl-profile-graphical-qt5
  * agl-demo-platform

## agl-profile-core

This profile contains the following images:

* agl-image-boot
  * agl-image-minimal
  * agl-image-minimal-crosssdk

### agl-image-boot

This image is only meant to boot the target device and provide network, package-management and a shell.\
All other functionality needs to be installed at runtime through 'dnf' using the provided package feeds and package-groups (e.g. dnf install profile-graphical-qt5)

### agl-image-minimal

This is the smallest image that includes all (non-graphical) AGL APIs.

### agl-image-minimal-crosssdk

This is the SDK for systems without display including the AGL APIs.

## agl-profile-telematics

N.N.

## agl-profile-hud

N.N.

## agl-profile-graphical

This profile contains a basic graphical system with wayland/weston.\
It is used as a base for the more targeted profiles:

* agl-profile-graphical-html5
* agl-profile-graphical-qt5

Part of this layer are the following images:

* agl-image-weston

### agl-image-weston

Pure wayland + weston image but with all AGL service APIs.

## agl-profile-graphical-html5

This profile contains all components to build a html5 / web-based system and should be used as a base layer for further projects.\
All AGL APIs are included.

## agl-profile-graphical-qt5

This profile is used as base for all projects that build on qt5 like the agl-demo-platform.\
Part of this layer are the ffollowing images:

* agl-image-graphical-qt5
* agl-image-graphical-qt5-crosssdk\
  (THIS IS THE SDK TARGET WE AIM TO USE FOR AGL-DEMO-PLATFORM IN THE END)

All AGL APIs are included.

### agl-image-graphical-qt5

Image with wayland/weston and the qt5 packages installed.

### agl-image-graphical-qt5-crosssdk

SDK based on agl-image-graphical-qt5 suitable for development under qt5.

## agl-demo-platform

This layer builds on-top of agl-profile-graphical-qt5 and builds the full AGL demonstrator image.\
It hosts these images:

* agl-demo-platform
* agl-demo-platform-crosssdk
* agl-demo-platform-qa

TLDR:

```tree
meta-agl/meta-agl-profile-core/recipes-platform
|-- images
|   |-- agl-image-boot.bb
|   |-- agl-image-boot.inc
|   |-- agl-image-minimal-crosssdk.bb
|   |-- agl-image-minimal-qa.bb
|   |-- agl-image-minimal.bb
|   `-- agl-image-minimal.inc
`-- packagegroups
    |-- packagegroup-agl-core-boot.bb
    |-- packagegroup-agl-core-connectivity.bb
    |-- packagegroup-agl-core-multimedia.bb
    |-- packagegroup-agl-core-navigation.bb
    |-- packagegroup-agl-core-os-commonlibs.bb
    |-- packagegroup-agl-core-security.bb
    |-- packagegroup-agl-core-services.bb
    |-- packagegroup-agl-image-boot.bb
    `-- packagegroup-agl-image-minimal.bb

    meta-agl/meta-agl-profile-graphical/recipes-platform
|-- images
|   |-- agl-image-weston.bb
|   `-- agl-image-weston.inc
`-- packagegroups
    |-- packagegroup-agl-graphical-services.bb
    `-- packagegroup-agl-image-weston.bb

    meta-agl/meta-agl-profile-graphical-html5/recipes-platform
|-- images
|   |-- agl-demo-platform-html5-crosssdk.bb
|   |-- agl-demo-platform-html5.bb
|   `-- agl-demo-platform-html5.inc
`-- packagegroups
    `-- packagegroup-agl-demo-platform-html5.bb

    meta-agl/meta-agl-profile-graphical-qt5/recipes-platform
|-- images
|   |-- agl-image-graphical-qt5-crosssdk.bb
|   |-- agl-image-graphical-qt5.bb
|   `-- agl-image-graphical-qt5.inc
`-- packagegroups
    |-- packagegroup-agl-appfw-native-qt5.bb
    |-- packagegroup-agl-demo-qt-examples.bb
    |-- packagegroup-agl-profile-graphical-qt5.bb
    `-- packagegroup-qt5-toolchain-target.bbappend