summaryrefslogtreecommitdiffstats
path: root/recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-08-19 18:37:51 -0400
committerScott Murray <scott.murray@konsulko.com>2020-08-19 18:37:51 -0400
commit5bdba822918cfffb69c0e1983661c32586bed590 (patch)
treeb1fa11566e42190acc9b9cdda912a7cf2ed50ded /recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh
parent1677ce2027c49763ec186018f8cbf8fcec64c04f (diff)
Add can-dev-mapping-helperjellyfish_9.99.3jellyfish/9.99.39.99.3
Changes: - Add a can-dev-mapping-helper.sh script and systemd unit to drive it, the script checks if the CAN devices specified in the low-can configuration file /etc/dev-mapping.conf exist, and if not brings up corresponding virtual CAN devices. - Add a systemd over-ride conf file for agl-service-can-low-level that makes can-dev-mapping-helper a dependency. This should ensure that the low-can binding always starts even if there are no physical CAN hardware devices. - Added a Before statement to sllin-demo.service to ensure that it will run before can-dev-mapping-helper and ensure that lin_config can create sllin0 correctly. - Removed the sllin-demo-virtual systemd unit, as it will no longer be required with can-dev-mapping-helper. - Updated the /var/run paths in sllin-demo.service and associated start_lin_demo.sh script to quiet systemd warnings about /var/run usage. Bug-AGL: SPEC-3540 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ife02f75f57ac7bbdee6b02217e2ab657fe8c36e0
Diffstat (limited to 'recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh')
-rw-r--r--recipes-apis/agl-service-can-low-level/files/can-dev-mapping-helper.sh36
1 files changed, 36 insertions, 0 deletions
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 00000000..c81014f3
--- /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