--- /dev/null
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://can-dev-mapping-helper.conf"
+
+do_install_append() {
+ install -D -m 0644 ${WORKDIR}/can-dev-mapping-helper.conf \
+ ${D}${sysconfdir}/systemd/system/afm-service-agl-service-can-low-level-.service.d/can-dev-mapping-helper.conf
+}
+
+RDEPENDS_${PN} += "can-dev-mapping-helper"
--- /dev/null
+SUMMARY = "Systemd unit for agl-service-can-low-level CAN device helper"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit systemd allarch
+
+SRC_URI = "file://can-dev-mapping-helper.service \
+ file://can-dev-mapping-helper.sh \
+"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+ install -D -m 0755 ${WORKDIR}/${BPN}.sh ${D}${sbindir}/${BPN}.sh
+}
+
+FILES_${PN} += "${systemd_system_unitdir}"
+
+RDEPENDS_${PN} += "bash"
--- /dev/null
+[Unit]
+Wants=can-dev-mapping-helper.service
+After=can-dev-mapping-helper.service
--- /dev/null
+[Unit]
+Description=CAN interface helper
+
+[Service]
+ExecStart=/usr/sbin/can-dev-mapping-helper.sh
+Type=oneshot
--- /dev/null
+#!/bin/bash
+
+#
+# Script to bring up CAN interfaces configured in /etc/dev-mapping.conf
+# as vcan interfaces if no physical interface is present.
+#
+
+vcan_up() {
+ if [ -n "$1" ]; then
+ echo "Bringing up $1 as virtual CAN device"
+ ip link add dev $1 type vcan
+ ip link set up $1
+ fi
+}
+
+if [ ! -f /etc/dev-mapping.conf ]; then
+ exit 0
+fi
+
+hs=$(grep ^hs= /etc/dev-mapping.conf |cut -d= -f2 |tr -d '"')
+ls=$(grep ^ls= /etc/dev-mapping.conf |cut -d= -f2 |tr -d '"')
+
+if [ -n "$hs" ]; then
+ echo "Checking $hs"
+ if ! ifconfig $hs >/dev/null 2>&1; then
+ vcan_up $hs
+ fi
+fi
+if [ -n "$ls" -a "$ls" != "$hs" ]; then
+ echo "Checking $ls"
+ if ! ifconfig $ls >/dev/null 2>&1; then
+ vcan_up $ls
+ fi
+fi
+
+exit 0
RDEPENDS_${PN} = " \
can-utils \
sllin \
- sllin-virtual \
"
+++ /dev/null
-[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
Description=LIN demo configuration
ConditionPathExists=/dev/ttyUSB0
After=afm-system-daemon.service
+Before=can-dev-mapping-helper.service
[Service]
Type=forking
-PIDFile=/var/run/lin_config.pid
+PIDFile=/run/lin_config/lin_config.pid
ExecStart=/usr/bin/start_lin_demo.sh
RemainAfterExit=yes
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
+ mkdir -p /run/lin_config/
+ pidof lin_config > /run/lin_config/lin_config.pid
sleep 1
else
ip link add dev sllin0 type vcan
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 \
"
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}/
}
-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"
# HVAC dependencies
###################
-LIN_DRIVERS ??= " sllin sllin-virtual"
+LIN_DRIVERS ??= " sllin"
# These boards use different kernels - needs to be checked
-LIN_DRIVERS_dra7xx-evm ?= "sllin-virtual"
-LIN_DRIVERS_dragonboard-410c ?= "sllin-virtual"
+LIN_DRIVERS_dra7xx-evm ?= ""
+LIN_DRIVERS_dragonboard-410c ?= ""
# UNICENS service
UNICENS ?= " \