## Introduction

The `meta-agl-devel` layer contains components that are being tested or
still in development.
The layer also contains software packages that Original Equipment
Manufacturers (OEMs) need but are not included in the AGL software.

## Sub-Layers

The `meta-agl-devel` layer contains the following files and sub-layers:

```
.
├── meta-agl-telemetry
├── meta-audio-4a-framework
├── meta-audio-soundmanager-framework
├── meta-egvirt
├── meta-gstrecorder-rcar-gen3
├── meta-hmi-framework
├── meta-oem-extra-libs
├── README.md
├── templates
```

The following list provides a summary of these sub-layers:

* `meta-agl-telemetry`: Provides the smallest AGL image.
  The image is designed to be used when a device requires restricted
  scope of responsibilites (e.g. collecting vehicle telemetry).

* `meta-audio-4a-framework`: A collection of recipes used for the
  first integration of 4A (i.e. Advanced AGL Audio Architecture).

* `meta-pipewire`: A collection of recipes used for the integration
  of the pipewire sound system.

* `meta-audio-soundmanager-framework`: Supports the Soundmanager
  Audio Framework features, which maps to the `agl-audio-soundmanager-framework`
  AGL feature.

* `meta-egvirt`: The AGL Virtualization Expert Group (EG-VIRT) layer.
  This layer supports the design, test, implementation, and assessment
  of virtualization technologies (e.g. containers, hypervisors, system
  partitioners, and so forth) aimed at AGL ARMv8 and Intel platforms.

* `meta-gstrecorder-rcar-gen3`: Supports streaming audio and video for
  the Pro and Premier board kits (e.g.
  [Renesas R-Car Starter Kit Pro Board](https://www.elinux.org/R-Car/Boards/M3SK)
  and
  [Renesas R-Car Starter Kit Premier Board](https://www.elinux.org/R-Car/Boards/H3SK)).

* `meta-hmi-framework`: Provides AGL's Human Machine Interface (HMI) framework
  through resource management consisting of sounds, windows, and input control.
  For more information, see the
  [HMI-Framework Page](https://wiki.automotivelinux.org/hmiframework) of the
  AGL Wiki.

* `meta-oem-extra-libs`: Provides libraries and software packages needed by
  OEMs but not provided by the AGL software.

* `templates`: Feature templates that support the `meta-agl-devel` layer.

## Additional Sub-Layer Information

This section provides additional information for the `meta-egvirt`,
`meta-oem-extra-libs`, and `meta-hmi-framework` layers.

### Virtualization Support

The `meta-egvirt` layer enables virtualization support in AGL.
The AGL Virtualization Expert (EG-VIRT) group is responsible
for design and implementation of AGL virtualization solutions
(.e.g the Virtualization platform architecture of AGL).
You can read about EG-VERT's efforts on the
"[Virtualization Expert Group's](https://wiki.automotivelinux.org/eg-virt)"
page of the AGL wiki.

Additionally, you can learn more about virtualization as it applies to AGL
by reading
"[The Automotive Grade Linux Software Defined Connected Car Architecture](https://www.automotivelinux.org/wp-content/uploads/sites/4/2018/06/agl_software_defined_car_jun18.pdf)"
whitepaper.

### OEM Extra Libraries

The `meta-oem-extra-libs` layer provides additional software packages many OEMs need
but are not part of the AGL source.
Following is the list of packages this layer provides:

 * boost
 * fixesproto
 * imagemagick
 * iptables
 * Xorg-macros
 * zlib
 * eglibc = glibc
 * libcurl
 * libgif
 * libneon
 * mongoose
 * fuse
 * protocol buffers
 * bsdiff
 * module-init-tools
 * libcroco
 * libtiff
 * librsvg
 * libpcap

To add these packages to your library, you need to include the
`agl-oem-extra-libs` AGL feature when you initialize your build
environment using the `aglsetup.sh` script.

For information on how to use the `aglsetup.sh` script to initialize
your build environment, see the
"[Initializing Your Build Environment](../getting_started/reference/getting-started/image-workflow-initialize-build-environment.html)"
section.

Once you have included the AGL feature, you can build your image.

### HMI Framework

The `meta-hmi-framework` layer supports the Human-Machine Interface (HMI) Framework.
The HMI-Framework is the User Interface (UI) to control the Infotainment System.
Work continues to close the gap between the user experience of a smart phone
and the Infotainment System in a vehicle, for example.

You can find more out about HMI Framework progress on the
"[HMI Framework](https://wiki.automotivelinux.org/hmiframework)" page on the AGL Wiki.

To add HMI Framework support to your image, you need to include the
`hmi-framework` AGL feature when you initialize your build
environment using the `aglsetup.sh` script.

For information on how to use the `aglsetup.sh` script to initialize
your build environment, see the
"[Initializing Your Build Environment](../getting_started/reference/getting-started/image-workflow-initialize-build-environment.html)"
section.

Once you have included the AGL feature, you can build your image.