summaryrefslogtreecommitdiffstats
path: root/recipes-demo-hmi/unicens
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-demo-hmi/unicens')
-rw-r--r--recipes-demo-hmi/unicens/files/0001-Support-booting-by-systemd.patch147
-rw-r--r--recipes-demo-hmi/unicens/files/most-network-manager.service11
-rw-r--r--recipes-demo-hmi/unicens/files/most-network-startup.service12
-rw-r--r--recipes-demo-hmi/unicens/unicens_0.1.bb38
4 files changed, 200 insertions, 8 deletions
diff --git a/recipes-demo-hmi/unicens/files/0001-Support-booting-by-systemd.patch b/recipes-demo-hmi/unicens/files/0001-Support-booting-by-systemd.patch
new file mode 100644
index 000000000..5c18aacdc
--- /dev/null
+++ b/recipes-demo-hmi/unicens/files/0001-Support-booting-by-systemd.patch
@@ -0,0 +1,147 @@
+From 7942933a4f1508966375326c4ee230812f504f4b Mon Sep 17 00:00:00 2001
+From: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
+Date: Tue, 20 Dec 2016 19:04:48 +0900
+Subject: [PATCH] Support booting by systemd
+
+Hack for CES2017 demo integration.
+
+Loading modules would be done by systemd, so loadDriver.sh
+could skip all insmod.
+
+Change-Id: I1d0d6db6faad789754707ffff127099f70150b1f
+Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
+---
+ scripts/loadDriver.sh | 95 +++++++++++++++++++++++++++++----------------------
+ 1 file changed, 55 insertions(+), 40 deletions(-)
+
+diff --git a/scripts/loadDriver.sh b/scripts/loadDriver.sh
+index f55fdde..a3979cc 100755
+--- a/scripts/loadDriver.sh
++++ b/scripts/loadDriver.sh
+@@ -1,4 +1,7 @@
+ #!/bin/bash
++#
++# Usage: loadDriver.sh [--systemd]
++#
+
+ if [ ! "$(whoami)" = "root" ]
+ then
+@@ -13,63 +16,75 @@ else
+ echo Searching driver in folder:$(pwd)
+ fi
+
+-#unload MOST Kernel modules
+-lsmod | grep "^mxc_mlb\>" > /dev/null &&
+- rmmod mxc_mlb && echo "unloaded mxc_mlb"
++load_modules()
++{
++ #unload MOST Kernel modules
++ lsmod | grep "^mxc_mlb\>" > /dev/null &&
++ rmmod mxc_mlb && echo "unloaded mxc_mlb"
++
++ lsmod | grep "^hdm_dim2_mx6q\>" > /dev/null &&
++ rmmod hdm_dim2_mx6q && echo "unloaded hdm_dim2_mx6q"
+
+-lsmod | grep "^hdm_dim2_mx6q\>" > /dev/null &&
+- rmmod hdm_dim2_mx6q && echo "unloaded hdm_dim2_mx6q"
++ lsmod | grep "^hdm_dim2\>" > /dev/null &&
++ rmmod hdm_dim2 && echo "unloaded hdm_dim2"
+
+-lsmod | grep "^hdm_dim2\>" > /dev/null &&
+- rmmod hdm_dim2 && echo "unloaded hdm_dim2"
++ lsmod | grep "^hdm_usb\>" > /dev/null &&
++ rmmod hdm_usb && echo "unloaded hdm_usb"
+
+-lsmod | grep "^hdm_usb\>" > /dev/null &&
+- rmmod hdm_usb && echo "unloaded hdm_usb"
++ lsmod | grep "^aim_sound\>" > /dev/null &&
++ rmmod aim_sound && echo "unloaded aim_sound"
+
+-lsmod | grep "^aim_sound\>" > /dev/null &&
+- rmmod aim_sound && echo "unloaded aim_sound"
++ lsmod | grep "^aim_v4l2\>" > /dev/null &&
++ rmmod aim_v4l2 && echo "unloaded aim_v4l2"
+
+-lsmod | grep "^aim_v4l2\>" > /dev/null &&
+- rmmod aim_v4l2 && echo "unloaded aim_v4l2"
++ lsmod | grep "^aim_cdev\>" > /dev/null &&
++ rmmod aim_cdev && echo "unloaded aim_cdev"
+
+-lsmod | grep "^aim_cdev\>" > /dev/null &&
+- rmmod aim_cdev && echo "unloaded aim_cdev"
++ lsmod | grep "^aim_network\>" > /dev/null &&
++ rmmod aim_network && echo "unloaded aim_network"
+
+-lsmod | grep "^aim_network\>" > /dev/null &&
+- rmmod aim_network && echo "unloaded aim_network"
++ lsmod | grep "^mostcore\>" > /dev/null &&
++ rmmod mostcore && echo "unloaded mostcore"
+
+-lsmod | grep "^mostcore\>" > /dev/null &&
+- rmmod mostcore && echo "unloaded mostcore"
++ echo
++ #load V4L support
++ lsmod | grep "^media\>" ||
++ insmod /lib/modules/$(uname -r)/kernel/drivers/media/media.ko
+
+-echo
+-#load V4L support
+-lsmod | grep "^media\>" ||
+- insmod /lib/modules/$(uname -r)/kernel/drivers/media/media.ko
++ lsmod | grep "^videodev\>" ||
++ insmod /lib/modules/$(uname -r)/kernel/drivers/media/v4l2-core/videodev.ko
+
+-lsmod | grep "^videodev\>" ||
+- insmod /lib/modules/$(uname -r)/kernel/drivers/media/v4l2-core/videodev.ko
++ #load MOST Kernel modules
++ insmod mostcore.ko && echo "loaded mostcore"
++ insmod aim_cdev.ko && echo "loaded aim_cdev"
+
+-#load MOST Kernel modules
+-insmod mostcore.ko && echo "loaded mostcore"
+-insmod aim_cdev.ko && echo "loaded aim_cdev"
++ [ -e aim_network.ko ] &&
++ insmod aim_network.ko && echo "loaded aim_network"
+
+-[ -e aim_network.ko ] &&
+- insmod aim_network.ko && echo "loaded aim_network"
++ [ -e aim_sound.ko ] &&
++ insmod aim_sound.ko && echo "loaded sound"
+
+-[ -e aim_sound.ko ] &&
+- insmod aim_sound.ko && echo "loaded sound"
++ [ -e aim_v4l2.ko ] &&
++ insmod aim_v4l2.ko && echo "loaded v4l2"
+
+-[ -e aim_v4l2.ko ] &&
+- insmod aim_v4l2.ko && echo "loaded v4l2"
++ [ -e hdm_usb.ko ] &&
++ insmod hdm_usb.ko && echo "loaded hdm_usb"
+
+-[ -e hdm_usb.ko ] &&
+- insmod hdm_usb.ko && echo "loaded hdm_usb"
++ [ -e hdm_dim2.ko ] &&
++ insmod hdm_dim2.ko clock_speed=4096fs fcnt=3 && echo "loaded hdm_dim2"
+
+-[ -e hdm_dim2.ko ] &&
+- insmod hdm_dim2.ko clock_speed=4096fs fcnt=3 && echo "loaded hdm_dim2"
++ [ -e hdm_dim2_mx6q.ko ] &&
++ insmod hdm_dim2_mx6q.ko && echo "loaded hdm_dim2_mx6q"
++}
+
+-[ -e hdm_dim2_mx6q.ko ] &&
+- insmod hdm_dim2_mx6q.ko && echo "loaded hdm_dim2_mx6q"
++#
++# Systemd load modules when booting system already.
++# If argv[1] == "--systemd" then skip load modules
++#
++if [ "$1" != "--systemd" ]; then
++ echo "Load modules"
++ load_modules
++fi
+
+ DEVS=/sys/devices/virtual/most/mostcore/devices
+ AIMS=/sys/devices/virtual/most/mostcore/aims
+--
+2.7.4
+
diff --git a/recipes-demo-hmi/unicens/files/most-network-manager.service b/recipes-demo-hmi/unicens/files/most-network-manager.service
new file mode 100644
index 000000000..61e17b2d4
--- /dev/null
+++ b/recipes-demo-hmi/unicens/files/most-network-manager.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Most Network Manager Service
+After=WindowManager.service most-network-startup.service
+
+[Service]
+Type=simple
+ExecStart=/usr/AGL/most/MostNetworkManager -i /usr/AGL/most/config-agl.xml
+Restart=always
+
+[Install]
+WantedBy=default.target
diff --git a/recipes-demo-hmi/unicens/files/most-network-startup.service b/recipes-demo-hmi/unicens/files/most-network-startup.service
new file mode 100644
index 000000000..4fd037531
--- /dev/null
+++ b/recipes-demo-hmi/unicens/files/most-network-startup.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Most Network Startup Service
+After=WindowManager.service
+
+[Service]
+Type=simple
+RemainAfterExit=yes
+ExecStart=/usr/AGL/most/loadDriver.sh --systemd
+Restart=always
+
+[Install]
+WantedBy=default.target
diff --git a/recipes-demo-hmi/unicens/unicens_0.1.bb b/recipes-demo-hmi/unicens/unicens_0.1.bb
index 176baa402..0fc0afc93 100644
--- a/recipes-demo-hmi/unicens/unicens_0.1.bb
+++ b/recipes-demo-hmi/unicens/unicens_0.1.bb
@@ -10,18 +10,40 @@ DEPENDS += "libxml2"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/unicens;protocol=https"
SRC_URI += "file://0001-Fix-cross-compilation-with-yocto.patch"
+SRC_URI += "file://0001-Support-booting-by-systemd.patch \
+ file://most-network-startup.service \
+ file://most-network-manager.service"
S = "${WORKDIR}/git"
#SRCREV = "8c5f2324d7aa61669324aec1a0ad091fe1379489"
SRCREV = "${AUTOREV}"
do_install() {
- install -m 0755 -d ${D}${bindir} ${D}/home/root
- install -m 0755 ${S}/NetworkManager ${D}${bindir}/MostNetworkManager
- install -m 0644 ${S}/scripts/config-agl.xml ${D}/home/root
- install -m 0644 ${S}/scripts/camera-os88122-ts.script ${D}/home/root
- install -m 0644 ${S}/scripts/i2c-slim-amplifier-v2.3.script ${D}/home/root
- install -m 0644 ${S}/scripts/i2c-uda1388-v2.3.script ${D}/home/root
- install -m 0755 ${S}/scripts/loadDriver.sh ${D}/home/root
+ install -m 0755 -d ${D}/usr/AGL/most
+ install -m 0755 ${S}/NetworkManager ${D}/usr/AGL/most/MostNetworkManager
+ install -m 0644 ${S}/scripts/config-agl.xml ${D}/usr/AGL/most/
+ install -m 0644 ${S}/scripts/camera-os88122-ts.script ${D}/usr/AGL/most/
+ install -m 0644 ${S}/scripts/i2c-slim-amplifier-v2.3.script ${D}/usr/AGL/most/
+ install -m 0644 ${S}/scripts/i2c-uda1388-v2.3.script ${D}/usr/AGL/most
+ install -m 0755 ${S}/scripts/loadDriver.sh ${D}/usr/AGL/most
+
+ # Install MOST network startup systemd service (user)
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -m 644 -p -D ${WORKDIR}/most-network-startup.service ${D}${systemd_user_unitdir}/most-network-startup.service
+ install -m 644 -p -D ${WORKDIR}/most-network-manager.service ${D}${systemd_user_unitdir}/most-network-manager.service
+
+ # Execute install manually for root user on behalf of systemctl script
+ # because it doesn't support user mode of systemd.
+ install -m 0755 -d ${D}/home/root/.config/systemd/user/default.target.wants/
+ ln -sf ${systemd_user_unitdir}/most-network-startup.service ${D}/home/root/.config/systemd/user/default.target.wants/most-network-startup.service
+ ln -sf ${systemd_user_unitdir}/most-network-manager.service ${D}/home/root/.config/systemd/user/default.target.wants/most-network-manager.service
+ fi
}
-FILES_${PN} += "/home/root*"
+
+FILES_${PN} += " \
+ /usr/AGL/most \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/most-network-startup.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_user_unitdir}/most-network-manager.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '/home/root/.config/systemd/user/default.target.wants/most-network-startup.service', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '/home/root/.config/systemd/user/default.target.wants/most-network-manager.service', '', d)} \
+ "