From 4cc7f73109602bfe4fe05397a73afa585d3cc92d Mon Sep 17 00:00:00 2001 From: Vinod Ahuja Date: Thu, 16 Mar 2023 18:18:55 -0500 Subject: [PATCH] Updating AGL Layer documentation As per the guidance on Jira Ticket 3247 I have updated the AGL layer documentation. Bug-AGL: [SPEC-3247] Signed-off-by: Vinod Ahuja Change-Id: Ibc97a5841b128da7dac7be314474dfb57ae7acd0 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/documentation/+/28575 Reviewed-by: Jan-Simon Moeller Tested-by: Jan-Simon Moeller --- .../02_AGL_Layers/02_meta_agl.md | 120 +++++++++--------- .../02_AGL_Layers/03_meta_agl_demo.md | 53 +++----- .../02_AGL_Layers/04_meta_agl_devel.md | 136 ++++----------------- .../02_AGL_Layers/05_conf_notes.md | 43 +++++++ 4 files changed, 136 insertions(+), 216 deletions(-) create mode 100644 docs/04_Developer_Guides/02_AGL_Layers/05_conf_notes.md diff --git a/docs/04_Developer_Guides/02_AGL_Layers/02_meta_agl.md b/docs/04_Developer_Guides/02_AGL_Layers/02_meta_agl.md index b8813a1..0f5d57e 100644 --- a/docs/04_Developer_Guides/02_AGL_Layers/02_meta_agl.md +++ b/docs/04_Developer_Guides/02_AGL_Layers/02_meta_agl.md @@ -22,23 +22,21 @@ Following is a "tree" look at the layer: ``` . +├── LICENSE +├── LICENSE.GPL-2.0-only +├── LICENSE.MIT +├── README-AGL.md +├── README.md -> meta-agl.md +├── agl-layers-overview.md ├── 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-agl-core +├── meta-agl-core-test +├── meta-agl-ic +├── meta-agl-ivi +├── meta-agl.md ├── meta-netboot -├── meta-security -├── README-AGL.md -├── README.md +├── meta-pipewire ├── scripts ├── templates ``` @@ -46,34 +44,20 @@ Following is a "tree" look at the layer: This list provides some overview information on the files and sub-layers in `meta-agl`: +* LICENSE* : licenses of the various components. +* README* : RTFM +* agl-layers-overview.md: references to the various layers that make up 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-agl-core`: This is the core layer with essential recipes and the distro. +* `meta-agl-core-test`: recipes supporting qa images (separate layer due to external dependencies) +* `meta-agl-ic`: Instrument Cluster platform +* `meta-agl-ivi`: IVI platform * `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. +* `meta-pipewire`: Configuration and recipes supporting pipewire as audio manager * `scripts`: AGL development setup and support scripts. * `templates`: Base, feature, and machine templates used in the AGL development environment. @@ -84,40 +68,46 @@ This section describes the AGL [packagegroup](https://docs.yoctoproject.org/dev-manual/common-tasks.html#customizing-images-using-custom-package-groups) design: -* packagegroup-agl-image-minimal +### core non-ui packagegroups +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb + +### graphical subsystem +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb + +### image-related packagegroups +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb +* meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb + +### QA/Test related packagegroups +* meta-agl-core-test/recipes-test/packagegroups +* meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb + +## Images + +### (Barely) bootable image +* meta-agl-core/recipes-platform/images/agl-image-boot.bb - 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 +### minimal image and SDK (console) +* meta-agl-core/recipes-platform/images/agl-image-minimal.bb +* meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.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. +### weston-based image for re-use +* meta-agl-core/recipes-platform/images/agl-image-weston.bb - Subsystem should maintain packagegroup-agl-core-[subsystem].bb which should - hold sufficient packages to build `agl-image-minimal`. +### image for use in the YP autobuilder +* meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb -* packagegroup-agl-image-ivi +### image with extra QA tooling (e.g. to run LTP) +* meta-agl-core-test/images/agl-image-minimal-qa.bb - 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 +**Note:** For update details on this page please refer - Additional tools used in QA tests (for agl-image*-qa). + diff --git a/docs/04_Developer_Guides/02_AGL_Layers/03_meta_agl_demo.md b/docs/04_Developer_Guides/02_AGL_Layers/03_meta_agl_demo.md index dbfe374..f610a16 100644 --- a/docs/04_Developer_Guides/02_AGL_Layers/03_meta_agl_demo.md +++ b/docs/04_Developer_Guides/02_AGL_Layers/03_meta_agl_demo.md @@ -22,7 +22,7 @@ The `meta-agl-demo` layer has the following base dependencies: - Yocto Project Release: - URI: git://git.yoctoproject.org/poky - - Branch: "thud" + - Branch: "kirkstone" - 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. @@ -50,7 +50,7 @@ The `meta-agl-demo` layer has the following base dependencies: [OpenEmbedded Layer Index](https://layers.openembedded.org/layerindex/branch/master/layers/): - URI: https://github.com/meta-qt5/meta-qt5.git - - Branch: "thud" + - Branch: "kirkstone" - 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. @@ -87,17 +87,17 @@ dependencies: - Here Technologies' `meta-updater` Layer: - URI: https://github.com/advancedtelematic/meta-updater/ - - Branch: "thud" + - Branch: "kirkstone" - Here Technologies' `meta-updater-qemux86-64` Layer: - URI: https://github.com/advancedtelematic/meta-updater-qemux86-64/ - - Branch: "thud" + - Branch: "kirkstone" - OpenEmbedded's `meta-openembedded` Layer: - URI: https://github.com/openembedded/meta-openembedded - - Branch: "thud" + - Branch: "kirkstone" - 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. @@ -115,44 +115,19 @@ dependencies: - URI: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git - Branch: "master" +## Maintenance -## Packagegroups - -AGL DEMO Platform's [packagegroups](https://www.yoctoproject.org/docs/3.1.4/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` +All patches must be submitted via the AGL Gerrit instance at +. See this wiki page for +details: -- 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. +Layer maintainers: - Subsystems also can maintain their own packagegroups using appropriate - `recipes-*/`. +* Jan-Simon Möller - 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. +**Note:** For update details on this page please refer - 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/04_Developer_Guides/02_AGL_Layers/04_meta_agl_devel.md b/docs/04_Developer_Guides/02_AGL_Layers/04_meta_agl_devel.md index d662ed5..79ec58a 100644 --- a/docs/04_Developer_Guides/02_AGL_Layers/04_meta_agl_devel.md +++ b/docs/04_Developer_Guides/02_AGL_Layers/04_meta_agl_devel.md @@ -15,129 +15,41 @@ 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 +├── docs +├── LICENSE +├── LICENSE.GPL-2.0-only +├── LICENSE.MIT +├── meta-agl-devel.md +├── meta-agl-jailhouse +├── meta-agl-lxc +├── meta-agl-ros2 +├── meta-oem-production-readiness +├── meta-speech-framework ├── README.md -├── templates +└── 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-speech-framework`: Provides libraries and software packages needed by + for speech recognition. -* `meta-audio-4a-framework`: A collection of recipes used for the - first integration of 4A (i.e. Advanced AGL Audio Architecture). +* `meta-agl-jailhouse`: Provides Jailhouse partitioning hypervisor and + supporting packages. -* `meta-pipewire`: A collection of recipes used for the integration - of the pipewire sound system. +* `meta-agl-lxc`: Provides LXC container support and example images. -* `meta-audio-soundmanager-framework`: Supports the Soundmanager - Audio Framework features, which maps to the `agl-audio-soundmanager-framework` - AGL feature. +* `meta-agl-ros2`: Provides ROS2 and additional YDLIDAR support. -* `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-oem-production-readiness`: Provides libraries and software packages of + IVI product readiness -* `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-agl-flutter`: Provides Flutter support. -* `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. +* `templates`: Feature templates that support the `meta-agl-devel` layer. -* `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](../../01_Getting_Started/02_Building_AGL_Image/04_Initializing_Your_Build_Environment.md)" -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](../../01_Getting_Started/02_Building_AGL_Image/04_Initializing_Your_Build_Environment.md)" -section. - -Once you have included the AGL feature, you can build your image. +**Note:** For update details on this page please refer + + diff --git a/docs/04_Developer_Guides/02_AGL_Layers/05_conf_notes.md b/docs/04_Developer_Guides/02_AGL_Layers/05_conf_notes.md new file mode 100644 index 0000000..c0595bc --- /dev/null +++ b/docs/04_Developer_Guides/02_AGL_Layers/05_conf_notes.md @@ -0,0 +1,43 @@ +--- +title: config-notes +--- + +Common targets are: +- meta-agl layer: + - included by default + * agl-image-boot (just enough to boot) + * agl-image-minimal (minimal filesystem with APIs) + * agl-image-minimal-crosssdk (crosssdk for ^^) + + * agl-image-weston (minimal filesystem with weston) + +- meta-agl-demo: (IVI demo with UI) + - with 'agl-demo' + * agl-image-ivi (base for IVI targets) + * agl-image-ivi-crosssdk (sdk for ^^) + + * agl-image-graphical-qt5 (weston plus qt5 framework libs) + * agl-image-graphical-qt5-crosssdk (sdk for ^^) + + * agl-image-graphical-html5 (weston plus chromium for html5) + + * agl-image-cluster (minimal image with APIs for cluster) + * agl-image-cluster-qt5 (image with QT5 and APIs for cluster) + + * agl-image-telematics (image with APIs for telematics) + + * agl-demo-platform (* default IVI demo target *) + * agl-demo-platform-crosssdk (sdk for ^^) + + * agl-cluster-demo-platform (cluster demo image) + * agl-cluster-demo-platform-crosssdk (sdk for ^^) + * agl-cluster-demo-qtcompositor (cluster demo using own compositor) + + * agl-telematics-demo-platform (telematics demo image) + * agl-telematics-demo-platform-crosssdk (sdk for ^^) + + + +**Note:** For update details on this page please refer + + -- 2.16.6