diff options
Diffstat (limited to 'meta-agl-demo')
78 files changed, 1447 insertions, 662 deletions
diff --git a/meta-agl-demo/.gitreview b/meta-agl-demo/.gitreview index d3a39dae..efd4c751 100644 --- a/meta-agl-demo/.gitreview +++ b/meta-agl-demo/.gitreview @@ -2,4 +2,4 @@ host=gerrit.automotivelinux.org port=29418 project=AGL/meta-agl-demo -defaultbranch=halibut +defaultbranch=icefish diff --git a/meta-agl-demo/README.md b/meta-agl-demo/README.md index c8d86760..847c773b 100644 --- a/meta-agl-demo/README.md +++ b/meta-agl-demo/README.md @@ -84,24 +84,25 @@ URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas > branch : master * The feature `agl-sota` has these dependencies: - * `meta-agl-extra/meta-sota` - > URI: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl-extra.git - > branch : master + * `meta-updater` + > URI: https://github.com/advancedtelematic/meta-updater/ + > branch : thud + > tested revision: e4dd74565f429b576e84972d12cc1ae2048be119 + + * `meta-updater-qemux86-64` + > URI: https://github.com/advancedtelematic/meta-updater-qemux86-64/ + > branch : thud + > tested revision: 214e14c4c45625842e542eebd696f903060d488f * `meta-openembedded` > layer : meta-openembedded - > branch : jethro - > tested revision: 8ab04afbffb4bc5184cfe0655049de6f44269990 + > branch : thud + > tested revision: 9b3b907f30b0d5b92d58c7e68289184fda733d3e * specifically: * `meta-openembedded/meta-filesystems` - * `meta-openembedded/meta-ruby` - - - * `meta-rust` - > URI: https://github.com/konsulko/meta-rust - > branch : jethro - > tested revision: 395cde581938d862abb6a9219c0118c81cf01da2 + * `meta-openembedded/meta-oe` + * `meta-openembedded/meta-python` * The feature `agl-netboot` has these dependenies: * `meta-agl/meta-netboot` diff --git a/meta-agl-demo/conf/include/agl-demo-preload.inc b/meta-agl-demo/conf/include/agl-demo-preload.inc new file mode 100644 index 00000000..a17d1403 --- /dev/null +++ b/meta-agl-demo/conf/include/agl-demo-preload.inc @@ -0,0 +1,4 @@ +DISTRO_FEATURES_append = " agl-demo-preload" + +# Use demo device mapping for low-can that enables sllin0 +PREFERRED_RPROVIDER_virtual/low-can-dev-mapping = "dev-mapping-demo" diff --git a/meta-agl-demo/meta-agl-demo.md b/meta-agl-demo/meta-agl-demo.md index 43a41ad3..c7b11de9 100755 --- a/meta-agl-demo/meta-agl-demo.md +++ b/meta-agl-demo/meta-agl-demo.md @@ -75,17 +75,22 @@ dependencies: manifest file for the `AGL-repo` repository for revision information.<br/><br/> -* AGL's `meta-app-framework` Layer Within the `meta-agl` Layer: +* 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:** -* AGL's `meta-sota` Layer Within the `meta-agl-extra` Layer: +* Here Technologies' `meta-updater` Layer: - - URI: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl-extra.git - - Branch: "master"<br/><br/> + - 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: @@ -95,12 +100,15 @@ dependencies: manifest file for the `AGL-repo` repository for revision information. - In particular, the `meta-openembedded` layer depends on the - `meta-filesystems` sub-layer.<br/><br/> + 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: +* AGL's `meta-netboot` Layer within the `meta-agl` Layer: - URI: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git - Branch: "master" diff --git a/meta-agl-demo/recipes-apis/agl-service-can-high-level-viwi/agl-service-can-high-level-viwi.bb b/meta-agl-demo/recipes-apis/agl-service-can-high-level-viwi/agl-service-can-high-level-viwi.bb new file mode 100644 index 00000000..7cc58dd7 --- /dev/null +++ b/meta-agl-demo/recipes-apis/agl-service-can-high-level-viwi/agl-service-can-high-level-viwi.bb @@ -0,0 +1,19 @@ +SUMMARY = "High level ViWi service" +DESCRIPTION = "AGL High Level service using ViWi protocol to expose CAN API." +HOMEPAGE = "https://git.automotivelinux.org/apps/agl-service-can-high-level-viwi/" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5de84541278ea4e62cacfdc0f890c459" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-can-high-level-viwi;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +PV = "4.0+git${SRCPV}" +S = "${WORKDIR}/git" + +# Run-time dependencies +RDEPENDS_${PN} += "agl-service-can-low-level" + +inherit cmake aglwgt + +AGLWGT_AUTOINSTALL_${PN} := "0" diff --git a/meta-agl-demo/recipes-config/cluster-demo-simulator/cluster-demo-simulator.bb b/meta-agl-demo/recipes-config/cluster-demo-simulator/cluster-demo-simulator.bb new file mode 100644 index 00000000..171ea167 --- /dev/null +++ b/meta-agl-demo/recipes-config/cluster-demo-simulator/cluster-demo-simulator.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Simulate can messages of a driving car" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "\ + file://cluster-demo-simulator.service \ + file://simple_can_simulator.py \ +" + +inherit systemd + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "cluster-demo-simulator.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/cluster-demo-simulator.service ${D}${systemd_system_unitdir} + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/simple_can_simulator.py ${D}${sbindir} +} + +FILES_${PN} += "${systemd_system_unitdir}" + +RDEPENDS_${PN} = " \ + can-utils \ + python3 \ +" diff --git a/meta-agl-demo/recipes-config/cluster-demo-simulator/files/cluster-demo-simulator.service b/meta-agl-demo/recipes-config/cluster-demo-simulator/files/cluster-demo-simulator.service new file mode 100644 index 00000000..04d41c6c --- /dev/null +++ b/meta-agl-demo/recipes-config/cluster-demo-simulator/files/cluster-demo-simulator.service @@ -0,0 +1,13 @@ +[Unit] +Description=Cluster demo driving simulator +After=sllin-demo.service sllin-demo-virtual.service cluster-lin-bridging.service +Requires=sllin-demo.service sllin-demo-virtual.service cluster-lin-bridging.service + +[Service] +Type=simple +Restart=always +RestartSec=1 +ExecStart=/usr/bin/python3 /usr/sbin/simple_can_simulator.py + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-demo/recipes-config/cluster-demo-simulator/files/simple_can_simulator.py b/meta-agl-demo/recipes-config/cluster-demo-simulator/files/simple_can_simulator.py new file mode 100755 index 00000000..83f88706 --- /dev/null +++ b/meta-agl-demo/recipes-config/cluster-demo-simulator/files/simple_can_simulator.py @@ -0,0 +1,381 @@ +#!/usr/bin/env python3 +# Copyright (c) 2016 Alex Bencz +# Copyright (c) 2019 Konsulko Group, smurray@konsulko.com +# Copyright (c) 2020 The Linux Foundation, jsmoeller@linuxfoundation.org +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +# of the Software, and to permit persons to whom the Software is furnished to do +# so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# +# CANSocket from: +# +# https://github.com/abencz/python_socketcan/blob/master/python_socketcan_example.py +# + +import sys +import socket +import argparse +import struct +import errno +import threading +import time + +class CANSocket(object): + FORMAT = "<IB3x8s" + FD_FORMAT = "<IB3x64s" + + def __init__(self, interface=None): + self.sock = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW) + if interface is not None: + self.bind(interface) + + def bind(self, interface): + self.sock.bind((interface,)) + self.sock.setsockopt(socket.SOL_CAN_RAW, socket.CAN_RAW_FD_FRAMES, 1) + + def send(self, can_id, data, flags=0): + can_id = can_id | flags + can_pkt = struct.pack(self.FORMAT, can_id, len(data), data) + self.sock.send(can_pkt) + + def sendfd(self, can_id, data, flags=0): + can_id = can_id | flags + datafd = data.ljust(64, b'\x00'); + can_pkt = struct.pack(self.FD_FORMAT, can_id, len(datafd), datafd) + self.sock.send(can_pkt) + + def recv(self, flags=0): + can_pkt = self.sock.recv(72) + + if len(can_pkt) == 16: + can_id, length, data = struct.unpack(self.FORMAT, can_pkt) + else: + can_id, length, data = struct.unpack(self.FD_FORMAT, can_pkt) + + can_id &= socket.CAN_EFF_MASK + return (can_id, data[:length]) + +class VehicleSimulator(object): + DEFAULT_IDLE_RPM = 600 + + def __init__(self): + self.CRUISEMODE = False + self.CRUISEACTIVE = False + self.CRUISESPEED = 0 + self.CRUISERPM = 0 + self.freq = 10 + self.vehicle_speed = 0 + self.engine_speed = self.DEFAULT_IDLE_RPM + self.thread = threading.Thread(target=self.run, daemon=True) + self.lock = threading.Lock() + + def reset(self): + with self.lock: + self.vehicle_speed = 0 + self.engine_speed = self.DEFAULT_IDLE_RPM + + def start(self): + self.thread.start() + + def get_engine_speed(self): + with self.lock: + return int(self.engine_speed) + + def get_vehicle_speed(self): + with self.lock: + return int(self.vehicle_speed) + + def accelerate(self, target_speed, target_rpm, duration, bycruise = False): + if target_speed <= self.vehicle_speed: + return + v = (target_speed - self.vehicle_speed) / (duration * self.freq) + r = (target_rpm - self.engine_speed) / (duration * self.freq) + while self.vehicle_speed < target_speed and (not self.CRUISEACTIVE or bycruise): + with self.lock: + self.vehicle_speed += v; + self.engine_speed += r; + time.sleep(1 / self.freq) + + def brake(self, target_speed, target_rpm, duration, bycruise = False): + if target_speed >= self.vehicle_speed: + return + v = (self.vehicle_speed - target_speed) / (duration * self.freq) + r = (self.engine_speed - target_rpm) / (duration * self.freq) + while self.vehicle_speed > target_speed and (not self.CRUISEACTIVE or bycruise): + with self.lock: + self.vehicle_speed -= v; + self.engine_speed -= r; + time.sleep(1 / self.freq) + + def increase(self, bycruise = True): + if self.CRUISEACTIVE: + target_speed = self.vehicle_speed + 5 + target_rpm = self.engine_speed * 1.1 + self.accelerate(target_speed, target_rpm, 2, bycruise) + + def decrease(self, bycruise = True): + if self.CRUISEACTIVE: + target_speed = self.vehicle_speed - 5 + target_rpm = self.engine_speed * 0.9 + self.brake(target_speed, target_rpm, 2, bycruise) + + def resume(self, bycruise = True): + target_speed = self.CRUISESPEED + target_rpm = self.CRUISERPM + current_speed = self.get_vehicle_speed() + if target_speed > current_speed: + self.accelerate(target_speed, target_rpm, 2, bycruise) + else: + self.brake(target_speed, target_rpm, 2, bycruise) + + def run(self): + while True: + if not self.CRUISEACTIVE: + self.accelerate(80, 3000, 5) + self.accelerate(104, 4000, 3) + self.brake(80, 3000, 3) + self.accelerate(104, 4000, 6) + self.brake(40, 2000, 4) + self.accelerate(90, 3000, 5) + self.brake(1, 650, 5) + if not self.CRUISEACTIVE: + self.reset() + time.sleep(5) + +class DiagnosticMessageHandler(object): + def __init__(self, can_sock, simulator, verbose=False): + self.can_sock = can_sock + self.simulator = simulator + self.verbose = verbose + self.thread = threading.Thread(target=self.run, daemon=True) + + def start(self): + self.thread.start() + + def run(self): + while True: + can_id, data = self.can_sock.recv() + #print('%03X#%s' % (can_id, ''.join(format(x, '02X') for x in data))) + if can_id == 0x7df: + # OBD-II request + if data[1] == 0x01 and data[2] == 0x0C: + # Engine speed + speed = self.simulator.get_engine_speed() + #print('engine speed = %d' % speed) + if speed > 16383.75: + speed = 16383.75 + reply = [ 0x04, 0x41, 0x0C ] + reply.append(4 * speed // 256) + reply.append(4 * speed % 256) + # pad remaining bytes to make 8 + reply.append(0) + reply.append(0) + reply.append(0) + self.can_sock.send(0x7e8, bytes(reply), 0) + elif data[1] == 0x01 and data[2] == 0x0D: + # Vehicle speed + speed = int(self.simulator.get_vehicle_speed()) % 256 + #print('vehicle speed = %d' % speed) + reply = [ 0x03, 0x41, 0x0D ] + reply.append(speed) + # pad remaining bytes to make 8 + reply.append(0) + reply.append(0) + reply.append(0) + reply.append(0) + self.can_sock.send(0x7e8, bytes(reply), 0) + +class SteeringWheelMessageHandler(object): + def __init__(self, can_sock, simulator, verbose=False): + self.can_sock = can_sock + self.simulator = simulator + self.verbose = verbose + self.thread = threading.Thread(target=self.run, daemon=True) + self.buttonpressed = False + self.buttonenabled = False + self.buttoncancel = False + self.buttondec = False + self.buttoninc = False + self.cruisemode = False + self.cruiseactive = False + + def start(self): + self.thread.start() + + def run(self): + while True: + can_id, data = self.can_sock.recv() + #print('%03X#%s' % (can_id, ''.join(format(x, '02X') for x in data))) + if can_id == 0x21: + #print('%03X#%s' % (can_id, ''.join(format(x, '02X') for x in data))) + if data: + #if data[6]: + #print('data6: %02X' % (data[6])) + if data[6] == 0x80 and not self.buttonpressed: + # we do skip any further lin messages + # two buttons at the same time won't work + # (aka unlikely w/o twisting fingers) + self.buttonpressed = True + self.buttonenabled = True + if data[6] == 0x08 and not self.buttonpressed: + self.buttonpressed = True + self.buttoncancel = True + if data[6] == 0x10 and not self.buttonpressed: + self.buttonpressed = True + self.buttondec = True + if data[6] == 0x40 and not self.buttonpressed: + self.buttonpressed = True + self.buttoninc = True + if data[6] == 0x00 and self.buttonpressed: + #now handle it as the button was released + if self.buttonenabled: + self.buttonenabled = False + self.cruisemode = not self.cruisemode + #print("set cruisemode to %s" % self.cruisemode) + self.simulator.CRUISEMODE = self.cruisemode + # disable/reset all if going off + if not self.cruisemode: + self.cruiseactive = False + self.simulator.CRUISEACTIVE = self.cruiseactive + self.simulator.CRUISESPEED = 0 + self.simulator.CRUISERPM = 0 + #print("set cruiseactive to %s" % self.cruiseactive) + if self.buttoncancel: + self.buttoncancel = False + self.simulator.CRUISESPEED = self.simulator.get_vehicle_speed() + self.simulator.CRUISERPM = self.simulator.get_engine_speed() + #print("set cruisespeed to %d" % self.simulator.CRUISESPEED ) + #print("set cruiserpm to %d" % self.simulator.CRUISERPM ) + self.cruiseactive = False + #print("set cruiseactive to %s" % self.cruiseactive ) + self.simulator.CRUISEACTIVE = self.cruiseactive + if self.buttondec: + self.buttondec = False + if self.cruiseactive: + #print("decrease") + self.simulator.decrease() + else: + # set speed + #print("set speed") + self.simulator.CRUISESPEED = self.simulator.get_vehicle_speed() + self.simulator.CRUISERPM = self.simulator.get_engine_speed() + #print("set cruisespeed to %d" % self.simulator.CRUISESPEED ) + #print("set cruiserpm to %d" % self.simulator.CRUISERPM ) + self.cruiseactive = not self.cruiseactive + #print("set cruiseactive to %s" % self.cruiseactive ) + self.simulator.CRUISEACTIVE = self.cruiseactive + if self.buttoninc: + self.buttoninc = False + if self.cruiseactive: + #print("increase") + self.simulator.increase() + else: + if self.simulator.CRUISESPEED > 0: + # resume + self.cruiseactive = not self.cruiseactive + self.simulator.CRUISEACTIVE = self.cruiseactive + #print("set cruiseactive to %s" % self.cruiseactive ) + #print("resume") + self.simulator.resume() + self.buttonpressed = False + + +class StatusMessageSender(object): + def __init__(self, can_sock, simulator, verbose=False): + self.can_sock = can_sock + self.simulator = simulator + self.verbose = verbose + self.thread = threading.Thread(target=self.run, daemon=True) + + def start(self): + self.thread.start() + + def run(self): + while True: + # Engine speed + speed = self.simulator.get_engine_speed() + if self.verbose: + print('engine speed = %d' % speed) + if speed > 16383.75: + speed = 16383.75 + # Message is 1 byte unknown, 1 byte fuel level, 2 bytes engine speed (4x), fuel low @ bit 55 + msg = [ 0, 0 ] + speed *= 4 + msg.append(speed // 256) + msg.append(speed % 256) + # pad remaining bytes to make 8 + msg.append(0) + msg.append(0) + msg.append(0) + msg.append(0) + self.can_sock.send(0x3d9, bytes(msg), 0) + + # Vehicle speed + speed = int(self.simulator.get_vehicle_speed()) % 256 + if self.verbose: + print('vehicle speed = %d' % speed) + # Message is 15 bits speed (64x), left aligned + msg = [ ] + # Note: extra 2x to yield required left-alignment + speed *= 128 + msg.append(speed // 256) + msg.append(speed % 256) + # pad remaining bytes to make 8 + msg.append(0) + msg.append(0) + msg.append(0) + msg.append(0) + msg.append(0) + msg.append(0) + self.can_sock.send(0x3e9, bytes(msg), 0) + + # Sleep 100 ms + time.sleep(0.1) + +def main(): + parser = argparse.ArgumentParser(description='Simple CAN vehicle simulator.') + parser.add_argument('interface', type=str, help='interface name (e.g. vcan0)') + parser.add_argument('-v', '--verbose', help='increase output verbosity', action='store_true') + args = parser.parse_args() + + try: + can_sock = CANSocket(args.interface) + diag_can_sock = CANSocket(args.interface) + steeringwheel_can_sock = CANSocket(args.interface) + except OSError as e: + sys.stderr.write('Could not listen on interface {0}\n'.format(args.interface)) + sys.exit(e.errno) + + print('Using {0}'.format(args.interface)) + sim = VehicleSimulator() + status_sender = StatusMessageSender(can_sock, sim, args.verbose) + diag_handler = DiagnosticMessageHandler(diag_can_sock, sim, args.verbose) + steeringwheel_handler = SteeringWheelMessageHandler(steeringwheel_can_sock, sim, args.verbose) + sim.start() + status_sender.start() + diag_handler.start() + steeringwheel_handler.start() + try: + while True: + time.sleep(60) + except (KeyboardInterrupt, SystemExit): + #sim.stop() + sys.exit(0) + +if __name__ == '__main__': + main() diff --git a/meta-agl-demo/recipes-config/cluster-lin-bridging-config/cluster-lin-bridging-config.bb b/meta-agl-demo/recipes-config/cluster-lin-bridging-config/cluster-lin-bridging-config.bb new file mode 100644 index 00000000..2b6567a7 --- /dev/null +++ b/meta-agl-demo/recipes-config/cluster-lin-bridging-config/cluster-lin-bridging-config.bb @@ -0,0 +1,29 @@ +DESCRIPTION = "Configure LIN to external CAN bridging" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "\ + file://cluster-lin-bridging.service \ +" + +inherit systemd + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "cluster-lin-bridging.service" +SYSTEMD_AUTO_ENABLE_${PN} = "enable" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/cluster-lin-bridging.service ${D}${systemd_system_unitdir} +} + +FILES_${PN} += "${systemd_system_unitdir}" + +RDEPENDS_${PN} = " \ + can-utils \ + sllin \ + sllin-virtual \ +" diff --git a/meta-agl-demo/recipes-config/cluster-lin-bridging-config/files/cluster-lin-bridging.service b/meta-agl-demo/recipes-config/cluster-lin-bridging-config/files/cluster-lin-bridging.service new file mode 100644 index 00000000..1dde3378 --- /dev/null +++ b/meta-agl-demo/recipes-config/cluster-lin-bridging-config/files/cluster-lin-bridging.service @@ -0,0 +1,11 @@ +[Unit] +Description=LIN to CAN bridging +After=sllin-demo.service sllin-demo-virtual.service +Requires=sllin-demo.service sllin-demo-virtual.service + +[Service] +Type=simple +ExecStart=/usr/bin/candump -s 2 -B can0 sllin0 + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-demo/recipes-config/dev-mapping-demo/dev-mapping-demo/dev-mapping.conf.demo b/meta-agl-demo/recipes-config/dev-mapping-demo/dev-mapping-demo/dev-mapping.conf.demo new file mode 100644 index 00000000..93b0a020 --- /dev/null +++ b/meta-agl-demo/recipes-config/dev-mapping-demo/dev-mapping-demo/dev-mapping.conf.demo @@ -0,0 +1,6 @@ +; Default CAN device mapping +; Format has to follow ini rules key="value", notice " around value. + +[CANbus-mapping] +hs="can0" +ls="sllin0" diff --git a/meta-agl-demo/recipes-config/dev-mapping-demo/dev-mapping-demo_1.0.bb b/meta-agl-demo/recipes-config/dev-mapping-demo/dev-mapping-demo_1.0.bb new file mode 100644 index 00000000..4a04ce13 --- /dev/null +++ b/meta-agl-demo/recipes-config/dev-mapping-demo/dev-mapping-demo_1.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "AGL demo device mapping configuration file" +DESCRIPTION = "This provide default dev-mapping.conf file \ + that defines mapping between kernel device and logical name \ + used in low-can binding for the AGL demo setup." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI += "file://dev-mapping.conf.demo" + +inherit allarch + +do_install() { + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/dev-mapping.conf.demo ${D}${sysconfdir}/dev-mapping.conf +} + +RPROVIDES_${PN} = "virtual/low-can-dev-mapping" diff --git a/meta-agl-demo/recipes-config/unicens-config/files/unicens-config.sh b/meta-agl-demo/recipes-config/unicens-config/files/unicens-config.sh index 8d6072d3..1f7fd390 100644 --- a/meta-agl-demo/recipes-config/unicens-config/files/unicens-config.sh +++ b/meta-agl-demo/recipes-config/unicens-config/files/unicens-config.sh @@ -109,27 +109,28 @@ echo mdev2:ep01:ep01-6ch.6x16 > /sys/devices/virtual/most/mostcore/aims/sound/ad # interface: mdev2 # aim: sound -# name: ep81-2ch.2x16 +# name: ep81-1ch.1x16 echo rx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_direction 2>/dev/null echo sync > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_datatype 2>/dev/null echo 8 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_number_of_buffers 2>/dev/null echo 2048 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_buffer_size 2>/dev/null -echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_subbuffer_size 2>/dev/null -echo 128 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_packets_per_xact 2>/dev/null +echo 2 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_subbuffer_size 2>/dev/null +echo 256 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_packets_per_xact 2>/dev/null -echo mdev2:ep81:ep81-2ch.2x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link 2>/dev/null +echo mdev2:ep81:ep81-1ch.1x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link 2>/dev/null # interface: mdev2 # aim: sound -# name: ep82-2ch.2x16 +# name: ep82-1ch.1x16 echo rx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_direction 2>/dev/null echo sync > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_datatype 2>/dev/null echo 8 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_number_of_buffers 2>/dev/null echo 2048 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_buffer_size 2>/dev/null -echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_subbuffer_size 2>/dev/null -echo 128 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_packets_per_xact 2>/dev/null +echo 2 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_subbuffer_size 2>/dev/null +echo 256 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_packets_per_xact 2>/dev/null + +echo mdev2:ep82:ep82-1ch.1x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link 2>/dev/null -echo mdev2:ep82:ep82-2ch.2x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link 2>/dev/null ##aim: cdev ##name: inic-usb-itx1 echo tx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_direction 2>/dev/null @@ -140,45 +141,3 @@ echo 188 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_subbuffer_s echo 2 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_packets_per_xact 2>/dev/null echo mdev2:ep02:inic-usb-itx1 > /sys/devices/virtual/most/mostcore/aims/cdev/add_link 2>/dev/null - -##aim: sound -##name: ep02-2ch.2x16 -#echo tx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_direction -#echo sync > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_datatype -#echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_number_of_buffers -#echo 1024 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep02/set_buffer_size -#echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep01/set_subbuffer_size -#echo 128 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep01/set_packets_per_xact -# -#echo mdev2:ep02:ep02-2ch.2x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link -##aim: sound -##name: ep81-6ch.6x16 -#echo tx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_direction -#echo sync > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_datatype -#echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_number_of_buffers -#echo 1008 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_buffer_size -#echo 12 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_subbuffer_size -#echo 42 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_packets_per_xact -# -#echo mdev2:ep81:ep81-6ch.6x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link -##aim: sound -##name: ep82-6ch.6x16 -#echo tx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_direction -#echo sync > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_datatype -#echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_number_of_buffers -#echo 1008 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep81/set_buffer_size -#echo 12 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_subbuffer_size -#echo 42 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep82/set_packets_per_xact -# -#echo mdev2:ep82:ep82-6ch.6x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link -##aim: sound -##name: ep83-2ch.2x16 -#echo tx > /sys/devices/virtual/most/mostcore/devices/mdev2/ep83/set_direction -#echo sync > /sys/devices/virtual/most/mostcore/devices/mdev2/ep83/set_datatype -#echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep83/set_number_of_buffers -#echo 1024 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep83/set_buffer_size -#echo 4 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep83/set_subbuffer_size -#echo 128 > /sys/devices/virtual/most/mostcore/devices/mdev2/ep83/set_packets_per_xact -# -#echo mdev2:ep83:ep83-2ch.2x16 > /sys/devices/virtual/most/mostcore/aims/sound/add_link - diff --git a/meta-agl-demo/recipes-connectivity/btwilink-disable-conf/btwilink-disable-conf_1.0.bb b/meta-agl-demo/recipes-connectivity/btwilink-disable-conf/btwilink-disable-conf_1.0.bb index 9170a84e..0b49a027 100644 --- a/meta-agl-demo/recipes-connectivity/btwilink-disable-conf/btwilink-disable-conf_1.0.bb +++ b/meta-agl-demo/recipes-connectivity/btwilink-disable-conf/btwilink-disable-conf_1.0.bb @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 SRC_URI = "file://btwilink-disable.conf" -COMPATIBLE_MACHINE = "m3ulcb" +COMPATIBLE_MACHINE = "m3ulcb|h3ulcb" do_compile[noexec] = "1" diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/99-agl-led-rtc.rules b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/99-agl-led-rtc.rules new file mode 100644 index 00000000..34fa0678 --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/99-agl-led-rtc.rules @@ -0,0 +1,20 @@ +# skip instantiation of rtc in this processing +ACTION=="add", SUBSYSTEM=="i2c", DRIVER=="rtc-ds1307", GOTO="hwclock_end" + +# load the required drivers (if not already present) - your job to make sure they are there ! +ACTION=="add", ENV{DEVTYPE}=="usb_interface", ENV{DRIVER}=="i2c-tiny-usb", RUN+="/usr/bin/logger 'Loading leds-blinkm'", RUN+="/sbin/modprobe leds-blinkm" +ACTION=="add", ENV{DEVTYPE}=="usb_interface", ENV{DRIVER}=="i2c-tiny-usb", RUN+="/usr/bin/logger 'Loading rtc driver'", RUN+="/sbin/modprobe rtc-ds1307" + +# %k is the blinkm i2c device e.g. 6-0009 +ACTION=="add", ENV{DRIVER}=="blinkm", SUBSYSTEM=="i2c", RUN+="/usr/bin/logger 'the blinkm device is %k'", TAG+="systemd", ENV{SYSTEMD_WANTS}="hvac-json-in-rewrite@%k.service", GOTO="very_end" +# FIXME: We do not exclude the blinkm on the next lines, yet. The rule is too broad, but that is all we know already. Above is actually later in time. +# For now this is not critical as the rtc init will just fail and we're done. + +# %k is the i2c bus e.g. i2c-6 +ACTION=="add", SUBSYSTEM=="i2c", ATTRS{idProduct}=="c631", TAG+="systemd", ENV{SYSTEMD_WANTS}="rtc-i2c-attach@%k.service" + +# GOTO EXIT +LABEL="hwclock_end" +ACTION=="add", SUBSYSTEM=="rtc", RUN+="/bin/sleep 1", RUN+="/sbin/hwclock -f /dev/%k --hctosys --utc", TAG+="systemd" + +LABEL="very_end" diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac-json-in-rewrite.sh b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac-json-in-rewrite.sh new file mode 100755 index 00000000..55576601 --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac-json-in-rewrite.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# (C) 2018 Jan-Simon Möller, dl9pf@gmx.de, jsmoeller@linuxfoundation.org +# License: Apache License 2.0 + +#set -x +set -e + +if [ $1 ] ; then + # The device is always 0009 -> 9 . Only change is the i2c IF . + LED=`echo $1 | sed -e "s#0009#9#g"` + if [ $? -eq 0 ] ; then + echo "$LED" + sed -e "s#@DEVICE@#$LED#" /etc/hvac.json.in > /etc/hvac.json + else + echo "Invalid argument" + exit 1 + fi +else + echo "Need argument" + exit 1 +fi
\ No newline at end of file diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac-json-in-rewrite@.service b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac-json-in-rewrite@.service new file mode 100644 index 00000000..2fb09959 --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac-json-in-rewrite@.service @@ -0,0 +1,8 @@ +[Unit] +Description=AGL hvac LED write /etc/hvac.json +#Before= todo: add dependency of hvac service ? + +[Service] +Type=oneshot +ExecStartPre=/usr/bin/logger '#hvac i2c device has been attached - %i' +ExecStart=/usr/sbin/hvac-json-in-rewrite.sh %i diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac.json.in b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac.json.in new file mode 100644 index 00000000..01541a60 --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/hvac.json.in @@ -0,0 +1,7 @@ +{ + "ledtemp": { + "red": "/sys/class/leds/blinkm-@DEVICE@-red/brightness", + "green": "/sys/class/leds/blinkm-@DEVICE@-green/brightness", + "blue": "/sys/class/leds/blinkm-@DEVICE@-blue/brightness" + } +} diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/rtc-i2c-attach.sh b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/rtc-i2c-attach.sh new file mode 100755 index 00000000..b45d83aa --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/rtc-i2c-attach.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# ds1307 +echo "ds1307 0x68" > /sys/class/i2c-dev/$1/device/new_device + +#ds3231 +#echo "ds1307 0x57" > /sys/class/i2c-dev/$1/device/new_device + +#pcf85063 +#echo "pcf85063 0x51" > /sys/class/i2c-dev/$1/device/new_device + diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/rtc-i2c-attach@.service b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/rtc-i2c-attach@.service new file mode 100644 index 00000000..8788a25d --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf/rtc-i2c-attach@.service @@ -0,0 +1,4 @@ +[Service] +Type=oneshot +ExecStartPre=/bin/echo '#i2c rtc device has been attached' +ExecStart=/usr/sbin/rtc-i2c-attach.sh %i diff --git a/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf_1.0.bb b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf_1.0.bb new file mode 100644 index 00000000..04101cf3 --- /dev/null +++ b/meta-agl-demo/recipes-core/udev/demo-i2c-udev-conf_1.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "USB attached I2C demo hardware udev configuration" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://hvac-json-in-rewrite.sh \ + file://rtc-i2c-attach.sh \ + file://hvac-json-in-rewrite@.service \ + file://rtc-i2c-attach@.service \ + file://99-agl-led-rtc.rules \ + file://hvac.json.in \ +" + +do_compile[noexec] = "1" + +do_install() { + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/hvac.json.in ${D}${sysconfdir} + + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/hvac-json-in-rewrite.sh ${D}${sbindir} + install -m 0755 ${WORKDIR}/rtc-i2c-attach.sh ${D}${sbindir} + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/hvac-json-in-rewrite@.service ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/rtc-i2c-attach@.service ${D}${systemd_system_unitdir} + + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/99-agl-led-rtc.rules ${D}${sysconfdir}/udev/rules.d/ + fi +} + +FILES_${PN} += "${systemd_unitdir}" + +RDEPENDS_${PN} += "bash" diff --git a/meta-agl-demo/recipes-demo-hmi/alexa-viewer/alexa-viewer_git.bb b/meta-agl-demo/recipes-demo-hmi/alexa-viewer/alexa-viewer_git.bb new file mode 100644 index 00000000..f98704ee --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/alexa-viewer/alexa-viewer_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Demo voice capabilities template viewer for Alexa voiceagent" +DESCRIPTION = "Demo voice capabilities template viewer for Alexa voiceagent" +HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/#/admin/projects/apps/alexa-viewer" +SECTION = "apps" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" + +DEPENDS = " \ + qtquickcontrols2 \ + qlibwindowmanager \ + qlibhomescreen \ + af-binder \ + libqtappfw \ +" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/alexa-viewer;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git" + +inherit cmake_qt5 aglwgt + +OECMAKE_CXX_FLAGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '' , '-DQT_NO_DEBUG_OUTPUT', d)}" + +RDEPENDS_${PN} = " \ + libqtappfw \ + libafbwsc \ + qlibwindowmanager \ + qlibhomescreen \ + agl-service-voice-high-capabilities \ +" diff --git a/meta-agl-demo/recipes-demo-hmi/dashboard/dashboard_git.bb b/meta-agl-demo/recipes-demo-hmi/dashboard/dashboard_git.bb index 7ccbdeae..822207b1 100644 --- a/meta-agl-demo/recipes-demo-hmi/dashboard/dashboard_git.bb +++ b/meta-agl-demo/recipes-demo-hmi/dashboard/dashboard_git.bb @@ -13,6 +13,11 @@ PV = "1.0+git${SRCPV}" S = "${WORKDIR}/git" # build-time dependencies -DEPENDS += "qtquickcontrols2 qttools-native qtaglextras" +DEPENDS += "qtquickcontrols2 qttools-native qtaglextras libqtappfw" inherit qmake5 aglwgt + +RDEPENDS_${PN} += " \ + libqtappfw \ + agl-service-signal-composer \ +" diff --git a/meta-agl-demo/recipes-demo-hmi/html5-dashboard/html5-dashboard_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-dashboard/html5-dashboard_git.bb new file mode 100644 index 00000000..534bd2d3 --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-dashboard/html5-dashboard_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 dashboard Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-dashboard/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-dashboard;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/html5-homescreen/html5-homescreen_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-homescreen/html5-homescreen_git.bb new file mode 100644 index 00000000..68956263 --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-homescreen/html5-homescreen_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 Homescreen Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-homescreen/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-homescreen;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/html5-hvac/html5-hvac_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-hvac/html5-hvac_git.bb new file mode 100644 index 00000000..d45dc80d --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-hvac/html5-hvac_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 HVAC Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-hvac/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-hvac;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/html5-launcher/html5-launcher_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-launcher/html5-launcher_git.bb new file mode 100644 index 00000000..ce8a1d11 --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-launcher/html5-launcher_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 Launcher Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-launcher/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-launcher;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/html5-mediaplayer/html5-mediaplayer_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-mediaplayer/html5-mediaplayer_git.bb new file mode 100644 index 00000000..2b143766 --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-mediaplayer/html5-mediaplayer_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 Mediaplayer Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-mediaplayer/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-mediaplayer;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/html5-mixer/html5-mixer_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-mixer/html5-mixer_git.bb new file mode 100644 index 00000000..babef57c --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-mixer/html5-mixer_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 Mixer Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-mixer/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-mixer;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/html5-settings/html5-settings_git.bb b/meta-agl-demo/recipes-demo-hmi/html5-settings/html5-settings_git.bb new file mode 100644 index 00000000..dea1ec35 --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/html5-settings/html5-settings_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "AGL HTML5 Settings Application" +HOMEPAGE = "https://git.automotivelinux.org/apps/html5-settings/" +SECTION = "apps" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +PV = "1.0+git${SRCPV}" +S = "${WORKDIR}/git/" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/html5-settings;protocol=https;branch=${AGL_BRANCH}" +SRCREV = "${AGL_APP_REVISION}" + +DEPENDS += " nodejs-native" + +inherit aglwgt + +do_configure() { + cd ${B} + npm install +} + +do_aglwgt_package() { + cd ${B} + npm run build +} diff --git a/meta-agl-demo/recipes-demo-hmi/hvac/hvac_git.bb b/meta-agl-demo/recipes-demo-hmi/hvac/hvac_git.bb index 91255af1..93e85f45 100644 --- a/meta-agl-demo/recipes-demo-hmi/hvac/hvac_git.bb +++ b/meta-agl-demo/recipes-demo-hmi/hvac/hvac_git.bb @@ -13,7 +13,9 @@ PV = "1.0+git${SRCPV}" S = "${WORKDIR}/git" # build-time dependencies -DEPENDS += "qtquickcontrols2 libhomescreen qlibwindowmanager qttools-native qtaglextras" +DEPENDS += "qtquickcontrols2 libhomescreen \ + qlibwindowmanager qttools-native \ + qtaglextras libqtappfw" RDEPENDS_${PN} = "agl-service-hvac" inherit qmake5 aglwgt diff --git a/meta-agl-demo/recipes-demo-hmi/libqtappfw/libqtappfw_git.bb b/meta-agl-demo/recipes-demo-hmi/libqtappfw/libqtappfw_git.bb deleted file mode 100644 index 5d3019c7..00000000 --- a/meta-agl-demo/recipes-demo-hmi/libqtappfw/libqtappfw_git.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "AGL Qt AppFW Library" -DESCRIPTION = "libqtappfw" -HOMEPAGE = "http://docs.automotivelinux.org" -LICENSE = "Apache-2.0" -SECTION = "libs" - -BBCLASSEXTEND = "nativesdk" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" - -DEPENDS += "qtbase qtdeclarative qtwebsockets" - -inherit cmake_qt5 - -SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/libqtappfw;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "45ed097db45ee0a88d3acd274f242ed100274d47" -S = "${WORKDIR}/git/" - -# PV needs to be modified with SRCPV to work AUTOREV correctly -PV = "0.0+git${SRCPV}" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/libnaviapi-agl_git.bb b/meta-agl-demo/recipes-demo-hmi/navigation/libnaviapi-agl_git.bb deleted file mode 100644 index 87087e1a..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/libnaviapi-agl_git.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "AGL Navigation API Library" -DESCRIPTION = "AGL Navigation API ver 0.1.0 library for C++" -HOMEPAGE = "https://github.com/AGLExport/agl-service-navigation" -LICENSE = "Apache-2.0" -SECTION = "libs" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" - -DEPENDS = "af-binder json-c libdbus-c++ af-main-native" - -inherit cmake - -SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/agl-service-navigation;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "${AGL_APP_REVISION}" -S = "${WORKDIR}/git" - -# FIXME: Remove once CMake+ninja issues are resolved -OECMAKE_GENERATOR = "Unix Makefiles" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/0002-openssl-1.1-fixes.patch b/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/0002-openssl-1.1-fixes.patch deleted file mode 100644 index 9506ce11..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/0002-openssl-1.1-fixes.patch +++ /dev/null @@ -1,31 +0,0 @@ -gpsnavi: Fix compilation with OpenSSL 1.1 - -Handle the ERR_load_crypto_strings and ERR_free_strings functions no -longer being present in OpenSSL 1.1. - -Signed-off-by: Scott Murray <scott.murray@konsulko.com> - -diff --git a/src/sms/sms-core/SMCAL/SMCAL.c b/src/sms/sms-core/SMCAL/SMCAL.c -index eadab8f..2dfe1f3 100755 ---- a/src/sms/sms-core/SMCAL/SMCAL.c -+++ b/src/sms/sms-core/SMCAL/SMCAL.c -@@ -158,7 +158,9 @@ void SC_CAL_Initialize_OpenSSL() { - // 初期化
- ERR_load_BIO_strings();
- SSL_load_error_strings();
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- ERR_load_crypto_strings();
-+#endif
- OpenSSL_add_all_algorithms();
-
- // SSLの初期化(戻り値は常に1)
-@@ -542,7 +544,9 @@ E_SC_CAL_RESULT SC_CAL_DisConnect(SMCAL *cal) - if (NULL != cal->ssl.ctx) {
- SSL_CTX_free((SSL_CTX*)cal->ssl.ctx);
- }
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- ERR_free_strings();
-+#endif
-
- cal->ssl.ssl = NULL;
- cal->ssl.ctx = NULL;
diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/mapviewer-settings.sh b/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/mapviewer-settings.sh deleted file mode 100755 index 0d7bf205..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/mapviewer-settings.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -LMC=/usr/bin/LayerManagerControl -IFS=$'\n' - -SURFACEID=16777216 - -while : -do - /bin/sleep 1 - surfaces=() - for line in $($LMC get surfaces 2> /dev/null); do - if [ "X-" = "X$(echo $line | awk '{print $1}')" ]; then - surfaceid=$(echo $line | awk '{print $3}') - if [ "$surfaceid" = "$SURFACEID" ]; then - $LMC set surface $SURFACEID source region 0 0 384 368 - $LMC set surface $SURFACEID destination region 0 0 384 368 - $LMC set surface $SURFACEID visibility 1 - $LMC set layer 11001 render order $SURFACEID - exit - fi - fi - done -done diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/mapviewer.service b/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/mapviewer.service deleted file mode 100644 index 971327cc..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer/mapviewer.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Requires=afm-api-windowmanager@0.service -After=afm-api-windowmanager@0.service - -# mapviewer is a child application which can work with navigation. -# This app requires mapdata. It has to be stored at /var/mapdata/navi_data_UK . -# currently the position to be shown is 384x368 surface on screen 1 for cluster demo. - -[Service] -Environment="XDG_RUNTIME_DIR=/run/platform/display" -ExecStartPre=/bin/sleep 5 -ExecStart=/usr/bin/mapview -ExecStartPost=/usr/bin/LayerManagerControl create layer 11001 1920 1080 -ExecStartPost=/usr/bin/LayerManagerControl set layer 11001 visibility 1 -ExecStartPost=/usr/bin/LayerManagerControl set screen 1 render order 11001 -ExecStartPost=/usr/AGL/mapviewer/mapviewer-settings.sh -ExecStop=/usr/bin/killall -s KILL mapview -Type=simple -Restart=always - -[Install] -WantedBy=afm-user-session@.target diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer_%.bbappend b/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer_%.bbappend deleted file mode 100644 index a5597083..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer_%.bbappend +++ /dev/null @@ -1,25 +0,0 @@ -FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" - -SRC_URI_append = "\ - file://mapviewer-settings.sh \ - file://mapviewer.service \ -" - -inherit systemd - -SYSTEMD_PACKAGES = "${PN}" - -do_install_append() { - install -d ${D}${prefix}/AGL/${PN} - install -m 0755 ${WORKDIR}/mapviewer-settings.sh ${D}${prefix}/AGL/${PN}/ - - # Install systemd unit file - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_system_unitdir} - install -m 644 ${WORKDIR}/mapviewer.service ${D}${systemd_system_unitdir}/mapviewer.service - fi -} - -SYSTEMD_SERVICE_${PN} = "mapviewer.service" - -FILES_${PN} += "${prefix}/AGL/${PN}/" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer_git.bb b/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer_git.bb deleted file mode 100755 index 1922e7f1..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/mapviewer_git.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "AGL meter demo application." -DESCRIPTION = "This application provides the function of Meter cluster to AGL. " -HOMEPAGE = "https://github.com/AGLExport/mapviwer" -SECTION = "apps" - -LICENSE="GPLv2" -LIC_FILES_CHKSUM="file://LICENSE;md5=3595e9c703a847d990664d2b396a9df0 \ - file://COPYING;md5=947b2d60ca3872e172034438e9801200" - -DEPENDS = " \ - glib-2.0 freetype sqlite3 wayland zlib expat openssl virtual/libgles2 virtual/libgl virtual/egl \ - wayland \ - " - -RDEPENDS_${PN} = " navigation " - -SRCREV="2dfef5e9141ccb11f83d141c6a7dcbe0ecd49e84" -SRC_URI="git://github.com/AGLExport/mapviwer.git \ - file://0002-openssl-1.1-fixes.patch \ -" - -# To avoid C++ library link failure -SECURITY_CFLAGS = "" - -inherit autotools pkgconfig - -S = "${WORKDIR}/git" - diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps-jp_1.0.bb b/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps-jp_1.0.bb deleted file mode 100755 index 27979b3d..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps-jp_1.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "AGL Reference Navigation application Japan maps" -DESCRIPTION = "Preload the Japanese maps for the AGL Navigation application." -HOMEPAGE = "http://agl.wismobi.com/" -SECTION = "apps" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM="file://${COMMON_LICENSE_DIR}/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28" - -SRC_URI = "http://agl.wismobi.com/data/japan_TR9/navi_data.tar.gz" -SRC_URI[md5sum] = "4fd44b0633d44d41c07227d086cd299c" -SRC_URI[sha256sum] = "ce39a36741baccd6b40277acb8c81ebc181997c75483dffb46ccd22f7877295a" - -require navigation-maps.inc - -RCONFLICTS_${PN} = "navigation-maps-uk" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps-uk_1.0.bb b/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps-uk_1.0.bb deleted file mode 100755 index 1718c36b..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps-uk_1.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "AGL Reference Navigation application UK maps" -DESCRIPTION = "Preload the UK maps for the AGL Navigation application." -HOMEPAGE = "http://agl.wismobi.com/" -SECTION = "apps" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM="file://${COMMON_LICENSE_DIR}/Proprietary;md5=0557f9d92cf58f2ccdd50f62f8ac0b28" - -SRC_URI = "http://agl.wismobi.com/data/UnitedKingdom_TR9/navi_data_UK.tar.gz" -SRC_URI[md5sum] = "f711c6d2c88553a1de4db9f7e12f6e8e" -SRC_URI[sha256sum] = "515bdc81ac0615d541e0d18c186ad5cd24de2d47b60e13079a918f6dec802fd7" - -require navigation-maps.inc - -RCONFLICTS_${PN} = "navigation-maps-jp" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps.inc b/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps.inc deleted file mode 100755 index 49b7ab49..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation-maps.inc +++ /dev/null @@ -1,14 +0,0 @@ -DEPENDS = "tar-native" - -SRC_URI_append = ";downloadfilename=${BP}.tar.gz;unpack=0" - -do_compile[noexec] = "1" - -do_install () { - install -d ${D}${localstatedir}/mapdata - tar -C ${D}${localstatedir}/mapdata --no-same-owner -xf ${WORKDIR}/${BP}.tar.gz -} - -FILES_${PN} += "${localstatedir}/mapdata/*" - -RDEPENDS_${PN} += "navigation" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0001-switch-to-pipewire-output.patch b/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0001-switch-to-pipewire-output.patch deleted file mode 100644 index 53c1165d..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0001-switch-to-pipewire-output.patch +++ /dev/null @@ -1,34 +0,0 @@ -gpsnavi: Switch to pipewire output - -Update the talk scripts to use pipewire output via gst-launch-1.0 -instead of PulseAudio's paplay. gstreamer is used to allow using the -pipewire output sink and set its media role property. - -Upstream-Status: Inappropriate [no upstream] - -Signed-off-by: Scott Murray <scott.murray@konsulko.com> - -diff --git a/flite_agl.in b/flite_agl.in -index 28b512c..be41d66 100644 ---- a/flite_agl.in -+++ b/flite_agl.in -@@ -1,6 +1,6 @@ - #!/bin/sh - TMP=/tmp/navi.wav - echo "$1" | flite_hts_engine -m @datadir@/Voice/us/cmu_us_arctic_slt.htsvoice -o $TMP --paplay --property='media.role=Navi' $TMP -+gst-launch-1.0 filesrc location=$TMP ! decodebin ! audioconvert ! audioresample ! pwaudiosink stream-properties="p,media.role=Navigation" - rm -f $TMP - -diff --git a/jtalk_agl.in b/jtalk_agl.in -index 76900f4..0ca6975 100644 ---- a/jtalk_agl.in -+++ b/jtalk_agl.in -@@ -1,6 +1,6 @@ - #!/bin/sh - TMP=/tmp/navi.wav - echo "$1" | open_jtalk -ow $TMP -m @exec_prefix@/share/Voice/mei/mei_normal.htsvoice -x @exec_prefix@/share/dic/ --paplay --property='media.role=Navi' $TMP -+gst-launch-1.0 filesrc location=$TMP ! decodebin ! audioconvert ! audioresample ! pwaudiosink stream-properties="p,media.role=Navigation" - rm -f $TMP - diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0002-openssl-1.1-fixes.patch b/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0002-openssl-1.1-fixes.patch deleted file mode 100644 index 9506ce11..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0002-openssl-1.1-fixes.patch +++ /dev/null @@ -1,31 +0,0 @@ -gpsnavi: Fix compilation with OpenSSL 1.1 - -Handle the ERR_load_crypto_strings and ERR_free_strings functions no -longer being present in OpenSSL 1.1. - -Signed-off-by: Scott Murray <scott.murray@konsulko.com> - -diff --git a/src/sms/sms-core/SMCAL/SMCAL.c b/src/sms/sms-core/SMCAL/SMCAL.c -index eadab8f..2dfe1f3 100755 ---- a/src/sms/sms-core/SMCAL/SMCAL.c -+++ b/src/sms/sms-core/SMCAL/SMCAL.c -@@ -158,7 +158,9 @@ void SC_CAL_Initialize_OpenSSL() { - // 初期化
- ERR_load_BIO_strings();
- SSL_load_error_strings();
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- ERR_load_crypto_strings();
-+#endif
- OpenSSL_add_all_algorithms();
-
- // SSLの初期化(戻り値は常に1)
-@@ -542,7 +544,9 @@ E_SC_CAL_RESULT SC_CAL_DisConnect(SMCAL *cal) - if (NULL != cal->ssl.ctx) {
- SSL_CTX_free((SSL_CTX*)cal->ssl.ctx);
- }
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
- ERR_free_strings();
-+#endif
-
- cal->ssl.ssl = NULL;
- cal->ssl.ctx = NULL;
diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0003-update-permissions.patch b/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0003-update-permissions.patch deleted file mode 100644 index 1f1ee491..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/0003-update-permissions.patch +++ /dev/null @@ -1,22 +0,0 @@ -gpsnavi: Update permissions - -Add the new display and audio permissions required with the change to -running as non-root. - -Upstream-Status: Inappropriate [no upstream] - -Signed-off-by: Scott Murray <scott.murray@konsulko.com> - -diff --git a/agl/config.xml b/agl/config.xml -index 9d4c0ca..44de94a 100755 ---- a/agl/config.xml -+++ b/agl/config.xml -@@ -8,6 +8,8 @@ - <feature name="urn:AGL:widget:required-permission"> - <param name="urn:AGL:permission::public:no-htdocs" value="required" /> - <param name="http://tizen.org/privilege/internal/dbus" value="required" /> -+ <param name="urn:AGL:permission::public:display" value="required" /> -+ <param name="urn:AGL:permission::public:audio" value="required" /> - </feature> - <feature name="urn:AGL:widget:required-api"> - <param name="homescreen" value="ws" /> diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/download_mapdata_jp.sh b/meta-agl-demo/recipes-demo-hmi/navigation/navigation/download_mapdata_jp.sh deleted file mode 100755 index 15120f89..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/download_mapdata_jp.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# -# AGL Navigation mapdata download scripts -# - -#-------------------------------------------------------------- -help() -{ -bn=`basename $0` -cat << EOF -usage -host: sudo $bn 'target_rootfs_path/' -target : $bn / -EOF - -} -#-check para------------------------------------------------------- -shift `expr $OPTIND - 1` - -if [ $# != 1 ]; then - help - exit -fi - -rootfs=$1 - -#---------------------------------------------------------------- - -# check the if root? ------------------------------ -userid=`id -u` -if [ $userid -ne "0" ]; then - echo "you're not root? run with sudo" - exit -fi - -if [ ! -e $1 ]; then - echo "rootfs:$1 not found" - exit -fi - -if [ ! -f $HOME/navi_data.tar.gz ]; then - echo "no map data" - echo "start downloading..." - wget --directory-prefix=$HOME http://agl.wismobi.com/data/japan_TR9/navi_data.tar.gz -else - echo "use downloaded map data" -fi - -mapdatadir=$rootfs/var/mapdata - -if [ ! -d $mapdatadir ]; then - echo "map data directory does not exist" - echo "create a directory" $mapdatadir - mkdir -p $mapdatadir -else - echo "map data directory exists" -fi - -tar xvzf $HOME/navi_data.tar.gz -C $mapdatadir -sync -echo "done.." diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/download_mapdata_uk.sh b/meta-agl-demo/recipes-demo-hmi/navigation/navigation/download_mapdata_uk.sh deleted file mode 100755 index d1f9a796..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/download_mapdata_uk.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# -# AGL Navigation mapdata download scripts -# - -#-------------------------------------------------------------- -help() -{ -bn=`basename $0` -cat << EOF -usage -host: sudo $bn 'target_rootfs_path/' -target : $bn / -EOF - -} -#-check para------------------------------------------------------- -shift `expr $OPTIND - 1` - -if [ $# != 1 ]; then - help - exit -fi - -rootfs=$1 - -#---------------------------------------------------------------- - -# check the if root? ------------------------------ -userid=`id -u` -if [ $userid -ne "0" ]; then - echo "you're not root? run with sudo" - exit -fi - -if [ ! -e $1 ]; then - echo "rootfs:$1 not found" - exit -fi - -if [ ! -f $HOME/navi_data_UK.tar.gz ]; then - echo "no map data" - echo "start downloading..." - wget --directory-prefix=$HOME http://agl.wismobi.com/data/UnitedKingdom_TR9/navi_data_UK.tar.gz -else - echo "use downloaded map data" -fi - -mapdatadir=$rootfs/var/mapdata - -if [ ! -d $mapdatadir ]; then - echo "map data directory does not exist" - echo "create a directory" $mapdatadir - mkdir -p $mapdatadir -else - echo "map data directory exists" -fi - -tar xvzf $HOME/navi_data_UK.tar.gz -C $mapdatadir -sync -echo "done.." diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/org.agl.naviapi.conf b/meta-agl-demo/recipes-demo-hmi/navigation/navigation/org.agl.naviapi.conf deleted file mode 100644 index 7f4d85f0..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation/org.agl.naviapi.conf +++ /dev/null @@ -1,15 +0,0 @@ -<!DOCTYPE busconfig PUBLIC -"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" -"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> -<busconfig> - <policy context="default"> - <!-- Allow everyone to talk to main service. We'll later add an agent to - only share the location if user allows it. --> - <allow send_interface="org.agl.naviapi"/> - </policy> - - <policy user="root"> - <!-- Allow root to own the name on the bus --> - <allow own="org.agl.naviapi"/> - </policy> -</busconfig> diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/navigation_git.bb b/meta-agl-demo/recipes-demo-hmi/navigation/navigation_git.bb deleted file mode 100644 index fefc0584..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/navigation_git.bb +++ /dev/null @@ -1,52 +0,0 @@ -SUMMARY = "AGL Reference Navigation application." -DESCRIPTION = "This application provides the function of Navigation to AGL. " -HOMEPAGE = "http://agl.wismobi.com/" -SECTION = "apps" - -LICENSE="GPLv2" -LIC_FILES_CHKSUM="file://LICENSE;md5=3595e9c703a847d990664d2b396a9df0 \ - file://COPYING;md5=947b2d60ca3872e172034438e9801200" - -DEPENDS = " \ - glib-2.0 freetype sqlite3 wayland zlib expat openssl virtual/libgles2 virtual/libgl virtual/egl \ - wayland libdbus-c++ af-main af-binder libwindowmanager libhomescreen gstreamer1.0 \ - " - -RDEPENDS_${PN} = " flite openjtalk glib-2.0 freetype sqlite3 wayland zlib expat openssl \ - wayland libdbus-c++ af-main gstreamer1.0" - -RDEPENDS_${PN} += " agl-service-navigation " - -SRCREV="89dc0052aced411ef09f8e0034fb5cf2c96ee637" -SRC_URI="git://github.com/AGLExport/gpsnavi.git;branch=agl \ - file://0001-switch-to-pipewire-output.patch \ - file://0002-openssl-1.1-fixes.patch \ - file://0003-update-permissions.patch \ - file://download_mapdata_jp.sh \ - file://download_mapdata_uk.sh \ - file://org.agl.naviapi.conf \ -" - -RPROVIDES_${PN} = "virtual/navigation" - -# To avoid C++ library link failure -SECURITY_CFLAGS = "" - -inherit autotools pkgconfig -inherit aglwgt - -S = "${WORKDIR}/git" - -do_install_append() { -# mapdata install scripts - install -d ${D}/usr/AGL/apps - install -m 0755 ${WORKDIR}/download_mapdata_jp.sh ${D}/usr/AGL/apps/ - install -m 0755 ${WORKDIR}/download_mapdata_uk.sh ${D}/usr/AGL/apps/ - - install -d ${D}/etc/dbus-1/session.d/ - install -m 0644 ${WORKDIR}/org.agl.naviapi.conf ${D}/etc/dbus-1/session.d/ - - install -d ${D}/var/mapdata -} - -FILES_${PN} += " /usr/AGL/apps/*.sh /var/mapdata " diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi-config/naviconfig.ini b/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi-config/naviconfig.ini index 3a4ecc89..356c6ae6 100755..100644 --- a/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi-config/naviconfig.ini +++ b/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi-config/naviconfig.ini @@ -3,6 +3,7 @@ "speed":60, "interval":100, "latitude":36.1363, - "longitute":-115.151, - "mapStyleUrls":"mapbox://styles/mapbox/dark-v9" + "longitude":-115.151, + "mapStyleUrls":"mapbox://styles/v1/mapbox/streets-v11", + "enableOSM":true } diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi/org.agl.naviapi.conf b/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi/org.agl.naviapi.conf deleted file mode 100755 index 7f4d85f0..00000000 --- a/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi/org.agl.naviapi.conf +++ /dev/null @@ -1,15 +0,0 @@ -<!DOCTYPE busconfig PUBLIC -"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" -"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> -<busconfig> - <policy context="default"> - <!-- Allow everyone to talk to main service. We'll later add an agent to - only share the location if user allows it. --> - <allow send_interface="org.agl.naviapi"/> - </policy> - - <policy user="root"> - <!-- Allow root to own the name on the bus --> - <allow own="org.agl.naviapi"/> - </policy> -</busconfig> diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi_git.bb b/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi_git.bb index 86ba5327..c52655ef 100644 --- a/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi_git.bb +++ b/meta-agl-demo/recipes-demo-hmi/navigation/ondemandnavi_git.bb @@ -6,32 +6,26 @@ SECTION = "apps" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984" -DEPENDS += "qtbase \ - qtquickcontrols2 \ +DEPENDS += "qtquickcontrols2 \ qlibhomescreen \ qlibwindowmanager \ qtlocation \ qtaglextras \ + libqtappfw \ " PV = "1.0+git${SRCPV}" -SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/ondemandnavi;protocol=https;branch=${AGL_BRANCH} \ - file://org.agl.naviapi.conf \ -" +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/ondemandnavi;protocol=https;branch=${AGL_BRANCH}" SRCREV = "${AGL_APP_REVISION}" S = "${WORKDIR}/git" inherit qmake5 aglwgt pkgconfig -do_install_append() { - install -d ${D}/etc/dbus-1/session.d/ - install -m 0644 ${WORKDIR}/org.agl.naviapi.conf ${D}/etc/dbus-1/session.d/ -} - RDEPENDS_${PN} += "qtlocation \ flite \ + libqtappfw \ openjtalk \ gstreamer1.0 \ ondemandnavi-config \ diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/poiapp_git.bb b/meta-agl-demo/recipes-demo-hmi/navigation/poiapp_git.bb index 87263e10..b8db9ac9 100644 --- a/meta-agl-demo/recipes-demo-hmi/navigation/poiapp_git.bb +++ b/meta-agl-demo/recipes-demo-hmi/navigation/poiapp_git.bb @@ -6,8 +6,9 @@ SECTION = "apps" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=947b2d60ca3872e172034438e9801200" -DEPENDS += "qtbase json-c libnaviapi-agl \ +DEPENDS += "qtbase json-c \ qlibwindowmanager libhomescreen \ + libqtappfw \ " SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/poi-yelp;protocol=https;branch=${AGL_BRANCH}" @@ -17,4 +18,4 @@ S = "${WORKDIR}/git" inherit cmake_qt5 pkgconfig aglwgt -RDEPENDS_${PN} = "qtbase" +RDEPENDS_${PN} = "qtbase libqtappfw" diff --git a/meta-agl-demo/recipes-demo-hmi/navigation/tbtnavi_git.bb b/meta-agl-demo/recipes-demo-hmi/navigation/tbtnavi_git.bb new file mode 100644 index 00000000..a61f2c92 --- /dev/null +++ b/meta-agl-demo/recipes-demo-hmi/navigation/tbtnavi_git.bb @@ -0,0 +1,36 @@ +SUMMARY = "AGL Reference Navigation Cluster Streaming application" +DESCRIPTION = "Demo AGL turn by turn cluster navigation application based on QtLocation widget." +HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/admin/repos/apps/tbtnavi" +SECTION = "apps" + +LICENSE = "Apache-2.0 & ISC & BSD-3-Clause & BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ae6497158920d9524cf208c09cc4c984 \ + file://LICENSE.mapbox-cheap-ruler-cpp;md5=761263ee6bdc98e8697d9fbc897021ba \ + file://LICENSE.mapbox-geometry.hpp;md5=6e44f5d6aeec54f40fc84eebe3c6fc6c \ + file://LICENSE.mapbox-variant;md5=79558839a9db3e807e4ae6f8cd100c1c \ + file://include/mapbox/recursive_wrapper.hpp;beginline=4;endline=13;md5=cd3341aae76c0cf8345935abd20f0051 \ +" + +DEPENDS += "qtbase \ + qtquickcontrols2 \ + qlibhomescreen \ + qlibwindowmanager \ + qtlocation \ + libqtappfw \ +" + +PV = "1.0+git${SRCPV}" + +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/tbtnavi;protocol=https;branch=${AGL_BRANCH}" +#SRCREV = "4a8b7a6301e4b093c99329d0a16fbee6c535f312" +SRCREV = "${AGL_APP_REVISION}" + +S = "${WORKDIR}/git" + +inherit qmake5 aglwgt pkgconfig + +RDEPENDS_${PN} += "qtlocation \ + ondemandnavi-config \ + agl-service-navigation \ + libqtappfw \ +" diff --git a/meta-agl-demo/recipes-demo-hmi/qtquickcontrols2-agl/qtquickcontrols2-agl_git.bb b/meta-agl-demo/recipes-demo-hmi/qtquickcontrols2-agl/qtquickcontrols2-agl_git.bb index b322664f..0a432db0 100644 --- a/meta-agl-demo/recipes-demo-hmi/qtquickcontrols2-agl/qtquickcontrols2-agl_git.bb +++ b/meta-agl-demo/recipes-demo-hmi/qtquickcontrols2-agl/qtquickcontrols2-agl_git.bb @@ -8,7 +8,7 @@ DEPENDS = "qtquickcontrols2" PV = "1.0+git${SRCPV}" SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/qtquickcontrols2-agl;protocol=https;branch=${AGL_BRANCH}" -SRCREV = "1261ac1f1f1f2e4d659159f4ce51322f1d585128" +SRCREV = "22b538aae1f69de5273f1e42a854cfab23a32b60" S = "${WORKDIR}/git/" diff --git a/meta-agl-demo/recipes-demo-hmi/settings/settings_git.bb b/meta-agl-demo/recipes-demo-hmi/settings/settings_git.bb index 36040823..72e0323f 100644 --- a/meta-agl-demo/recipes-demo-hmi/settings/settings_git.bb +++ b/meta-agl-demo/recipes-demo-hmi/settings/settings_git.bb @@ -13,12 +13,14 @@ PV = "1.0+git${SRCPV}" S = "${WORKDIR}/git" # build-time dependencies -DEPENDS += "libqtappfw qtquickcontrols2 qtwebsockets" +DEPENDS += "libqtappfw qtquickcontrols2 qt-qrcode" DEPENDS += "libhomescreen qlibwindowmanager qtvirtualkeyboard" # runtime dependencies RDEPENDS_${PN} += " \ - agl-service-bluetooth \ - agl-service-network" + qt-qrcode \ + agl-service-bluetooth \ + agl-service-network \ +" inherit qmake5 aglwgt diff --git a/meta-agl-demo/recipes-graphics/noto-emoji/noto-emoji_git.bb b/meta-agl-demo/recipes-graphics/noto-emoji/noto-emoji_20190815.bb index 416f568f..d3c39b59 100644 --- a/meta-agl-demo/recipes-graphics/noto-emoji/noto-emoji_git.bb +++ b/meta-agl-demo/recipes-graphics/noto-emoji/noto-emoji_20190815.bb @@ -2,8 +2,8 @@ SUMMARY = "Google noto emoji font pack" HOMEPAGE = "https://github.com/googlefonts/noto-emoji" SECTION = "fonts" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" +LICENSE = "OFL-1.1" +LIC_FILES_CHKSUM = "file://${S}/fonts/LICENSE;md5=55719faa0112708e946b820b24b14097" SRC_URI = "git://github.com/googlefonts/noto-emoji;protocol=https;branch=master" SRCREV = "833a43d03246a9325e748a2d783006454d76ff66" diff --git a/meta-agl-demo/recipes-kernel/sllin/files/lin_config.conf b/meta-agl-demo/recipes-kernel/sllin/files/lin_config.conf new file mode 100644 index 00000000..9775b8b3 --- /dev/null +++ b/meta-agl-demo/recipes-kernel/sllin/files/lin_config.conf @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--PCAN-LIN CT profile.--> +<PCLIN_PROFILE Version="1"> + <LIN Group="2"> + <Scheduler_Entries Count="1"> + <!-- Poll steering wheel adapter at address 0x21 every 100 ms --> + <Entry Time="100">33</Entry> + </Scheduler_Entries> + </LIN> +</PCLIN_PROFILE> diff --git a/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo-virtual.service b/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo-virtual.service new file mode 100644 index 00000000..78824219 --- /dev/null +++ b/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo-virtual.service @@ -0,0 +1,12 @@ +[Unit] +Description=LIN demo configuration (virtual) +ConditionPathExists=!/dev/ttyUSB0 +After=afm-system-daemon.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/start_lin_demo.sh +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo.service b/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo.service index 7eb6cfac..2f2f5ac2 100644 --- a/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo.service +++ b/meta-agl-demo/recipes-kernel/sllin/files/sllin-demo.service @@ -1,13 +1,13 @@ [Unit] -Description = LIN DEMO startup +Description=LIN demo configuration +ConditionPathExists=/dev/ttyUSB0 After=afm-system-daemon.service [Service] Type=forking -PIDFile=/var/run/lin_ldattach +PIDFile=/var/run/lin_config.pid ExecStart=/usr/bin/start_lin_demo.sh RemainAfterExit=yes - [Install] WantedBy=multi-user.target diff --git a/meta-agl-demo/recipes-kernel/sllin/files/start_lin_demo.sh b/meta-agl-demo/recipes-kernel/sllin/files/start_lin_demo.sh index 741189fb..26f64c0a 100755 --- a/meta-agl-demo/recipes-kernel/sllin/files/start_lin_demo.sh +++ b/meta-agl-demo/recipes-kernel/sllin/files/start_lin_demo.sh @@ -1,10 +1,17 @@ #!/bin/sh -sleep 1 -ldattach 25 /dev/ttySC3 -pidof ldattach > /var/run/lin_ldattach -sleep 1 +# Attach serial LIN->CAN bridge and set up LIN polling +if [ -c /dev/ttyUSB0 ]; then + sleep 1 + /usr/bin/lin_config -c /etc/lin_config.conf -a sllin:/dev/ttyUSB0 + pidof lin_config > /var/run/lin_config.pid + sleep 1 +else + ip link add dev sllin0 type vcan +fi ip link set sllin0 up + +# Initialize HVAC controller usleep 100000 cansend sllin0 030# usleep 100000 diff --git a/meta-agl-demo/recipes-kernel/sllin/sllin.bb b/meta-agl-demo/recipes-kernel/sllin/sllin.bb index 6213fd96..7c4313f1 100644 --- a/meta-agl-demo/recipes-kernel/sllin/sllin.bb +++ b/meta-agl-demo/recipes-kernel/sllin/sllin.bb @@ -18,7 +18,9 @@ SRC_URI_append = " \ file://0003-Allow-recent-kernels-newer-4.11.x-to-build.patch;pnum=2 \ file://0001-Disable-sllin-driver-debug-log.patch;pnum=2 \ file://sllin-demo.service \ + file://sllin-demo-virtual.service \ file://start_lin_demo.sh \ + file://lin_config.conf \ " KERNEL_MODULE_AUTOLOAD_append = " sllin" @@ -28,12 +30,22 @@ SLLINBAUDRATE ??= "9600" module_conf_sllin = "options sllin baudrate=${SLLINBAUDRATE}" SYSTEMD_SERVICE_${PN} = "sllin-demo.service" +SYSTEMD_SERVICE_${PN}-virtual = "sllin-demo-virtual.service" do_install_append () { install -d 644 ${D}/${bindir} install -m 755 ${WORKDIR}/start_lin_demo.sh ${D}/${bindir}/start_lin_demo.sh install -d ${D}${systemd_system_unitdir} install -m 0644 ${WORKDIR}/sllin-demo.service ${D}${systemd_system_unitdir}/ + install -m 0644 ${WORKDIR}/sllin-demo-virtual.service ${D}${systemd_system_unitdir}/ + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/lin_config.conf ${D}${sysconfdir}/ } -FILES_${PN}_append = " ${bindir}/start_lin_demo.sh" +PACKAGES =+ "${PN}-virtual" + +FILES_${PN} += "${bindir}/start_lin_demo.sh ${sysconfdir}/lin_config.conf" + +FILES_${PN}-virtual = "${systemd_system_unitdir}/sllin-demo-virtual.service" + +RDEPENDS_${PN} += "lin-config" diff --git a/meta-agl-demo/recipes-platform/images/agl-demo-platform-crosssdk.bb b/meta-agl-demo/recipes-platform/images/agl-demo-platform-crosssdk.bb index 088b4cc4..a814b694 100755 --- a/meta-agl-demo/recipes-platform/images/agl-demo-platform-crosssdk.bb +++ b/meta-agl-demo/recipes-platform/images/agl-demo-platform-crosssdk.bb @@ -63,3 +63,19 @@ TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules " # meeting to discuss the path forward (separate versus superset SDKs), this # should be reviewed after that. TOOLCHAIN_TARGET_TASK += "mosquitto-dev" + +# Add nlohmann-json to support building the speech services. +# Required until either the agl-speech-framework feature is added as a +# dependency of agl-demo, or the speech services are migrated into the +# core profile. +TOOLCHAIN_TARGET_TASK += "nlohmann-json-dev" + +# Add libstdc++-staticdev to support building agl-service-voice-high or +# other users of the C++17 filesystem standard library feature. +# Can be removed upon upgrade to gcc 9.x, as it will no longer be necessary. +TOOLCHAIN_TARGET_TASK += "libstdc++-staticdev" + +# Add gcc-sanitizers to support building applications using the SDK with +# AddressSanitizer support to detect use-after-frees along with other +# memory issue. +TOOLCHAIN_TARGET_TASK += "gcc-sanitizers" diff --git a/meta-agl-demo/recipes-platform/images/agl-demo-platform-html5.bb b/meta-agl-demo/recipes-platform/images/agl-demo-platform-html5.bb new file mode 100644 index 00000000..2d3490fd --- /dev/null +++ b/meta-agl-demo/recipes-platform/images/agl-demo-platform-html5.bb @@ -0,0 +1,14 @@ +SUMMARY = "DEMO platform of AGL HTML5 profile" +DESCRIPTION = "Contains the web runtime and sample web apps" + +require agl-demo-platform.inc + +LICENSE = "MIT" + +IMAGE_FEATURES_append = " \ + " + +# add packages for demo platform (include demo apps) here +IMAGE_INSTALL_append = " \ + packagegroup-agl-demo-platform-html5 \ + " diff --git a/meta-agl-demo/recipes-platform/images/agl-image-ivi-crosssdk.bb b/meta-agl-demo/recipes-platform/images/agl-image-ivi-crosssdk.bb new file mode 100644 index 00000000..93537feb --- /dev/null +++ b/meta-agl-demo/recipes-platform/images/agl-image-ivi-crosssdk.bb @@ -0,0 +1,2 @@ +# just for backward compatibility +require recipes-platform/images/agl-image-minimal-crosssdk.bb diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb new file mode 100644 index 00000000..6ec717bd --- /dev/null +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb @@ -0,0 +1,32 @@ +SUMMARY = "The software for DEMO platform of AGL HTML5 profile" +DESCRIPTION = "Packages required to demo the HTML5 profile and sample web apps" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-demo-platform-html5 \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ + packagegroup-agl-image-ivi \ + packagegroup-agl-profile-graphical-html5 \ + packagegroup-agl-demo \ + " + +AGL_APPS = " \ + html5-homescreen \ + html5-launcher \ + html5-hvac \ + html5-settings \ + html5-mixer \ + html5-mediaplayer \ + html5-dashboard \ + " + +RDEPENDS_${PN}_append = " \ + ${AGL_APPS} \ + " diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb index 128d4d7e..acd77882 100644 --- a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb @@ -20,22 +20,6 @@ RDEPENDS_${PN} += "\ packagegroup-agl-demo \ " -MOST_DRIVERS = " \ - most \ - " -MOST_DRIVERS_append_m3ulcb = " sllin" - -# HVAC dependencies depend on drivers above -MOST_HVAC = " " -MOST_HVAC_append = " \ - ${MOST_DRIVERS} \ - unicens-config \ - agl-service-unicens \ - " - -# @Chris: This needs to be checked! -MOST_HVAC_dra7xx-evm = "" -MOST_HVAC_dragonboard-410c = "" AGL_APPS = " \ dashboard \ @@ -46,47 +30,60 @@ AGL_APPS = " \ poiapp \ radio \ settings \ + messaging \ ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'taskmanager' , '', d)} \ - high-level-viwi-service \ - agl-service-signal-composer \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \ low-can-demo \ virtual/mixer \ - " - -AGL_APIS = " \ - libnaviapi-agl \ + ${@bb.utils.contains('IMAGE_FEATURES', 'agl-voiceagent-alexa', 'alexa-viewer' , '', d)} \ " QTAGLEXTRAS = "${@bb.utils.contains("DISTRO_FEATURES", "agl-hmi-framework", " qtaglextras", "",d)}" +QTAGLEXTRAS_append = " libqtappfw" + +# add support for websocket in Qt and QML +QTAGLEXTRAS_append = " qtwebsockets qtwebsockets-qmlplugins" +PREFERRED_PROVIDER_virtual/webruntime = "web-runtime" + +#QTAGLEXTRAS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'qtwebengine', '', d)}" +#QTAGLEXTRAS_append = " qtsmarthome cinematicexperience qt5everywheredemo qt5-demo-extrafiles" +#IMAGE_INSTALL_append = " qtwebengine-examples" + +# packages from hmi-framework aka homescreen-2017 +HOMESCREEN = "packagegroup-hmi-framework" # Cluster demo support. -# ATM mapviewer is required for navigation map viewing when doing cluster -# demos with the older navigation application. -MAPVIEWER = "${@bb.utils.contains("PREFERRED_PROVIDER_virtual/navigation", "navigation", "mapviewer", "",d)}" -CLUSTER_SUPPORT = "${@bb.utils.contains("DISTRO_FEATURES", "agl-cluster-demo-support", "${MAPVIEWER} cluster-demo-network-config", "",d)}" +# ATM no cluster map viewer is supported with the older navigation application. +MAPVIEWER = "${@bb.utils.contains("PREFERRED_RPROVIDER_virtual/navigation", "ondemandnavi", "tbtnavi", "",d)}" +CLUSTER_SUPPORT_PACKAGES = " \ + ${MAPVIEWER} \ + cluster-demo-network-config \ + cluster-lin-bridging-config \ + cluster-demo-simulator \ +" +CLUSTER_SUPPORT = "${@bb.utils.contains("DISTRO_FEATURES", "agl-cluster-demo-support", "${CLUSTER_SUPPORT_PACKAGES}", "",d)}" + +# Hook for demo platform configuration +# ATM used for: +# 1) Adding udev configuration and scripts for supporting USB attached +# I2C devices for RTC and HVAC LED support. +DEMO_PLATFORM_CONF = " demo-i2c-udev-conf " # Preload poi API key for demo if requested, and potentially maps for older # navigation application if it is configured. DEMO_MAPS_LOCALE ?= "uk" -DEMO_PRELOAD_MAPS = "${@bb.utils.contains("PREFERRED_PROVIDER_virtual/navigation", "navigation", " navigation-maps-${DEMO_MAPS_LOCALE}", "",d)}" -DEMO_PRELOAD = "${@bb.utils.contains("DISTRO_FEATURES", "agl-demo-preload", " ${DEMO_PRELOAD_MAPS} poiapp-api-key", "",d)}" +DEMO_PRELOAD_MAPS = "${@bb.utils.contains("PREFERRED_RPROVIDER_virtual/navigation", "navigation", " navigation-maps-${DEMO_MAPS_LOCALE}", "",d)}" + +# Preload only if agl-demo-preload is set +DEMO_PRELOAD = "${@bb.utils.contains("DISTRO_FEATURES", "agl-demo-preload", " ${DEMO_PRELOAD_MAPS} ${DEMO_PLATFORM_CONF} poiapp-api-key", "",d)}" -# Hook for demo platform configuration -# ATM, only used to disable btwilink module on M3ULCB + Kingfisher by default, -# setting DEMO_ENABLE_BTWILINK to "true" in local.conf / site.conf re-enables. -DEMO_ENABLE_BTWILINK ?= "" -DEMO_PLATFORM_CONF = "" -DEMO_PLATFORM_CONF_append_m3ulcb = "${@bb.utils.contains("DEMO_ENABLE_BTWILINK", "true", "", " btwilink-disable-conf", d)}" RDEPENDS_${PN}_append = " \ qtquickcontrols2-agl \ qtquickcontrols2-agl-style \ - linux-firmware-ralink \ - ${MOST_HVAC} \ ${AGL_APPS} \ - ${AGL_APIS} \ ${QTAGLEXTRAS} \ ${CLUSTER_SUPPORT} \ ${DEMO_PRELOAD} \ - ${DEMO_PLATFORM_CONF} \ + ${HOMESCREEN} \ " diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo.bb index 59757819..164684f2 100644 --- a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo.bb +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-demo.bb @@ -11,19 +11,45 @@ PACKAGES = "\ ALLOW_EMPTY_${PN} = "1" +# MOST out-of-tree kernel drivers +################################# +MOST_DRIVERS ??= " \ + most \ + " +# These boards use different kernels - needs to be checked +MOST_DRIVERS_dra7xx-evm ?= "" +MOST_DRIVERS_dragonboard-410c ?= "" + + +# HVAC dependencies +################### +LIN_DRIVERS ??= " sllin sllin-virtual" +# These boards use different kernels - needs to be checked +LIN_DRIVERS_dra7xx-evm ?= "sllin-virtual" +LIN_DRIVERS_dragonboard-410c ?= "sllin-virtual" + +# UNICENS service +UNICENS ?= " \ + unicens-config \ + agl-service-unicens \ + agl-service-unicens-controller \ + " + +# Hook for demo platform configuration +# ATM, only used to disable btwilink module on [MH]3ULCB + Kingfisher by default, +# setting DEMO_ENABLE_BTWILINK to "true" in local.conf / site.conf re-enables. +DEMO_ENABLE_BTWILINK ?= "" +DEMO_PLATFORM_CONF = "" +DEMO_PLATFORM_CONF_append_ulcb = "${@bb.utils.contains("DEMO_ENABLE_BTWILINK", "true", "", " btwilink-disable-conf", d)}" + SMARTDEVICELINK = "${@bb.utils.contains('DISTRO_FEATURES', 'agl-sdl', \ 'packagegroup-agl-smartdevicelink', '', d)}" -# packages from hmi-framework aka homescreen-2017 -HOMESCREEN = "packagegroup-hmi-framework" - # removed: now all enablers are in meta-agl-devel/meta-audio-soundmanager-framework # old audio package # AUDIO-OLD = "audiomanager" RDEPENDS_${PN} += "\ - libqtappfw \ - ${HOMESCREEN} \ udisks \ ${SMARTDEVICELINK} \ " @@ -40,23 +66,19 @@ TTF_FONTS = " \ noto-emoji \ " -#EXTRA_APPS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'qtwebengine', '', d)}" -#EXTRA_APPS_append = " qtsmarthome cinematicexperience qt5everywheredemo qt5-demo-extrafiles" -#IMAGE_INSTALL_append = " qtwebengine-examples" - -# add support for websocket in Qt and QML -EXTRA_APPS_append = " qtwebsockets qtwebsockets-qmlplugins" -PREFERRED_PROVIDER_virtual/webruntime = "web-runtime" - RDEPENDS_${PN} += " \ linux-firmware-ath9k \ + linux-firmware-ralink \ can-utils \ iproute2 \ python-curses \ dhcp-client \ + ${UNICENS} \ + ${MOST_DRIVERS} \ + ${LIN_DRIVERS} \ + ${DEMO_PLATFORM_CONF} \ ${TTF_FONTS} \ - ${EXTRA_APPS} \ ${@bb.utils.contains('DISTRO_FEATURES', 'webruntime', 'virtual/webruntime', '', d)} \ " diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb index 0edc600c..acaa405a 100644 --- a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb @@ -18,14 +18,9 @@ RDEPENDS_${PN} += "\ packagegroup-agl-ivi-connectivity \ packagegroup-agl-ivi-graphics \ packagegroup-agl-ivi-multimedia \ + packagegroup-agl-ivi-navigation \ + packagegroup-agl-ivi-services \ " -# packagegroup-agl-ivi-automotive \ -# packagegroup-agl-ivi-speech-services \ -# packagegroup-agl-ivi-navi-lbs \ -# packagegroup-agl-ivi-security \ -# packagegroup-agl-ivi-os-commonlibs \ -# packagegroup-agl-ivi-kernel \ -# RDEPENDS_${PN} += "\ agl-login-manager \ diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-connectivity.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-connectivity.bb index 2d45986d..17d0d4b6 100644 --- a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-connectivity.bb +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-connectivity.bb @@ -11,5 +11,10 @@ PACKAGES = "\ ALLOW_EMPTY_${PN} = "1" RDEPENDS_${PN} += "\ + bluez5-obex \ + ${@bb.utils.contains("DISTRO_FEATURES", "3g", "libqmi", "", d)} \ + rtl-sdr \ + neard \ + neardal-tools \ ofono \ " diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-navigation.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-navigation.bb new file mode 100644 index 00000000..90daf923 --- /dev/null +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-navigation.bb @@ -0,0 +1,17 @@ +SUMMARY = "The software for application framework of AGL IVI profile" +DESCRIPTION = "A set of packages belong to AGL application framework which required by \ +Navigation and Location-Based Services Subsystem" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-ivi-navigation \ + " + +RDEPENDS_${PN} += "\ + gpsd \ + virtual/gpsd-conf \ + geoclue \ + " diff --git a/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb new file mode 100644 index 00000000..40359ed3 --- /dev/null +++ b/meta-agl-demo/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "The minimal set of packages for AGL IVI Connectivity Subsystem" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-ivi-services \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ +agl-service-bluetooth \ +agl-service-bluetooth-map \ +agl-service-bluetooth-pbap \ +agl-service-can-high-level-viwi \ +agl-service-can-low-level \ +agl-service-geoclue \ +agl-service-geofence \ +agl-service-gps \ +agl-service-identity-agent \ +agl-service-iiodevices \ +agl-service-mediascanner \ +agl-service-navigation \ +agl-service-nfc \ +agl-service-signal-composer \ +agl-service-steering-wheel \ +agl-service-unicens \ +agl-service-weather \ + " diff --git a/meta-agl-demo/recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch b/meta-agl-demo/recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch new file mode 100644 index 00000000..76795268 --- /dev/null +++ b/meta-agl-demo/recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch @@ -0,0 +1,181 @@ +Rework library build + +Rework qmake files to build libraries out of the quickitem and widget +code instead of sample programs. This allows using the associated +classes without copying the source and running afoul of the LGPL +licensing. Also add pkgconfig file generation to simplify usage, fix +header installation, and use pkgconfig to pull in libqrencode instead +of having to clone a copy in-tree and building it. + +Upstream-Status: inappropriate [embedded-specific] + +Signed-off-by: Scott Murray <scott.murray@konsulko.com> + +diff --git a/lib/lib.pro b/lib/lib.pro +index d046bc4..6b6c199 100644 +--- a/lib/lib.pro ++++ b/lib/lib.pro +@@ -1,6 +1,9 @@ + TARGET = qtqrcode + TEMPLATE = lib + ++CONFIG += link_pkgconfig create_pc create_prl no_install_prl ++PKGCONFIG += libqrencode ++ + DEFINES += \ + QTQRCODE_LIBRARY \ + QTQRCODE_PLUS_FEATURES +@@ -12,7 +15,8 @@ contains(DEFINES, QTQRCODE_PLUS_FEATURES) { + qtqrcodepainter.cpp + + HEADERS +=\ +- qtqrcodepainter.h ++ qtqrcodepainter.h \ ++ QtQrCodePainter + + } else { + QT -= gui +@@ -23,16 +27,29 @@ SOURCES += \ + + HEADERS +=\ + qtqrcode_global.h \ +- qtqrcode.h ++ qtqrcode.h \ ++ QtQrCode + + INCLUDEPATH += $$PWD + + include(../defaults.pri) +-include(libqrencode.pri) + # Default rules for deployment. + include(deployment.pri) + + unix { ++ headers.path = /usr/include + target.path = /usr/lib +- INSTALLS += target + } ++ ++headers.files = $$HEADERS ++ ++INSTALLS += headers ++ ++QMAKE_PKGCONFIG_NAME = qtqrcode ++QMAKE_PKGCONFIG_FILE = $${QMAKE_PKGCONFIG_NAME} ++QMAKE_PKGCONFIG_VERSION = $${VERSION} ++QMAKE_PKGCONFIG_DESCRIPTION = A wrapper interface for qrencode for Qt ++QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib ++QMAKE_PKGCONFIG_INCDIR = ${prefix}/include ++QMAKE_PKGCONFIG_REQUIRES = libqrencode ++QMAKE_PKGCONFIG_DESTDIR = pkgconfig +diff --git a/lib/qtqrcode.h b/lib/qtqrcode.h +index 2a7a1ff..0830826 100644 +--- a/lib/qtqrcode.h ++++ b/lib/qtqrcode.h +@@ -31,7 +31,7 @@ + #include <QByteArray> + #include <QSharedDataPointer> + +-#include "libqrencode/qrencode.h" ++#include <qrencode.h> + + class QtQrCodeData; + +diff --git a/quickitem/quickitem.pro b/quickitem/quickitem.pro +index ecfef1b..067dc46 100644 +--- a/quickitem/quickitem.pro ++++ b/quickitem/quickitem.pro +@@ -1,5 +1,7 @@ +-TEMPLATE = app +-TARGET = QuickItem ++TEMPLATE = lib ++TARGET = qtqrcode-quickitem ++ ++CONFIG += create_pc create_prl no_install_prl + + QT += qml quick widgets + +@@ -7,7 +9,7 @@ LIBS += -L../lib -lqtqrcode + + DEFINES += + +-SOURCES += main.cpp \ ++SOURCES += \ + QtQrCodeQuickItem.cpp + + HEADERS += \ +@@ -21,3 +23,21 @@ QML_IMPORT_PATH = + include(../defaults.pri) + # Default rules for deployment. + include(deployment.pri) ++ ++unix { ++ headers.path = /usr/include ++ target.path = /usr/lib ++} ++ ++headers.files = $$HEADERS ++ ++INSTALLS += headers ++ ++QMAKE_PKGCONFIG_NAME = qtqrcode-quickitem ++QMAKE_PKGCONFIG_FILE = $${QMAKE_PKGCONFIG_NAME} ++QMAKE_PKGCONFIG_VERSION = $${VERSION} ++QMAKE_PKGCONFIG_DESCRIPTION = Qt QuickItem wrapper for qt-qrcode library ++QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib ++QMAKE_PKGCONFIG_INCDIR = ${prefix}/include ++QMAKE_PKGCONFIG_REQUIRES = qtqrcode ++QMAKE_PKGCONFIG_DESTDIR = pkgconfig +diff --git a/widget/widget.pro b/widget/widget.pro +index 2e26a8c..63add50 100644 +--- a/widget/widget.pro ++++ b/widget/widget.pro +@@ -1,5 +1,7 @@ +-TEMPLATE = app +-TARGET = Widget ++TEMPLATE = lib ++TARGET = qtqrcode-widget ++ ++CONFIG += create_pc create_prl no_install_prl + + greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +@@ -9,18 +11,28 @@ LIBS += -L../lib -lqtqrcode + + DEFINES += + +-SOURCES += main.cpp\ +- MainWindow.cpp \ +- QtQrCodeWidget.cpp +- +-HEADERS += MainWindow.hpp \ +- QtQrCodeWidget.hpp ++SOURCES += QtQrCodeWidget.cpp + +-FORMS += MainWindow.ui +- +-CONFIG += mobility +-MOBILITY = ++HEADERS += QtQrCodeWidget.hpp + + include(../defaults.pri) + # Default rules for deployment. + include(deployment.pri) ++ ++unix { ++ headers.path = /usr/include ++ target.path = /usr/lib ++} ++ ++headers.files = $$HEADERS ++ ++INSTALLS += headers ++ ++QMAKE_PKGCONFIG_NAME = qtqrcode-widget ++QMAKE_PKGCONFIG_FILE = $${QMAKE_PKGCONFIG_NAME} ++QMAKE_PKGCONFIG_VERSION = $${VERSION} ++QMAKE_PKGCONFIG_DESCRIPTION = Qt widget wrapper for qt-qrcode library ++QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib ++QMAKE_PKGCONFIG_INCDIR = ${prefix}/include ++QMAKE_PKGCONFIG_REQUIRES = qtqrcode ++QMAKE_PKGCONFIG_DESTDIR = pkgconfig diff --git a/meta-agl-demo/recipes-qt/qt-qrcode/qt-qrcode_git.bb b/meta-agl-demo/recipes-qt/qt-qrcode/qt-qrcode_git.bb new file mode 100644 index 00000000..8b3ff79a --- /dev/null +++ b/meta-agl-demo/recipes-qt/qt-qrcode/qt-qrcode_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "Qt QR code library" +DESCRIPTION = "Qt/C++ library for encoding and visualization of data in a \ +QR Code symbol. This library consists of a Qt wrapper for libqrencode, and \ +Qt components that are able to visualize the result." +LICENSE = "LGPLv3+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=94a3f3bdf61243b5e5cf569fbfbbea52" + +DEPENDS = "qtbase qtdeclarative qtquickcontrols2 qtsvg qrencode" + +SRC_URI = "git://github.com/danielsanfr/qt-qrcode.git;protocol=https \ + file://0001-rework-library-build.patch \ +" +SRCREV = "2d57d9c6e2341689d10f9360a16a08831a4a820b" + +PV = "git${SRCPV}" +S = "${WORKDIR}/git/" + +inherit qmake5 diff --git a/meta-agl-demo/recipes-support/lin-config/files/0001-Change-Makefile-to-use-pkg-config-for-libxml-2.0.patch b/meta-agl-demo/recipes-support/lin-config/files/0001-Change-Makefile-to-use-pkg-config-for-libxml-2.0.patch new file mode 100644 index 00000000..fe08b7d8 --- /dev/null +++ b/meta-agl-demo/recipes-support/lin-config/files/0001-Change-Makefile-to-use-pkg-config-for-libxml-2.0.patch @@ -0,0 +1,33 @@ +From 59acd73ba3bd6cc4151b890d135c6d690a83374d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org> +Date: Tue, 1 Oct 2019 15:24:07 +0000 +Subject: [PATCH] Change Makefile to use pkg-config for libxml-2.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +instead of xml2-config. + +Upstream-Status: Pending + +Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org> +--- + lin_config/src/Makefile | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index cf5c515..3fc4df1 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,5 @@ +-CC=gcc +-CFLAGS=-std=gnu99 -Wall -pedantic $(DEBUG) `xml2-config --cflags` `pkg-config --cflags libnl-route-3.0` -I$(INCLUDE) +-LIBS=`xml2-config --libs` `pkg-config --libs libnl-route-3.0` ++CFLAGS=-std=gnu99 -Wall -pedantic $(DEBUG) `pkg-config --cflags libxml-2.0` `pkg-config --cflags libnl-route-3.0` -I$(INCLUDE) ++LIBS=`pkg-config --libs libxml-2.0` `pkg-config --libs libnl-route-3.0` + INCLUDE=../../sllin + DEBUG=-ggdb + +-- +2.16.4 + diff --git a/meta-agl-demo/recipes-support/lin-config/files/0002-Change-Makefile-to-use-LDFLAGS.patch b/meta-agl-demo/recipes-support/lin-config/files/0002-Change-Makefile-to-use-LDFLAGS.patch new file mode 100644 index 00000000..26364455 --- /dev/null +++ b/meta-agl-demo/recipes-support/lin-config/files/0002-Change-Makefile-to-use-LDFLAGS.patch @@ -0,0 +1,20 @@ +Use LDFLAGS when linking + +Use LDFLAGS when linking the output binary to quiet QA warnings due to +missing link flags. + +Upstream-Status: Pending + +Signed-off-by: Scott Murray <scott.murray@konsulko.com> + +--- a/Makefile 2019-11-05 11:08:11.060565285 +0000 ++++ b/Makefile 2019-11-05 11:09:38.663570084 +0000 +@@ -6,7 +6,7 @@ + objects = linc_parse_xml.o pcl_config.o sllin_config.o lin_config.o + + lin_config: $(objects) +- $(CC) $(objects) $(LIBS) -o lin_config ++ $(CC) $(LDFLAGS) $(objects) $(LIBS) -o lin_config + + %.o : %.c %.h + $(CC) $(CFLAGS) $(LIBS) -c $< -o $@ diff --git a/meta-agl-demo/recipes-support/lin-config/lin-config_git.bb b/meta-agl-demo/recipes-support/lin-config/lin-config_git.bb new file mode 100644 index 00000000..e83f7160 --- /dev/null +++ b/meta-agl-demo/recipes-support/lin-config/lin-config_git.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "lin-config tool for the sllin driver module" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +DEPENDS += "libnl libxml2" + +SRC_URI = "git://github.com/trainman419/linux-lin.git;protocol=https" +SRCREV = "155d885e8ccc907a56f6c86c4b159fac27ef6fec" +S = "${WORKDIR}/git/lin_config/src" + +SRC_URI_append = " \ + file://0001-Change-Makefile-to-use-pkg-config-for-libxml-2.0.patch \ + file://0002-Change-Makefile-to-use-LDFLAGS.patch \ + " + +inherit pkgconfig + +PV = "0.1+git${SRCPV}" + +do_configure[noexec] = "1" + +do_install_append() { + install -d ${D}/${bindir} + install -m 755 ${S}/lin_config ${D}/${bindir} +} diff --git a/meta-agl-demo/templates/feature/agl-demo-preload/50_local.conf.inc b/meta-agl-demo/templates/feature/agl-demo-preload/50_local.conf.inc index c7524e5a..00ff3b71 100644 --- a/meta-agl-demo/templates/feature/agl-demo-preload/50_local.conf.inc +++ b/meta-agl-demo/templates/feature/agl-demo-preload/50_local.conf.inc @@ -1 +1,2 @@ -DISTRO_FEATURES_append = " agl-demo-preload" +#see meta-agl-demo/conf/include/agl-demo-preload.inc +require conf/include/agl-demo-preload.inc diff --git a/meta-agl-demo/templates/feature/agl-demo/included.dep b/meta-agl-demo/templates/feature/agl-demo/included.dep index 0babf816..cbf86e8d 100644 --- a/meta-agl-demo/templates/feature/agl-demo/included.dep +++ b/meta-agl-demo/templates/feature/agl-demo/included.dep @@ -1 +1 @@ -agl-appfw-smack agl-hmi-framework agl-profile-graphical-qt5 agl-pipewire +agl-appfw-smack agl-hmi-framework agl-profile-graphical-qt5 agl-pipewire agl-speech-framework |