summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcore/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++12
-rw-r--r--core/rootfs/rootfs-stage31/data/inc/setup_network9
2 files changed, 18 insertions, 3 deletions
diff --git a/core/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++ b/core/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++
index 2f8b878d..4548d1d1 100755
--- a/core/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++
+++ b/core/modules/dhcpc-busybox/data/opt/openslx/scripts/systemd-udhcpc++
@@ -4,7 +4,15 @@ NET_IF="$1"
NET_IP="$(ip addr show dev "${NET_IF}" | grep -m1 '^\s*inet ' | awk -F " " '{print $2}' | awk -F "/" '{print $1}')"
UDHCPC_OPTS=""
-[ ! -z "$NET_IP" ] && UDHCPC_OPTS=" -r $NET_IP"
+if [ -n "$NET_IP" ]; then
+ UDHCPC_OPTS="$UDHCPC_OPTS -r $NET_IP"
+fi
+
+UID=$(dmidecode -s system-uuid | sed -r 's/^(..)(..)(..)(..)-(..)(..)-(..)(..)-(....)-/00\4\3\2\1\6\5\8\7\9/')
+if [ "${#UID}" = 34 ]; then
+ echo "Using SMBIOS UID for DHCP"
+ UDHCPC_OPTS="$UDHCPC_OPTS -x 0x3d:$UID"
+fi
mkdir -p /run/udhcpc || echo "Could not create '/run/udhcpc'."
@@ -12,7 +20,7 @@ mkdir -p /run/udhcpc || echo "Could not create '/run/udhcpc'."
RET=$?
if [ "$RET" != 0 ]; then
- slxlog "udhcpc" "Could not run 'udhcpc${UDHCPC_OPTS}' on ${NET_IF}."
+ slxlog "udhcpc" "Could not run 'udhcpc ${UDHCPC_OPTS}' on ${NET_IF}."
fi
exit "$RET"
diff --git a/core/rootfs/rootfs-stage31/data/inc/setup_network b/core/rootfs/rootfs-stage31/data/inc/setup_network
index b067100d..c3ab7473 100644
--- a/core/rootfs/rootfs-stage31/data/inc/setup_network
+++ b/core/rootfs/rootfs-stage31/data/inc/setup_network
@@ -102,12 +102,19 @@ if [ -n "$GATEWAY" ]; then
echo -n "$GATEWAY" > "/run/firstgw"
fi
+UID=$(dmidecode -s system-uuid | sed -r 's/^(..)(..)(..)(..)-(..)(..)-(..)(..)-(....)-/00\4\3\2\1\6\5\8\7\9/')
+if [ "${#UID}" = 34 ]; then
+ echo "Using SMBIOS UID for DHCP"
+ PARAM="$PARAM -x 0x3d:$UID"
+fi
+
# save our variables for retry on fail ff.
echo "CLIENTIP=$CLIENTIP" >> /run/network.conf
echo "GATEWAY=$GATEWAY" >> /run/network.conf
echo "BRIDGE=$BRIDGE" >> /run/network.conf
+echo "UID=$UID" >> /run/network.conf
-udhcpc $PARAM -O ntpsrv -O domain -O wpad -O search -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
+udhcpc $PARAM -x "0x3d:$UID" -O ntpsrv -O domain -O wpad -O search -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
URET=$?
# udhcpc return value will be return value of this script
[ -z "$CLIENTIP" ] && CLIENTIP=$(cat /run/firstip)