summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/sllin
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/sllin')
-rw-r--r--recipes-kernel/sllin/files/sllin-demo-virtual.service12
-rwxr-xr-x[-rw-r--r--]recipes-kernel/sllin/files/start_lin_demo.sh12
-rw-r--r--recipes-kernel/sllin/sllin.bb7
3 files changed, 27 insertions, 4 deletions
diff --git a/recipes-kernel/sllin/files/sllin-demo-virtual.service b/recipes-kernel/sllin/files/sllin-demo-virtual.service
new file mode 100644
index 000000000..788242197
--- /dev/null
+++ b/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/recipes-kernel/sllin/files/start_lin_demo.sh b/recipes-kernel/sllin/files/start_lin_demo.sh
index 4fcfcc6d2..26f64c0a1 100644..100755
--- a/recipes-kernel/sllin/files/start_lin_demo.sh
+++ b/recipes-kernel/sllin/files/start_lin_demo.sh
@@ -1,10 +1,14 @@
#!/bin/sh
# Attach serial LIN->CAN bridge and set up LIN polling
-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
+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
diff --git a/recipes-kernel/sllin/sllin.bb b/recipes-kernel/sllin/sllin.bb
index 0478b21a7..7c4313f16 100644
--- a/recipes-kernel/sllin/sllin.bb
+++ b/recipes-kernel/sllin/sllin.bb
@@ -18,6 +18,7 @@ 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 \
"
@@ -29,16 +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}/
}
+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"