[][MAC80211][misc][Fix duplicate mac address issue]
[Description]
Fix duplicate mac address issue
[Release-log]
N/A
Change-Id: I99217733c6cebcdbeb2316eeb54d966cfd8715ab
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7745709
diff --git a/autobuild_mac80211_release/0001-master-mac80211-generate-hostapd-setting-from-ap-cap.patch b/autobuild_mac80211_release/0001-master-mac80211-generate-hostapd-setting-from-ap-cap.patch
index 189d6af..937a8b3 100644
--- a/autobuild_mac80211_release/0001-master-mac80211-generate-hostapd-setting-from-ap-cap.patch
+++ b/autobuild_mac80211_release/0001-master-mac80211-generate-hostapd-setting-from-ap-cap.patch
@@ -461,7 +461,7 @@
NEWUMLIST=
diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
-index e24a2a63..e9a15942 100644
+index e24a2a63..18213d54 100644
--- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
@@ -60,6 +60,9 @@ BEGIN {
@@ -544,24 +544,22 @@
get_band_defaults "$dev"
-@@ -196,6 +234,16 @@ detect_mac80211() {
+@@ -196,6 +234,14 @@ detect_mac80211() {
;;
esac
++ macaddr=""
+ if (dmesg | grep -q "eeprom load fail"); then
-+ macaddr=""
+ for i in $(seq 2 3); do
+ macaddr=${macaddr}:$(echo $rand | cut -d ' ' -f $i)
+ done
+ macaddr="00:0$(($devidx - 1)):55:66${macaddr}"
-+ else
-+ macaddr="$(cat /sys/class/ieee80211/${dev}/macaddress)"
+ fi
+
uci -q batch <<-EOF
set wireless.${name}=wifi-device
set wireless.${name}.type=mac80211
-@@ -203,15 +251,33 @@ detect_mac80211() {
+@@ -203,15 +249,37 @@ detect_mac80211() {
set wireless.${name}.channel=${channel}
set wireless.${name}.band=${mode_band}
set wireless.${name}.htmode=$htmode
@@ -583,9 +581,13 @@
- set wireless.default_${name}.encryption=none
+ set wireless.default_${name}.ssid=OpenWrt-${mode_band}
+ set wireless.default_${name}.encryption=${encryption}
-+ set wireless.default_${name}.macaddr=${macaddr}
-+
EOF
++
++ # calibrated board will use eeprom macaddress, not ramdom address
++ [ -n "$macaddr" ] && {
++ uci -q set wireless.default_${name}.macaddr=${macaddr}
++ }
++
+ [ -n "$key" ] && {
+ uci -q set wireless.default_${name}.key=${key}
+ }