From 44b7c787051b112c753e3bc87db6034fb501a535 Mon Sep 17 00:00:00 2001
From: j1nx
Date: Tue, 15 Nov 2022 10:48:14 +0100
Subject: [PATCH] Sync the clock and check connectivity faster
---
.../etc/NetworkManager/NetworkManager.conf | 11 +++++
.../rootfs-overlay/etc/systemd/timesyncd.conf | 5 ++-
.../lib/NetworkManager/dispatcher.d/10-ntp | 42 +++++++++++++++++++
3 files changed, 56 insertions(+), 2 deletions(-)
create mode 100755 buildroot-external/rootfs-overlay/usr/lib/NetworkManager/dispatcher.d/10-ntp
diff --git a/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf b/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf
index 3510d547..42d8ae4c 100644
--- a/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf
+++ b/buildroot-external/rootfs-overlay/etc/NetworkManager/NetworkManager.conf
@@ -9,3 +9,14 @@ unmanaged-devices=type:bridge;type:tun;type:veth
[logging]
backend=journal
+
+[connection]
+connection.mdns=2
+connection.llmnr=2
+
+[connectivity]
+uri=http://nmcheck.gnome.org/check_network_status.txt
+interval=300
+
+[device]
+wifi.scan-rand-mac-address=no
diff --git a/buildroot-external/rootfs-overlay/etc/systemd/timesyncd.conf b/buildroot-external/rootfs-overlay/etc/systemd/timesyncd.conf
index 63422d88..e90f0c22 100644
--- a/buildroot-external/rootfs-overlay/etc/systemd/timesyncd.conf
+++ b/buildroot-external/rootfs-overlay/etc/systemd/timesyncd.conf
@@ -1,3 +1,4 @@
[Time]
-NTP=time.cloudflare.com
-FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org
+FallbackNTP=time.cloudflare.com
+# Speed-up boot as first attempt is done before network is up
+ConnectionRetrySec=10
diff --git a/buildroot-external/rootfs-overlay/usr/lib/NetworkManager/dispatcher.d/10-ntp b/buildroot-external/rootfs-overlay/usr/lib/NetworkManager/dispatcher.d/10-ntp
new file mode 100755
index 00000000..425786bf
--- /dev/null
+++ b/buildroot-external/rootfs-overlay/usr/lib/NetworkManager/dispatcher.d/10-ntp
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+
+TIMESYNCD_CONF=/run/systemd/timesyncd.conf.d/10-ntp.conf
+
+timesyncd_dhcp_ntp_remove() {
+ if [ -e $TIMESYNCD_CONF ]; then
+ rm -f $TIMESYNCD_CONF
+ systemctl restart systemd-timesyncd.service
+ fi
+}
+
+timesyncd_dhcp_ntp_add() {
+ mkdir -p "$(dirname $TIMESYNCD_CONF)"
+
+ echo '[Time]' > ${TIMESYNCD_CONF}
+ echo "NTP=${DHCP4_NTP_SERVERS}" >> ${TIMESYNCD_CONF}
+
+ systemctl restart systemd-timesyncd.service
+}
+
+# shellcheck disable=SC2034
+INTERFACE=${1}
+ACTION=${2}
+
+case ${ACTION} in
+ up|down|dhcp4-change)
+ if [ -n "${DHCP4_NTP_SERVERS}" ]
+ then
+ timesyncd_dhcp_ntp_add
+ RETURN_CODE=$?
+ else
+ timesyncd_dhcp_ntp_remove
+ RETURN_CODE=$?
+ fi
+ ;;
+ *)
+ RETURN_CODE=0
+ ;;
+esac
+
+return $RETURN_CODE