summaryrefslogtreecommitdiffstats
path: root/meta-agl-demo/recipes-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-demo/recipes-kernel')
-rw-r--r--meta-agl-demo/recipes-kernel/sllin/files/lin_config.conf10
-rw-r--r--meta-agl-demo/recipes-kernel/sllin/files/sllin-demo-virtual.service12
-rw-r--r--meta-agl-demo/recipes-kernel/sllin/files/sllin-demo.service6
-rwxr-xr-xmeta-agl-demo/recipes-kernel/sllin/files/start_lin_demo.sh15
-rw-r--r--meta-agl-demo/recipes-kernel/sllin/sllin.bb14
5 files changed, 49 insertions, 8 deletions
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"