30a10423ad51b320836fde0c751fbe2988b65860
[openwrt/staging/dedeckeh.git] / target / linux / ramips / mt7621 / base-files / etc / hotplug.d / ieee80211 / 10_fix_wifi_mac
1 [ "$ACTION" == "add" ] || exit 0
2
3 PHYNBR=${DEVPATH##*/phy}
4
5 [ -n $PHYNBR ] || exit 0
6
7 . /lib/functions.sh
8 . /lib/functions/system.sh
9
10 board=$(board_name)
11
12 case "$board" in
13 arcadyan,we420223-99)
14 if [ "$PHYNBR" = "0" ]; then
15 mac24=$(macaddr_add "$(get_mac_label)" "0xf00001")
16 echo -n "$mac24" > /sys${DEVPATH}/macaddress
17 elif [ "$PHYNBR" = "1" ]; then
18 mac5=$(macaddr_add "$(get_mac_label)" 1)
19 echo -n "$mac5" > /sys${DEVPATH}/macaddress
20 fi
21 ;;
22 beeline,smartbox-flash)
23 hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
24 [ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
25 hw_mac_addr=$(macaddr_setbit $hw_mac_addr 26)
26 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 27)
27 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
28 [ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
29 ;;
30 cudy,x6)
31 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
32 macaddr_add $hw_mac_addr "$PHYNBR" > /sys${DEVPATH}/macaddress
33 ;;
34 dlink,dap-x1860-a1)
35 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
36 [ "$PHYNBR" = "0" ] && \
37 macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
38 [ "$PHYNBR" = "1" ] && \
39 macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
40 ;;
41 dlink,dir-853-a1)
42 lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)"
43 [ "$PHYNBR" = "0" ] && \
44 macaddr_add $lan_mac_addr 1 > /sys${DEVPATH}/macaddress
45 [ "$PHYNBR" = "1" ] && \
46 macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress
47 ;;
48 dlink,dir-853-a3)
49 [ "$PHYNBR" = "0" ] && \
50 macaddr_setbit_la "$(mtd_get_mac_binary factory 0xe000)" \
51 > /sys${DEVPATH}/macaddress
52 ;;
53 dlink,dir-853-r1|\
54 phicomm,k2p)
55 if [ "$PHYNBR" = "0" ]; then
56 base_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" -1)
57 macaddr_setbit_la "$base_mac" > /sys${DEVPATH}/macaddress
58 fi
59 ;;
60 glinet,gl-mt1300)
61 [ "$PHYNBR" = "1" ] && \
62 macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1 > /sys${DEVPATH}/macaddress
63 ;;
64 h3c,tx1800-plus|\
65 h3c,tx1801-plus|\
66 h3c,tx1806)
67 addr=$(macaddr_setbit $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) 7)
68 [ "$PHYNBR" = "0" ] && echo -n ${addr:0:9}'1'${addr:10:7} > /sys${DEVPATH}/macaddress
69 [ "$PHYNBR" = "1" ] && echo -n ${addr:0:9}'7'${addr:10:7} > /sys${DEVPATH}/macaddress
70 ;;
71 haier,har-20s2u1|\
72 jcg,y2|\
73 sim,simax1800t)
74 [ "$PHYNBR" = "1" ] && \
75 macaddr_setbit_la "$(mtd_get_mac_binary factory 0x4)" > /sys${DEVPATH}/macaddress
76 ;;
77 hiwifi,hc5962)
78 label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
79 [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
80 echo -n "$label_mac" > /sys${DEVPATH}/macaddress
81 [ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
82 macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
83 ;;
84 iptime,a3002mesh|\
85 iptime,a3004t)
86 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
87 [ "$PHYNBR" = "0" ] && \
88 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
89 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
90 ;;
91 iptime,ax2004m)
92 if [ "$PHYNBR" = "1" ]; then
93 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
94 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
95 fi
96 ;;
97 jcg,q20)
98 [ "$PHYNBR" = "1" ] && \
99 macaddr_setbit_la "$(mtd_get_mac_binary Factory 0x4)" > /sys${DEVPATH}/macaddress
100 ;;
101 linksys,e5600|\
102 linksys,ea6350-v4|\
103 linksys,ea7300-v1|\
104 linksys,ea7300-v2|\
105 linksys,ea7500-v2|\
106 linksys,ea8100-v1|\
107 linksys,ea8100-v2)
108 hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
109 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
110 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
111 ;;
112 belkin,rt1800|\
113 linksys,e7350)
114 hw_mac_addr=$(mtd_get_mac_ascii Config wan_hwaddr)
115 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
116 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
117 ;;
118 netgear,wax202)
119 hw_mac_addr=$(mtd_get_mac_ascii Config mac)
120 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
121 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
122 ;;
123 mercusys,mr70x-v1|\
124 tplink,archer-ax23-v1)
125 hw_mac_addr="$(mtd_get_mac_binary config 0x8)"
126 [ "$PHYNBR" = "1" ] && macaddr_add "$hw_mac_addr" -1 > "/sys${DEVPATH}/macaddress"
127 ;;
128 mts,wg430223)
129 hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
130 [ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
131 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 26)
132 hw_mac_addr=$(macaddr_setbit $hw_mac_addr 27)
133 hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
134 [ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
135 ;;
136 oraybox,x3a)
137 if [ "$PHYNBR" = "1" ]; then
138 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
139 macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
140 fi
141 ;;
142 raisecom,msg1500-x-00)
143 [ "$PHYNBR" = "0" ] && \
144 macaddr_setbit_la "$(get_mac_label)" > /sys${DEVPATH}/macaddress
145 ;;
146 snr,snr-cpe-me2-sfp)
147 hw_mac_addr="$(mtd_get_mac_binary factory 0x8004)"
148 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
149 ;;
150 tenbay,t-mb5eu-v01)
151 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
152 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr "0x100000" > /sys${DEVPATH}/macaddress
153 ;;
154 totolink,x5000r)
155 hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
156 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
157 ;;
158 tplink,eap615-wall-v1)
159 hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
160 macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
161 ;;
162 tplink,ec330-g5u-v1)
163 hw_mac_addr="$(mtd_get_mac_text factory 0x165)"
164 [ "$PHYNBR" = "0" ] && echo -n $hw_mac_addr > /sys${DEVPATH}/macaddress
165 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
166 ;;
167 yuncore,ax820)
168 [ "$PHYNBR" = "1" ] && \
169 macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress
170 ;;
171 yuncore,fap640|\
172 yuncore,fap690)
173 hw_mac_addr="$(mtd_get_mac_binary Factory 0x4)"
174 [ "$PHYNBR" = "0" ] && macaddr_setbit_la "$hw_mac_addr" > /sys${DEVPATH}/macaddress
175 [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
176 ;;
177 zyxel,nwa50ax|\
178 zyxel,nwa55axe)
179 hw_mac_addr="$(mtd_get_mac_binary mrd 0x1fff8)"
180 [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
181 [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
182 ;;
183 esac