summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-04-22 20:48:47 -0400
committerScott Murray <scott.murray@konsulko.com>2019-04-23 10:58:40 -0400
commite64cdaccca7309e2d3c5da798e01fbea227bd465 (patch)
tree60025a0074482b69d8982af4c1dbd8eec4d46554
Define telematics demo platform. This layer is similar to meta-agl-demo and meta-agl-cluster-demo, except it defines a small platform for the telematics demo, based on the agl-profile-telematics profile. There is a "agl-telematics-demo" feature defined to enable building the platform. The defined agl-telematics-demo-platform image contains a minimal amount of services to host a simple demo application that reads CAN events and logs them via the MQTT protocol. At the moment, only the raspberrypi3 version has been built and tested, but there is nothing platform specific in the agl-telematics-demo-recorder application that would prevent use on another platform. Change-Id: I0ed94eefeff703afdcec81884bf16c10c63de28f Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-rw-r--r--.gitignore1
-rw-r--r--.gitreview5
-rw-r--r--README.md92
-rw-r--r--conf/conf-notes.txt4
-rw-r--r--conf/include/agl-telematics-demo.inc5
-rw-r--r--conf/layer.conf12
-rw-r--r--recipes-config/agl-login-manager/agl-login-manager_%.bbappend1
-rw-r--r--recipes-connectivity/cluster-connman-conf/cluster-connman-conf/cluster.config3
-rw-r--r--recipes-connectivity/cluster-connman-conf/cluster-connman-conf_1.0.bb15
-rw-r--r--recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/0001-remove-Fido-service-provider.patch31
-rw-r--r--recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bbappend4
-rw-r--r--recipes-core/udev/sw-gpsd-udev-conf/60-sw-gpsd.rules8
-rw-r--r--recipes-core/udev/sw-gpsd-udev-conf_1.0.bb16
-rw-r--r--recipes-core/udev/usb-can-udev-conf/60-usb-can.rules7
-rw-r--r--recipes-core/udev/usb-can-udev-conf/slcand-default2
-rw-r--r--recipes-core/udev/usb-can-udev-conf/slcand@.service13
-rw-r--r--recipes-core/udev/usb-can-udev-conf_1.0.bb25
-rw-r--r--recipes-demo/telematics-recorder/telematics-recorder_git.bb25
-rw-r--r--recipes-navigation/gpsd/gpsd/sw-device-hook23
-rw-r--r--recipes-navigation/gpsd/gpsd_%.bbappend9
-rw-r--r--recipes-platform/images/agl-telematics-demo-platform-crosssdk.bb21
-rw-r--r--recipes-platform/images/agl-telematics-demo-platform.bb13
-rw-r--r--recipes-platform/images/agl-telematics-demo-platform.inc3
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb34
-rw-r--r--templates/feature/agl-telematics-demo/50_bblayers.conf.inc5
-rw-r--r--templates/feature/agl-telematics-demo/50_local.conf.inc2
-rw-r--r--templates/feature/agl-telematics-demo/included.dep1
27 files changed, 380 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b25c15b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*~
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..d08c3f7
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.automotivelinux.org
+port=29418
+project=AGL/meta-agl-telematics-demo
+defaultbranch=master
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..dee8854
--- /dev/null
+++ b/README.md
@@ -0,0 +1,92 @@
+**README.md for the 'meta-agl-telematics-demo' layer.**
+
+**See README-AGL.md in meta-agl for general information about Automotive Grade Linux.**
+
+
+meta-agl-telematics-demo, the layer for the Telematics DEMO platform of Automotive Grade Linux
+=================================================================================
+
+The layer 'meta-agl-telematics-demo' provides a reference/demo platform and
+applications for the AGL Distribution.
+
+AGL is creating an automotive specific Linux distribution (AGL UCB) that unifies
+the software that has been written in a number of places already,
+such as GENIVI and Tizen IVI.
+
+The AGL community appreciates feedback, ideas, suggestion, bugs and
+documentation just as much as code. Please join the irc conversation
+at the #automotive channel on irc.freenode.net and our mailing list.
+
+For infomation for subscribing to the mailing list
+ [automotive-discussions](http://lists.linuxfoundation.org/mailman/listinfo/automotive-discussions)
+For information about AGL Distribution, see the
+ [AGL Distribution](https://wiki.automotivelinux.org/agl-distro)
+For information abount Getting started with AGL
+ [here](https://wiki.automotivelinux.org/start/getting-started)
+For information about contributing to the AGL Distro
+ [here](https://wiki.automotivelinux.org/agl-distro/contributing)
+
+
+Quick start guide
+-----------------
+See README-AGL.md in meta-agl
+
+
+Layer Dependencies
+------------------
+
+* Base dependencies [agl-telematics-demo]:
+
+URI: git://git.yoctoproject.org/poky
+
+URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
+
+URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl-devel
+
+URI: git://git.openembedded.org/meta-openembedded
+
+Specifically out of meta-openembedded these sub-layers are used:
+
+ - meta-openembedded/meta-oe
+ - meta-openembedded/meta-multimedia
+ - meta-openembedded/meta-efl
+ - meta-openembedded/meta-networking
+ - meta-openembedded/meta-python
+ - meta-openembedded/meta-ruby
+
+* Hardware dependencies:
+
+The Raspberry Pi 3 board depends in addition on:
+
+URI: http://git.yoctoproject.org/meta-raspberrypi
+
+
+Packagegroups
+-------------
+
+AGL Telematics Demo Platform's package group design:
+
+* packagegroup-agl-telematics-demo-platform
+
+This is for generating the image 'agl-telematics-demo-platform' which is a full
+image for the Telematics profile of the AGL distro.
+
+Following meta-agl's design of packagegroups, ``agl-telematics-demo-platform.bb``
+contains only ``packagegroup-agl-telematics-demo-platform``.
+
+``packagegroup-agl-telematics-demo-platform`` has one packagegroup in it,
+``packagegroup-agl-profile-telematics``, and the packages required for the DEMO
+applications.
+
+Supported Machines
+------------------
+
+At the moment only the Raspberry Pi 3 has been tested, but the other
+AGL supported platforms (see `README-AGL.md` in meta-agl layer), should work.
+
+Supported Target of bitbake
+------------------------
+
+* `agl-telematics-demo-platform` is the full image of the AGL Telematics
+Demo Platform with all applications
+
diff --git a/conf/conf-notes.txt b/conf/conf-notes.txt
new file mode 100644
index 0000000..2060128
--- /dev/null
+++ b/conf/conf-notes.txt
@@ -0,0 +1,4 @@
+Common targets are:
+ agl-cluster-demo-platform
+ agl-cluster-demo-platform-crosssdk
+ agl-cluster-demo-platform-qa
diff --git a/conf/include/agl-telematics-demo.inc b/conf/include/agl-telematics-demo.inc
new file mode 100644
index 0000000..a8847e0
--- /dev/null
+++ b/conf/include/agl-telematics-demo.inc
@@ -0,0 +1,5 @@
+IMAGE_FEATURES =+ "debug-tweaks"
+
+#DISTRO_FEATURES_append = " "
+
+#IMAGE_INSTALL_append = " "
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..14892b5
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,12 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH =. "${LAYERDIR}:"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "agl-telematics-demo"
+BBFILE_PATTERN_agl-telematics-demo = "^${LAYERDIR}/"
+BBFILE_PRIORITY_agl-telematics-demo = "7"
+
+LAYERSERIES_COMPAT_agl-telematics-demo = "thud"
diff --git a/recipes-config/agl-login-manager/agl-login-manager_%.bbappend b/recipes-config/agl-login-manager/agl-login-manager_%.bbappend
new file mode 100644
index 0000000..7b7cd35
--- /dev/null
+++ b/recipes-config/agl-login-manager/agl-login-manager_%.bbappend
@@ -0,0 +1 @@
+LOGIN_USER ?= "0"
diff --git a/recipes-connectivity/cluster-connman-conf/cluster-connman-conf/cluster.config b/recipes-connectivity/cluster-connman-conf/cluster-connman-conf/cluster.config
new file mode 100644
index 0000000..6ce2a76
--- /dev/null
+++ b/recipes-connectivity/cluster-connman-conf/cluster-connman-conf/cluster.config
@@ -0,0 +1,3 @@
+[service_cluster_ethernet]
+Type=ethernet
+IPv4=@CLUSTER_DEMO_SERVER_IP@/255.255.255.0
diff --git a/recipes-connectivity/cluster-connman-conf/cluster-connman-conf_1.0.bb b/recipes-connectivity/cluster-connman-conf/cluster-connman-conf_1.0.bb
new file mode 100644
index 0000000..78528aa
--- /dev/null
+++ b/recipes-connectivity/cluster-connman-conf/cluster-connman-conf_1.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Cluster demo connman configuration"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://cluster.config"
+
+CLUSTER_DEMO_SERVER_IP ?= "192.168.20.99"
+
+do_install() {
+ install -d ${D}${localstatedir}/lib/connman
+ sed "s/@CLUSTER_DEMO_SERVER_IP@/${CLUSTER_DEMO_SERVER_IP}/g" \
+ ${WORKDIR}/cluster.config > ${D}${localstatedir}/lib/connman/cluster.config
+}
+
+FILES_${PN} += "${localstatedir}/*"
diff --git a/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/0001-remove-Fido-service-provider.patch b/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/0001-remove-Fido-service-provider.patch
new file mode 100644
index 0000000..c1545c7
--- /dev/null
+++ b/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/0001-remove-Fido-service-provider.patch
@@ -0,0 +1,31 @@
+diff --git a/serviceproviders.xml b/serviceproviders.xml
+index e7f36ac..f1a0ca3 100644
+--- a/serviceproviders.xml
++++ b/serviceproviders.xml
+@@ -2236,26 +2236,6 @@ conceived.
+
+ <!-- Canada -->
+ <country code="ca">
+- <provider>
+- <name>Fido</name>
+- <gsm>
+- <network-id mcc="302" mnc="370"/>
+- <apn value="internet.fido.ca">
+- <plan type="postpaid"/>
+- <usage type="internet"/>
+- <username>fido</username>
+- <password>fido</password>
+- <dns>204.92.15.211</dns>
+- <dns>207.181.101.4</dns>
+- </apn>
+- <apn value="mms.fido.ca">
+- <usage type="mms"/>
+- <name>Fido MMS</name>
+- <mmsc>http://mms.fido.ca</mmsc>
+- <mmsproxy>mm1.fido.ca:80</mmsproxy>
+- </apn>
+- </gsm>
+- </provider>
+ <provider>
+ <name>Rogers</name>
+ <gsm>
diff --git a/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bbappend b/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bbappend
new file mode 100644
index 0000000..35ef26f
--- /dev/null
+++ b/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bbappend
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://0001-remove-Fido-service-provider.patch"
+
diff --git a/recipes-core/udev/sw-gpsd-udev-conf/60-sw-gpsd.rules b/recipes-core/udev/sw-gpsd-udev-conf/60-sw-gpsd.rules
new file mode 100644
index 0000000..a554700
--- /dev/null
+++ b/recipes-core/udev/sw-gpsd-udev-conf/60-sw-gpsd.rules
@@ -0,0 +1,8 @@
+# udev rules for gpsd for Sierra Wireless modems
+SUBSYSTEM!="tty", GOTO="sw_gpsd_rules_end"
+
+ENV{ID_VENDOR_ID}=="1199", ATTRS{bInterfaceNumber}=="02", SYMLINK+="gps%n", TAG+="systemd", ENV{SYSTEMD_WANTS}="gpsdctl@%k.service"
+
+ACTION=="remove", TAG+="systemd", ENV{SYSTEMD_WANTS}="gpsdctl@%k.service"
+
+LABEL="sw_gpsd_rules_end"
diff --git a/recipes-core/udev/sw-gpsd-udev-conf_1.0.bb b/recipes-core/udev/sw-gpsd-udev-conf_1.0.bb
new file mode 100644
index 0000000..9b6fd57
--- /dev/null
+++ b/recipes-core/udev/sw-gpsd-udev-conf_1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Sierra-Wireless MC7xxx modem gpsd udev configuration"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://60-sw-gpsd.rules"
+
+do_compile[noexec] = "1"
+
+do_install() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/60-sw-gpsd.rules ${D}${sysconfdir}/udev/rules.d/
+ fi
+}
+
+RDEPENDS_${PN} += "systemd"
diff --git a/recipes-core/udev/usb-can-udev-conf/60-usb-can.rules b/recipes-core/udev/usb-can-udev-conf/60-usb-can.rules
new file mode 100644
index 0000000..3aa800a
--- /dev/null
+++ b/recipes-core/udev/usb-can-udev-conf/60-usb-can.rules
@@ -0,0 +1,7 @@
+# udev rules for USB CAN adapters
+SUBSYSTEM!="tty", GOTO="usb_can_rules_end"
+
+# VScom USB-CAN Plus
+ATTRS{idProduct}=="6015", ATTRS{idVendor}=="0403", SYMLINK+="usbcan%n", TAG+="systemd", ENV{SYSTEMD_WANTS}="slcand@%k.service"
+
+LABEL="usb_can_rules_end"
diff --git a/recipes-core/udev/usb-can-udev-conf/slcand-default b/recipes-core/udev/usb-can-udev-conf/slcand-default
new file mode 100644
index 0000000..a86552f
--- /dev/null
+++ b/recipes-core/udev/usb-can-udev-conf/slcand-default
@@ -0,0 +1,2 @@
+# Defaults for VScom USB-CAN Plus @ 500 Kb/s CAN rate
+SLCAND_OPTS="-o -s6 -t hw -S 3000000"
diff --git a/recipes-core/udev/usb-can-udev-conf/slcand@.service b/recipes-core/udev/usb-can-udev-conf/slcand@.service
new file mode 100644
index 0000000..3c30e51
--- /dev/null
+++ b/recipes-core/udev/usb-can-udev-conf/slcand@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Serial CAN daemon (can-utils)
+BindsTo=dev-%i.device
+After=dev-%i.device
+
+[Service]
+Type=forking
+StopWhenUnneeded=yes
+Environment=SLCAND_OPTS="-o -c -s6" SLCAND_DEV=can0
+EnvironmentFile=-/etc/default/slcand
+EnvironmentFile=-/etc/sysconfig/slcand
+ExecStart=/usr/bin/slcand $SLCAND_OPTS %I $SLCAND_DEV
+ExecStartPost=/bin/sh -c '/bin/sleep 3; /sbin/ip link set $SLCAND_DEV up'
diff --git a/recipes-core/udev/usb-can-udev-conf_1.0.bb b/recipes-core/udev/usb-can-udev-conf_1.0.bb
new file mode 100644
index 0000000..fb5deec
--- /dev/null
+++ b/recipes-core/udev/usb-can-udev-conf_1.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "USB CAN adapter udev configuration"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://60-usb-can.rules \
+ file://slcand@.service \
+ file://slcand-default \
+"
+
+do_compile[noexec] = "1"
+
+do_install() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/60-usb-can.rules ${D}${sysconfdir}/udev/rules.d/
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/slcand@.service ${D}${systemd_system_unitdir}/
+ install -d ${D}${sysconfdir}/default
+ install -m 0644 ${WORKDIR}/slcand-default ${D}${sysconfdir}/default/slcand
+ fi
+}
+
+FILES_${PN} += "${systemd_system_unitdir}"
+
+RDEPENDS_${PN} += "systemd"
diff --git a/recipes-demo/telematics-recorder/telematics-recorder_git.bb b/recipes-demo/telematics-recorder/telematics-recorder_git.bb
new file mode 100644
index 0000000..148c8b3
--- /dev/null
+++ b/recipes-demo/telematics-recorder/telematics-recorder_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Telematics Recorder AGL Demonstration"
+DESCRIPTION = "AGL Application for demonstrating telematics recorder functionality"
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/agl-telematics-demo-recorder"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-telematics-demo-recorder;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "${AGL_APP_REVISION}"
+
+PV = "1.0+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+# build-time dependencies
+DEPENDS = "glib-2.0 mosquitto"
+
+inherit cmake aglwgt
+
+RDEPENDS_${PN} += " \
+ agl-service-can-low-level \
+ agl-service-gps \
+ agl-service-network \
+ libmosquitto1 \
+"
diff --git a/recipes-navigation/gpsd/gpsd/sw-device-hook b/recipes-navigation/gpsd/gpsd/sw-device-hook
new file mode 100644
index 0000000..e1e6f7a
--- /dev/null
+++ b/recipes-navigation/gpsd/gpsd/sw-device-hook
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# Figure out the parent usb device
+USBDEV=`ls -l "$1" |sed -ne 's!^c[^ ]* [0-9]* [^ ]* [^ ]* \([0-9]*\), \([0-9]*\) .*!/sys/dev/char/\1:\2/device/../..!p'`
+
+# Silently ignore any non-USB ports
+if [ ! -r "$USBDEV/idVendor" ] || [ ! -r "$USBDEV/idProduct" ]; then
+ exit 0
+fi
+
+VID=`cat "$USBDEV/idVendor"`
+PID=`cat "$USBDEV/idProduct"`
+case "$2" in
+ ACTIVATE) CMD=START ;;
+ *) CMD=STOP ;;
+esac
+
+case "$VID:$PID" in
+ "1199:9071"|"1199:9079") echo \$GPS_$CMD >"$1" ;;
+ *) ;;
+esac
+
+exit 0
diff --git a/recipes-navigation/gpsd/gpsd_%.bbappend b/recipes-navigation/gpsd/gpsd_%.bbappend
new file mode 100644
index 0000000..80e91f0
--- /dev/null
+++ b/recipes-navigation/gpsd/gpsd_%.bbappend
@@ -0,0 +1,9 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://sw-device-hook"
+
+do_install_append() {
+ # Install device-hook script for starting NMEA output on Sierra Wireless modems
+ install -d ${D}${sysconfdir}/gpsd
+ install -m 0755 ${WORKDIR}/sw-device-hook ${D}${sysconfdir}/gpsd/device-hook
+}
diff --git a/recipes-platform/images/agl-telematics-demo-platform-crosssdk.bb b/recipes-platform/images/agl-telematics-demo-platform-crosssdk.bb
new file mode 100644
index 0000000..75b4f5c
--- /dev/null
+++ b/recipes-platform/images/agl-telematics-demo-platform-crosssdk.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Cross SDK of AGL Distribution for telematics profile Demo"
+
+DESCRIPTION = "SDK image for AGL Distribution for Telematics profile Demo. \
+It includes the full meta-toolchain, plus developement headers and libraries \
+to form a standalone cross SDK."
+
+require agl-telematics-demo-platform.bb
+
+LICENSE = "MIT"
+
+IMAGE_FEATURES_append = " dev-pkgs"
+IMAGE_INSTALL_append = " kernel-dev kernel-devsrc"
+
+inherit populate_sdk
+
+# Task do_populate_sdk and do_rootfs can't be exec simultaneously.
+# Both exec "createrepo" on the same directory, and so one of them
+# can failed (randomly).
+addtask do_populate_sdk after do_rootfs
+
+TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules "
diff --git a/recipes-platform/images/agl-telematics-demo-platform.bb b/recipes-platform/images/agl-telematics-demo-platform.bb
new file mode 100644
index 0000000..403f4b7
--- /dev/null
+++ b/recipes-platform/images/agl-telematics-demo-platform.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "AGL Telematics Demo Platform image."
+
+require agl-telematics-demo-platform.inc
+
+LICENSE = "MIT"
+
+IMAGE_FEATURES_append = " \
+ "
+
+IMAGE_INSTALL_append = " \
+ packagegroup-agl-telematics-demo-platform \
+ "
+
diff --git a/recipes-platform/images/agl-telematics-demo-platform.inc b/recipes-platform/images/agl-telematics-demo-platform.inc
new file mode 100644
index 0000000..bd3a89e
--- /dev/null
+++ b/recipes-platform/images/agl-telematics-demo-platform.inc
@@ -0,0 +1,3 @@
+# Base image
+require recipes-platform/images/agl-image-telematics.inc
+
diff --git a/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb
new file mode 100644
index 0000000..e3614de
--- /dev/null
+++ b/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb
@@ -0,0 +1,34 @@
+SUMMARY = "The software for AGL telematics profile demo platform"
+DESCRIPTION = "A set of packages belonging to the AGL telematics demo platform"
+
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-telematics-demo-platform \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
+
+RDEPENDS_${PN} += "\
+ packagegroup-agl-profile-telematics \
+ "
+
+AGL_APPS = " \
+ telematics-recorder \
+ "
+
+AGL_APIS = " \
+ agl-service-gps \
+ "
+
+RDEPENDS_${PN}_append = " \
+ gpsd \
+ sw-gpsd-udev-conf \
+ usb-can-udev-conf \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'ofono-tests gps-utils' , '', d)} \
+ ${AGL_APPS} \
+ ${AGL_APIS} \
+"
+# packagegroup-agl-core-navigation? (brings in geoclue...)
diff --git a/templates/feature/agl-telematics-demo/50_bblayers.conf.inc b/templates/feature/agl-telematics-demo/50_bblayers.conf.inc
new file mode 100644
index 0000000..e3eec40
--- /dev/null
+++ b/templates/feature/agl-telematics-demo/50_bblayers.conf.inc
@@ -0,0 +1,5 @@
+# This layer contains the telematics demo code only
+#-----------------------------------------------------------
+BBLAYERS =+ " \
+ ${METADIR}/meta-agl-telematics-demo \
+"
diff --git a/templates/feature/agl-telematics-demo/50_local.conf.inc b/templates/feature/agl-telematics-demo/50_local.conf.inc
new file mode 100644
index 0000000..64c8714
--- /dev/null
+++ b/templates/feature/agl-telematics-demo/50_local.conf.inc
@@ -0,0 +1,2 @@
+#see meta-agl-telematics-demo/conf/include/agl-telematics-demo.inc
+require conf/include/agl-telematics-demo.inc
diff --git a/templates/feature/agl-telematics-demo/included.dep b/templates/feature/agl-telematics-demo/included.dep
new file mode 100644
index 0000000..e5009f9
--- /dev/null
+++ b/templates/feature/agl-telematics-demo/included.dep
@@ -0,0 +1 @@
+agl-profile-telematics