wifi-scripts: populate default wifi credentials and country code from board.json
authorJohn Crispin <john@phrozen.org>
Tue, 17 Sep 2024 13:10:20 +0000 (15:10 +0200)
committerJohn Crispin <john@phrozen.org>
Wed, 2 Oct 2024 13:41:33 +0000 (15:41 +0200)
Signed-off-by: John Crispin <john@phrozen.org>
package/network/config/wifi-scripts/files/lib/wifi/mac80211.uc

index b68167b7542649c2a7d0dfde11a56b8494accc89..9fd6c35e8b4ad00df418553f123e4ff857eaaf23 100644 (file)
@@ -71,20 +71,34 @@ for (let phy_name, phy in board.wlan) {
        if (match(phy_name, /^phy[0-9]/))
                id = `path='${phy.path}'`;
 
+       band_name = lc(band_name);
+
+       let country, defaults, num_global_macaddr;
+       if (board.wlan.defaults) {
+               defaults = board.wlan.defaults.ssids?.[band_name]?.ssid ? board.wlan.defaults.ssids?.[band_name] : board.wlan.defaults.ssids?.all;
+               country = board.wlan.defaults.country;
+               if (!country && band_name != '2g')
+                       defaults = null;
+               num_global_macaddr = board.wlan.defaults.ssids?.[band_name]?.mac_count;
+       }
+
        print(`set ${s}=wifi-device
 set ${s}.type='mac80211'
 set ${s}.${id}
-set ${s}.band='${lc(band_name)}'
+set ${s}.band='${band_name}'
 set ${s}.channel='${channel}'
 set ${s}.htmode='${htmode}'
-set ${s}.disabled='1'
+set ${s}.country='${country || ''}'
+set ${s}.num_global_macaddr='${num_global_macaddr || ''}'
+set ${s}.disabled='${defaults ? 0 : 1}'
 
 set ${si}=wifi-iface
 set ${si}.device='${name}'
 set ${si}.network='lan'
 set ${si}.mode='ap'
-set ${si}.ssid='OpenWrt'
-set ${si}.encryption='none'
+set ${si}.ssid='${defaults?.ssid || "OpenWrt"}'
+set ${si}.encryption='${defaults?.encryption || "none"}'
+set ${si}.key='${defaults?.key || ""}'
 
 `);
        commit = true;