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.
.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 */ }
## Introduction

The `meta-agl` layer provides the minimal set of software
to boot an AGL Distribution system.
You use this layer as the minimal core on which to build AGL profiles.

**NOTE:** The `meta-agl` layer does not include a reference UI.
  The reference UI is included as part of the
  [`meta-agl-demo`](./meta-agl-demo.html) layer.
  Furthermore, `meta-agl` does not include additional components, such
  as security, which are part of the
  `meta-agl-extra` layer.

## Sub-Layers

The `meta-agl` layer itself contains many sub-layers and files.
Following is a "tree" look at the layer:

```
.
├── docs
├── meta-agl
├── meta-agl-bsp
├── meta-agl-distro
├── meta-agl-profile-cluster
├── meta-agl-profile-cluster-qt5
├── meta-agl-profile-core
├── meta-agl-profile-graphical
├── meta-agl-profile-graphical-html5
├── meta-agl-profile-graphical-qt5
├── meta-agl-profile-hud
├── meta-agl-profile-telematics
├── meta-app-framework
├── meta-netboot
├── meta-security
├── README-AGL.md
├── README.md
├── scripts
├── templates
```

This list provides some overview information on the files and sub-layers
in `meta-agl`:

* `docs`: Contains files that support AGL documentation.
* `meta-agl`: Contains layer configuration for the `meta-agl` layer.
* `meta-agl-bsp`: Contains adaptations for recipes and required packages
  to boot an AGL distribution on targeted hardware and emulation (i.e. QEMU).
* `meta-agl-distro`: Contains distro configuration and supporting scripts.
* `meta-agl-profile-cluster`: The middleware for the AGL cluster profile.
  The set of packages required for AGL Cluster Distribution.
  Profiles include support for Wayland images.
* `meta-agl-profile-cluster-qt5`: The middleware for the AGL Qt5-based cluster profile.
  The set of packages required for AGL Qt5-based Cluster Distribution.
  Profiles include support for Wayland images with Qt5.
* `meta-agl-profile-core`: Configuration and recipes for the AGL core profiles.
* `meta-agl-profile-graphical`: Configuration and recipes supporting graphical user
  interfaces.
* `meta-agl-profile-graphical-html5`: Configuration and recipes supporting profiles
  with HTML user interface support.
* `meta-agl-profile-graphical-qt5`: Configuration and recipes supporting profiles
  with Qt5-based user interface support.
* `meta-agl-profile-hud`: Configuration and recipes supporting profiles with
  Head-Up-Display (HUD) support.
* `meta-agl-profile-telematics`: Configuration and recipes supporting profiles with
  telematics support.
* `meta-app-framework`: Configuration and recipes supporting the AGL Application
  Framework.
* `meta-netboot`: Contains recipes and configuration adjustments to allow network
  boot through network block device (NBD) since network file system (NFS) does not
  support security labels.
* `meta-security`: Configuration and recipes supporting security applications.
* `scripts`: AGL development setup and support scripts.
* `templates`: Base, feature, and machine templates used in the AGL development
  environment.

## Packagegroups

This section describes the AGL
[packagegroup](https://yoctoproject.org/docs/2.4.4/dev-manual/dev-manual.html#usingpoky-extend-customimage-customtasks)
design:

* packagegroup-agl-image-minimal

        packagegroup-agl-core-automotive.bb
        packagegroup-agl-core-connectivity.bb
        packagegroup-agl-core-graphics.bb
        packagegroup-agl-core-kernel.bb
        packagegroup-agl-core-multimedia.bb
        packagegroup-agl-core-navi-lbs.bb
        packagegroup-agl-core-os-commonlibs.bb
        packagegroup-agl-core-security.bb
        packagegroup-agl-core-speech-services.bb

  The previous list of Packagegroups are used to create the `agl-image-minimal` image,
  which is a small image just capable of allowing a device to boot.

  Subsystem should maintain packagegroup-agl-core-[subsystem].bb which should
  hold sufficient packages to build `agl-image-minimal`.

* packagegroup-agl-image-ivi

        packagegroup-agl-ivi-automotive.bb
        packagegroup-agl-ivi-connectivity.bb
        packagegroup-agl-ivi-graphics.bb
        packagegroup-agl-ivi-kernel.bb
        packagegroup-agl-ivi-multimedia.bb
        packagegroup-agl-ivi-navi-lbs.bb
        packagegroup-agl-ivi-os-commonlibs.bb
        packagegroup-agl-ivi-security.bb
        packagegroup-agl-ivi-speech-services.bb

  The previous list of Packagegroups are used to create the `agl-image-ivi`
  image, which is a baseline image (i.e. Service Layer and Operating System
  Layer defined in AGL Spec v1.0) for the AGL profiles.

* packagegroup-agl-test.bb

  Additional tools used in QA tests (for agl-image*-qa).