summaryrefslogtreecommitdiffstats
path: root/recipes-connectivity/kuksa-val/can-dev-helper/can-dev-helper.sh
blob: de9894d76de1c36e1384f6c5e5a1791272f22667 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash

#
# Script to bring up CAN interface configured for the kuksa.val
# CAN feeder in /etc/kuksa-dbc-feeder/dbc_feeder.ini 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
}

CONF=/etc/kuksa-dbc-feeder/config.ini

if [ ! -f $CONF ]; then
    exit 0
fi

# Ideally the parsing would take the "[can]" section into
# account, but this should work for now.
interface=$(grep ^port= $CONF |cut -d= -f2 |tr -d '"')
if [ -n "$interface" ]; then
    echo "Checking $interface"
    if ! ifconfig $interface >/dev/null 2>&1; then
        vcan_up $interface
    fi
fi

exit 0