[openwrt/openwrt] wifi-scripts: ucode: fix start failed
LEDE Commits
lede-commits at lists.infradead.org
Wed Nov 12 04:46:13 PST 2025
nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/00e881451a980a7e65d94e7f91029baa479dd8eb
commit 00e881451a980a7e65d94e7f91029baa479dd8eb
Author: Andy Chiang <AndyChiang_git at outlook.com>
AuthorDate: Sun Oct 26 07:29:30 2025 +0700
wifi-scripts: ucode: fix start failed
When using wpad-openssl/wpad-basic-openssl, wpa_supplicant/hostapd may not be ready because of openssl.
This cause supplicant.setup and hostapd.setup to be failed.
Therefore, wait for wpa_supplicant/hostapd to be ready before supplicant.setup and hostapd.setup.
Run-tested: mediatek/filogic GL-MT3000
fixes: #20361
Signed-off-by: Andy Chiang <AndyChiang_git at outlook.com>
Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
.../wifi-scripts/files-ucode/lib/netifd/wireless/mac80211.sh | 7 +++++--
.../wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc | 4 +++-
.../wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc | 4 +++-
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/package/network/config/wifi-scripts/files-ucode/lib/netifd/wireless/mac80211.sh b/package/network/config/wifi-scripts/files-ucode/lib/netifd/wireless/mac80211.sh
index 23438a4cde..8aba81436e 100755
--- a/package/network/config/wifi-scripts/files-ucode/lib/netifd/wireless/mac80211.sh
+++ b/package/network/config/wifi-scripts/files-ucode/lib/netifd/wireless/mac80211.sh
@@ -288,8 +288,11 @@ function setup() {
wdev_data[v.config.ifname] = config;
}
- supplicant.setup(supplicant_data, data);
- hostapd.setup(data);
+ if (fs.access('/usr/sbin/wpa_supplicant', 'x'))
+ supplicant.setup(supplicant_data, data);
+
+ if (fs.access('/usr/sbin/hostapd', 'x'))
+ hostapd.setup(data);
system(`ucode /usr/share/hostap/wdev.uc ${data.phy}${data.phy_suffix} set_config '${printf("%J", wdev_data)}' ${join(' ', active_ifnames)}`);
diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
index c0a76bbd94..db3bffe9ef 100644
--- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
+++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/hostapd.uc
@@ -571,10 +571,12 @@ export function setup(data) {
config: has_ap ? file_name : "",
prev_config: file_name + '.prev'
};
+ if (!global.ubus.list('hostapd'))
+ system('ubus wait_for hostapd');
let ret = global.ubus.call('hostapd', 'config_set', msg);
if (ret)
netifd.add_process('/usr/sbin/hostapd', ret.pid, true, true);
- else if (fs.access('/usr/sbin/hostapd', 'x'))
+ else
netifd.setup_failed('HOSTAPD_START_FAILED');
};
diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc
index 3ed05149f8..f796ae99a7 100644
--- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc
+++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc
@@ -270,6 +270,8 @@ export function generate(config_list, data, interface) {
};
export function setup(config, data) {
+ if (!global.ubus.list('wpa_supplicant'))
+ system('ubus wait_for wpa_supplicant');
let ret = global.ubus.call('wpa_supplicant', 'config_set', {
phy: data.phy,
radio: data.config.radio,
@@ -281,7 +283,7 @@ export function setup(config, data) {
if (ret)
netifd.add_process('/usr/sbin/wpa_supplicant', ret.pid, true, true);
- else if (fs.access('/usr/sbin/wpa_supplicant', 'x'))
+ else
netifd.setup_failed('SUPPLICANT_START_FAILED');
};
More information about the lede-commits
mailing list