kumquat-buildroot/package/mender/mender-device-identity

53 lines
1.3 KiB
Plaintext
Raw Normal View History

#!/bin/sh
# Example script called by Mender agent to collect device identity data. The
# script needs to be located at
# $(datadir)/mender/identity/mender-device-identity path for the agent to find
# it. The script shall exit with non-0 status on errors. In this case the agent
# will discard any output the script may have produced.
#
# The script shall output identity data in <key>=<value> format, one
# entry per line. Example
#
# $ ./mender-device-identity
# mac=de:ad:ca:fe:00:01
# cpuid=1112233
#
# The example script collects the MAC address of a network interface with the
# type ARPHRD_ETHER and it will pick the interface with the lowest ifindex
# number if there are multiple interfaces with that type. The identity data is
# output in the following format:
#
# mac=00:01:02:03:04:05
#
set -ue
SCN=/sys/class/net
min=65535
arphrd_ether=1
ifdev=
# find iface with lowest ifindex, skip non ARPHRD_ETHER types (lo, sit ...)
for dev in $SCN/*; do
iftype=$(cat $dev/type)
if [ $iftype -ne $arphrd_ether ]; then
continue
fi
idx=$(cat $dev/ifindex)
if [ $idx -lt $min ]; then
min=$idx
ifdev=$dev
fi
done
if [ -z "$ifdev" ]; then
echo "no suitable interfaces found" >&2
exit 1
else
echo "using interface $ifdev" >&2
# grab MAC address
echo "mac=$(cat $ifdev/address)"
fi