aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2023-07-17 14:32:21 +0200
committerFelix Fietkau <nbd@nbd.name>2023-07-17 14:33:57 +0200
commitb993a00b82b1bdd682199e44eb81a70dee78e5c9 (patch)
tree6de6de48eebe54841e24bf8d44c0a7882194b9c4
parent1c56801dd2e696cac7da45912b5e3ea1165549d5 (diff)
base-files: fix duplicate wifi radio sections when using phy renaming
The duplicate sections are caused by a race condition at boot, when board.json is not available. In that case, the final phy name cannot be resolved, and extra sections referring to the path are created. Fix this by making sure that wifi config is not being run before board.json is created. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rwxr-xr-xpackage/base-files/files/etc/init.d/boot3
-rwxr-xr-xpackage/base-files/files/sbin/wifi1
2 files changed, 4 insertions, 0 deletions
diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index 749d9e9711..d17754d087 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -39,6 +39,7 @@ boot() {
grep -q pstore /proc/filesystems && /bin/mount -o noatime -t pstore pstore /sys/fs/pstore
[ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe
+ touch /tmp/.config_pending
/sbin/kmodloader
[ ! -f /etc/config/wireless ] && {
@@ -47,6 +48,8 @@ boot() {
}
/bin/config_generate
+ rm -f /tmp/.config_pending
+ /sbin/wifi config
uci_apply_defaults
sync
diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi
index a3d3206ee7..5231063a2b 100755
--- a/package/base-files/files/sbin/wifi
+++ b/package/base-files/files/sbin/wifi
@@ -175,6 +175,7 @@ wifi_detect_notice() {
}
wifi_config() {
+ [ -e /tmp/.config_pending ] && return
[ ! -f /etc/config/wireless ] && touch /etc/config/wireless
for driver in $DRIVERS; do (