aboutsummaryrefslogtreecommitdiffstats
path: root/docs/3_Developer_Guides
diff options
context:
space:
mode:
authorShankho Boron Ghosh <shankhoghosh123@gmail.com>2020-10-30 10:23:28 +0530
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-11-11 13:36:16 +0000
commitda6cd0b6c26ca9a3760d8a89ce68baf83eeaa1b1 (patch)
tree5621912c4960ff1919f4664f95f4c4f62b347e5d /docs/3_Developer_Guides
parente76766d79c3063b873b75bd2080c654f3f6d71ba (diff)
Added [in-progress] Developer Guides
Updated mkdocs.yml, README.md. Text wrap markdowns at 80. Bug-AGL: [SPEC-3633] Signed-off-by: Shankho Boron Ghosh <shankhoghosh123@gmail.com> Change-Id: I2d7b43cb870e97786d3eb101c60a2071cc50f0be Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/documentation/+/25498 Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'docs/3_Developer_Guides')
-rw-r--r--docs/3_Developer_Guides/1_AGL_Layers/1_Overview.md29
-rw-r--r--docs/3_Developer_Guides/1_AGL_Layers/2_meta-agl.md124
-rw-r--r--docs/3_Developer_Guides/1_AGL_Layers/3_meta-agl-demo.md166
-rw-r--r--docs/3_Developer_Guides/1_AGL_Layers/4_meta-agl-devel.md145
4 files changed, 464 insertions, 0 deletions
diff --git a/docs/3_Developer_Guides/1_AGL_Layers/1_Overview.md b/docs/3_Developer_Guides/1_AGL_Layers/1_Overview.md
new file mode 100644
index 0000000..5df8217
--- /dev/null
+++ b/docs/3_Developer_Guides/1_AGL_Layers/1_Overview.md
@@ -0,0 +1,29 @@
+---
+title: Overview
+---
+
+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.
diff --git a/docs/3_Developer_Guides/1_AGL_Layers/2_meta-agl.md b/docs/3_Developer_Guides/1_AGL_Layers/2_meta-agl.md
new file mode 100644
index 0000000..0a8ab83
--- /dev/null
+++ b/docs/3_Developer_Guides/1_AGL_Layers/2_meta-agl.md
@@ -0,0 +1,124 @@
+---
+title: meta-agl
+---
+
+## 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/ 3.1.2/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).
+
diff --git a/docs/3_Developer_Guides/1_AGL_Layers/3_meta-agl-demo.md b/docs/3_Developer_Guides/1_AGL_Layers/3_meta-agl-demo.md
new file mode 100644
index 0000000..df412ae
--- /dev/null
+++ b/docs/3_Developer_Guides/1_AGL_Layers/3_meta-agl-demo.md
@@ -0,0 +1,166 @@
+---
+title: meta-agl-demo
+---
+
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/meta-agl-demo-guides-devguides-book.yml -->
+
+## Introduction
+
+The `meta-agl-demo` layer is the reference user interface layer for the DEMO
+platform of Automotive Grade Linux (AGL).
+The layer provides a reference platform and applications.
+The BitBake target name for the DEMO platform is `agl-demo-platform`, which is
+the full DEMO platform image.
+
+## Layer Dependencies
+
+This section describes dependencies for the `meta-agl-demo` layer.
+Dependencies are grouped into base, hardware, and feature dependencies.
+
+### Base Dependencies
+
+The `meta-agl-demo` layer has the following base dependencies:
+
+* Yocto Project Release:
+
+ - URI: git://git.yoctoproject.org/poky
+ - Branch: "thud"
+ - Tested Revision: See the [`default.xml`](https://github.com/leon-anavi/AGL-repo/blob/master/default.xml)
+ manifest file for the `AGL-repo` repository for revision
+ information.<br/><br/>
+
+* AGL `meta-agl` Layer:
+
+ - URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
+ - Branch: "master"<br/><br/>
+
+* OpenEmbedded `meta-openembedded` Layer:
+
+ - Branch: "thud"
+ - Tested Revision: See the [`default.xml`](https://github.com/leon-anavi/AGL-repo/blob/master/default.xml)
+ manifest file for the `AGL-repo` repository for revision
+ information.
+
+ Specifically, out of `meta-openembedded`, these sub-layers are used:
+
+ - `meta-oe`
+ - `meta-multimedia`
+ - `meta-networking`
+ - `meta-python`<br/><br/>
+
+* Yocto Project `meta-qt5` Layer from the
+ [OpenEmbedded Layer Index](https://layers.openembedded.org/layerindex/branch/master/layers/):
+
+ - URI: https://github.com/meta-qt5/meta-qt5.git
+ - Branch: "thud"
+ - Tested Revision: See the [`default.xml`](https://github.com/leon-anavi/AGL-repo/blob/master/default.xml)
+ manifest file for the `AGL-repo` repository for revision
+ information.<br/><br/>
+
+### Hardware Dependencies
+
+Aside from the previously listed base dependencies, if you are using a
+[supported Renesas board](../getting_started/reference/getting-started/machines/renesas.html)
+supported Renesas board, these dependencies exist:
+
+* AGL's `meta-renesas` Layer:
+
+ - URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
+
+### Feature Dependencies
+
+The `meta-agl-demo` layer has the following AGL
+[feature](../getting_started/reference/getting-started/image-workflow-initialize-build-environment.html#agl-features)
+dependencies:
+
+* Yocto Project `meta-security` Layer:
+
+ - URI: https://git.yoctoproject.org/cgit/cgit.cgi/meta-security
+ - Branch: "master"
+ - Tested Revision: See the [`default.xml`](https://github.com/leon-anavi/AGL-repo/blob/master/default.xml)
+ manifest file for the `AGL-repo` repository for revision
+ information.<br/><br/>
+
+* AGL's `meta-app-framework` Layer within the `meta-agl` Layer:
+
+ - URI: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git
+ - Branch: "master"<br/><br/>
+
+**The `agl-sota` Feature:**
+
+* Here Technologies' `meta-updater` Layer:
+
+ - URI: https://github.com/advancedtelematic/meta-updater/
+ - Branch: "thud"<br/><br/>
+
+* Here Technologies' `meta-updater-qemux86-64` Layer:
+
+ - URI: https://github.com/advancedtelematic/meta-updater-qemux86-64/
+ - Branch: "thud"<br/><br/>
+
+* OpenEmbedded's `meta-openembedded` Layer:
+
+ - URI: https://github.com/openembedded/meta-openembedded
+ - Branch: "thud"
+ - Tested Revision: See the [`default.xml`](https://github.com/leon-anavi/AGL-repo/blob/master/default.xml)
+ manifest file for the `AGL-repo` repository for revision
+ information.
+
+ Specifically, out of `meta-openembedded`, these sub-layers are used:
+
+ - `meta-filesystems`
+ - `meta-oe`
+ - `meta-python`<br/><br/>
+
+**The `agl-netboot` Feature:**
+
+* AGL's `meta-netboot` Layer within the `meta-agl` Layer:
+
+ - URI: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git
+ - Branch: "master"
+
+
+## Packagegroups
+
+AGL DEMO Platform's
+[packagegroups](https://www.yoctoproject.org/docs/3.1.2/dev-manual/dev-manual.html#usingpoky-extend-customimage-customtasks)
+consist of the following:
+
+### packagegroup-agl-demo-platform
+
+This packagegroup is used for generating the `agl-demo-platform` image,
+which is the full image for the AGL distributions IVI profile.
+You can see the recipe (i.e. `agl-demo-platform.bb`) that installs
+the `packagegroup-agl-demo-platform` packagegroup
+[here](https://git.automotivelinux.org/AGL/meta-agl-demo/tree/recipes-platform/images/agl-demo-platform.bb).
+
+As meta-agl's design of packagegroups, the `agl-demo-platform.bb` recipe installs
+only `packagegroup-agl-demo-platform` and the packages of the DEMO applications.
+
+``agl-demo-platform`` contains the following three packagegroups:
+
+ * `packagegroup-agl-image-minimal`
+ * `packagegroup-agl-image-ivi`
+ * `packagegroup-agl-demo-platform`
+
+### packagegroup-agl-appfw*
+
+These packagegroups contain packages for the AGL distribution's
+Application Framework.
+Subsystem should maintain `packagegroup-agl-appfw-[subsystem].bb`, which
+should hold sufficient packages for the Application Framework.
+
+Subsystems also can maintain their own packagegroups using appropriate
+`recipes-*/`.
+For example, Qt5 has two packagegroups in `meta-agl-demo`:
+`packagegroup-agl-appfw-native-qt5` and `packagegroup-agl-demo-qt-examples`,
+which are under `recipes-qt/`.
+
+The `packagegroup-agl-appfw-native-qt5` is included by
+`packagegroup-agl-appfw-native` because Qt5 belongs to native application
+framework of AGL Distro.
+
+Because the `packagegroup-agl-demo-qt-examples` is not mandatory for
+the AGL Application Framework and the AGL DEMO, the packagegroup is added
+to the layer's `local.conf` file only when needed.
+
diff --git a/docs/3_Developer_Guides/1_AGL_Layers/4_meta-agl-devel.md b/docs/3_Developer_Guides/1_AGL_Layers/4_meta-agl-devel.md
new file mode 100644
index 0000000..859d958
--- /dev/null
+++ b/docs/3_Developer_Guides/1_AGL_Layers/4_meta-agl-devel.md
@@ -0,0 +1,145 @@
+---
+title: meta-agl-devel
+---
+
+<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/meta-agl-devel-guides-devguides-book.yml -->
+
+## 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.