summaryrefslogtreecommitdiffstats
path: root/recipes-apis/agl-service-can-low-level/files
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-11-15 16:43:52 -0500
committerScott Murray <scott.murray@konsulko.com>2020-11-15 16:43:52 -0500
commit6295efdc2f60ea16f48962e7ffc4355dfbdfabf8 (patch)
tree0755e03eecb620ca9956843f9cf5b12b20d57feb /recipes-apis/agl-service-can-low-level/files
parente8fa8563692fcab198ebedf5f1fa2130b76b8507 (diff)
Changes: - Add can-dev-mapping-helper support changes from meta-agl-demo. It is less than ideal to duplicate them, but the timing of the planned layer reorganization and slimming down of meta-agl makes this seem less hassle. Once the shift to the new layout is done, things can be rationalized as necessary. - Also add the simple_can_simulator.py script, since without any physical CAN connection something is needed to drive testing. Bug-AGL: SPEC-3689 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I655409806026024c804942415ac476e59b916c28
Diffstat (limited to 'recipes-apis/agl-service-can-low-level/files')
-rw-r--r--recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.conf3
-rw-r--r--recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.service6
-rw-r--r--recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh36
3 files changed, 45 insertions, 0 deletions
diff --git a/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.conf b/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.conf
new file mode 100644
index 0000000..c89cc4d
--- /dev/null
+++ b/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=can-dev-mapping-helper.service
+After=can-dev-mapping-helper.service
diff --git a/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.service b/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.service
new file mode 100644
index 0000000..0436716
--- /dev/null
+++ b/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=CAN interface helper
+
+[Service]
+ExecStart=/usr/sbin/can-dev-mapping-helper.sh
+Type=oneshot
diff --git a/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh b/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh
new file mode 100644
index 0000000..c81014f
--- /dev/null
+++ b/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh
@@ -0,0 +1,36 @@
+#!/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