Initial commit
This commit is contained in:
1113
target/linux/ar71xx/base-files/etc/board.d/01_leds
Executable file
1113
target/linux/ar71xx/base-files/etc/board.d/01_leds
Executable file
File diff suppressed because it is too large
Load Diff
633
target/linux/ar71xx/base-files/etc/board.d/02_network
Executable file
633
target/linux/ar71xx/base-files/etc/board.d/02_network
Executable file
@@ -0,0 +1,633 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2011-2015 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/system.sh
|
||||
. /lib/functions/uci-defaults.sh
|
||||
|
||||
ar71xx_setup_interfaces()
|
||||
{
|
||||
local board="$1"
|
||||
|
||||
case "$board" in
|
||||
airgatewaypro)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "4:lan" "5:wan"
|
||||
;;
|
||||
airrouter|\
|
||||
ap121|\
|
||||
ap121-mini|\
|
||||
ap96|\
|
||||
dir-600-a1|\
|
||||
dir-615-c1|\
|
||||
dir-615-e1|\
|
||||
dir-615-e4|\
|
||||
hiwifi-hc6361|\
|
||||
ja76pf|\
|
||||
mc-mac1200r|\
|
||||
minibox-v1|\
|
||||
mynet-n600|\
|
||||
oolite-v1|\
|
||||
oolite-v5.2|\
|
||||
oolite-v5.2-dev|\
|
||||
qihoo-c301|\
|
||||
r602n|\
|
||||
rb-750|\
|
||||
rb-751|\
|
||||
som9331|\
|
||||
t830|\
|
||||
tew-632brp|\
|
||||
tew-712br|\
|
||||
tew-732br|\
|
||||
tl-mr3220|\
|
||||
tl-mr3220-v2|\
|
||||
tl-mr3420|\
|
||||
tl-wdr3320-v2|\
|
||||
tl-wdr3500|\
|
||||
tl-wr740n-v6|\
|
||||
tl-wr741nd-v4|\
|
||||
tl-wr840n-v2|\
|
||||
tl-wr840n-v3|\
|
||||
tl-wr841n-v11|\
|
||||
tl-wr841n-v9|\
|
||||
tl-wr842n-v3|\
|
||||
whr-g301n|\
|
||||
whr-hp-g300n|\
|
||||
whr-hp-gn|\
|
||||
wzr-hp-ag300h|\
|
||||
zbt-we1526)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
alfa-ap120c|\
|
||||
all0305|\
|
||||
antminer-s1|\
|
||||
antminer-s3|\
|
||||
antrouter-r1|\
|
||||
ap121f|\
|
||||
ap91-5g|\
|
||||
aw-nr580|\
|
||||
bullet-m|\
|
||||
c-55|\
|
||||
cap4200ag|\
|
||||
cf-e380ac-v1|\
|
||||
cf-e380ac-v2|\
|
||||
cpe210-v2|\
|
||||
dr342|\
|
||||
eap120|\
|
||||
eap300v2|\
|
||||
eap7660d|\
|
||||
el-mini|\
|
||||
fritz300e|\
|
||||
fritz450e|\
|
||||
gl-usb150|\
|
||||
hiveap-121|\
|
||||
koala|\
|
||||
lbe-m5|\
|
||||
loco-m-xw|\
|
||||
mr12|\
|
||||
mr16|\
|
||||
mr1750|\
|
||||
mr1750v2|\
|
||||
mr18|\
|
||||
mr600|\
|
||||
mr600v2|\
|
||||
mr900|\
|
||||
mr900v2|\
|
||||
mynet-rext|\
|
||||
pqi-air-pen|\
|
||||
rb-411|\
|
||||
rb-411u|\
|
||||
rb-911-2hn|\
|
||||
rb-911-5hn|\
|
||||
rb-911g-2hpnd|\
|
||||
rb-911g-5hpacd|\
|
||||
rb-911g-5hpnd|\
|
||||
rb-912uag-2hpnd|\
|
||||
rb-912uag-5hpnd|\
|
||||
rb-921gs-5hpacd-r2|\
|
||||
rb-lhg-5nd|\
|
||||
rb-mapl-2nd|\
|
||||
rb-sxt2n|\
|
||||
rb-sxt5n|\
|
||||
rb-wap-2nd|\
|
||||
rb-wapg-5hact2hnd|\
|
||||
re355|\
|
||||
re450|\
|
||||
rocket-m-xw|\
|
||||
sc300m |\
|
||||
tl-mr10u|\
|
||||
tl-mr11u|\
|
||||
tl-mr12u|\
|
||||
tl-mr13u|\
|
||||
tl-mr3020|\
|
||||
tl-mr3040|\
|
||||
tl-mr3040-v2|\
|
||||
tl-wa701nd-v2|\
|
||||
tl-wa7210n-v2|\
|
||||
tl-wa750re|\
|
||||
tl-wa801nd-v2|\
|
||||
tl-wa830re-v2|\
|
||||
tl-wa850re|\
|
||||
tl-wa850re-v2|\
|
||||
tl-wa855re-v1|\
|
||||
tl-wa901nd|\
|
||||
tl-wa901nd-v2|\
|
||||
tl-wa901nd-v3|\
|
||||
tl-wa901nd-v4|\
|
||||
tl-wa901nd-v5|\
|
||||
tl-wr703n|\
|
||||
tl-wr802n-v1|\
|
||||
tl-wr802n-v2|\
|
||||
tl-wr902ac-v1|\
|
||||
ts-d084|\
|
||||
tube2h|\
|
||||
unifi|\
|
||||
unifiac-lite|\
|
||||
wi2a-ac200i|\
|
||||
wifi-pineapple-nano|\
|
||||
wndap360|\
|
||||
wp543)
|
||||
ucidef_set_interface_lan "eth0"
|
||||
;;
|
||||
a40|\
|
||||
a60|\
|
||||
alfa-ap96|\
|
||||
alfa-nx|\
|
||||
dr344|\
|
||||
gl-ar150|\
|
||||
gl-ar300m|\
|
||||
gl-domino|\
|
||||
gl-inet|\
|
||||
gl-mifi|\
|
||||
jwap003|\
|
||||
om2p-hsv4|\
|
||||
om2pv4|\
|
||||
pb42|\
|
||||
pb44|\
|
||||
rb-951ui-2hnd|\
|
||||
rb-952ui-5ac2nd|\
|
||||
routerstation|\
|
||||
tl-wr710n|\
|
||||
tl-wr720n-v3|\
|
||||
tl-wr810n|\
|
||||
tl-wr810n-v2|\
|
||||
wpe72|\
|
||||
wrtnode2q)
|
||||
ucidef_set_interfaces_lan_wan "eth1" "eth0"
|
||||
;;
|
||||
all0258n|\
|
||||
all0315n|\
|
||||
dlan-hotspot|\
|
||||
dlan-pro-500-wp|\
|
||||
ens202ext|\
|
||||
ja76pf2|\
|
||||
rocket-m-ti|\
|
||||
ubnt-unifi-outdoor)
|
||||
ucidef_set_interface_lan "eth0 eth1"
|
||||
;;
|
||||
wzr-hp-g300nh2)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "2:wan"
|
||||
;;
|
||||
ap132|\
|
||||
ap136|\
|
||||
ap152|\
|
||||
rb-750gl|\
|
||||
rb-751g|\
|
||||
rb-951g-2hnd|\
|
||||
rb-962uigs-5hact2hnt|\
|
||||
wlr8100|\
|
||||
wzr-hp-g450h)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
|
||||
;;
|
||||
ap135-020|\
|
||||
ap136-020|\
|
||||
bhr-4grv2|\
|
||||
tew-823dru|\
|
||||
tl-wr1043nd-v2|\
|
||||
wzr-450hp2)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" "6@eth0"
|
||||
;;
|
||||
ap136-010|\
|
||||
ap147-010|\
|
||||
nbg6616|\
|
||||
nbg6716)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
|
||||
;;
|
||||
ap143|\
|
||||
rb-433|\
|
||||
rb-433u)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"1:lan" "2:lan" "5@eth1"
|
||||
;;
|
||||
archer-c5|\
|
||||
archer-c7|\
|
||||
tl-wdr4900-v2)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan"
|
||||
;;
|
||||
archer-c25-v1|\
|
||||
archer-c60-v1|\
|
||||
archer-c60-v2|\
|
||||
rb-750-r2|\
|
||||
rb-750p-pbr2|\
|
||||
rb-750up-r2|\
|
||||
rb-951ui-2nd)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
archer-c58-v1|\
|
||||
archer-c59-v1|\
|
||||
fritz4020|\
|
||||
rb-450g)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
|
||||
;;
|
||||
arduino-yun|\
|
||||
dir-505-a1|\
|
||||
tl-wa801nd-v3)
|
||||
ucidef_set_interface_lan "eth1"
|
||||
;;
|
||||
bsb)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan" "3:lan"
|
||||
;;
|
||||
c-60)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "3:wan" "4:lan"
|
||||
;;
|
||||
cap324|\
|
||||
rme-eg200)
|
||||
ucidef_set_interface_lan "eth0" "dhcp"
|
||||
;;
|
||||
cf-e375ac|\
|
||||
rb-map-2nd)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:wan" "2:lan"
|
||||
;;
|
||||
cf-e385ac)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "1:wan" "6@eth1"
|
||||
;;
|
||||
cpe210|\
|
||||
cpe510|\
|
||||
wbs210|\
|
||||
wbs510)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "5:lan" "4:wan"
|
||||
;;
|
||||
cr3000)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2"
|
||||
;;
|
||||
cr5000|\
|
||||
dgl-5500-a1|\
|
||||
dhp-1565-a1|\
|
||||
dir-825-c1|\
|
||||
dir-835-a1|\
|
||||
esr900|\
|
||||
mynet-n750|\
|
||||
sr3200|\
|
||||
tl-wr1043n-v5)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
|
||||
;;
|
||||
dap-2695-a1)
|
||||
ucidef_add_switch "switch0" "0@eth0" "2:lan" "3:wan" "6@eth1"
|
||||
;;
|
||||
rb-941-2nd)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:wan:1"
|
||||
;;
|
||||
db120|\
|
||||
rb-2011il|\
|
||||
rb-2011ils|\
|
||||
rb-2011l|\
|
||||
rb-2011uas|\
|
||||
rb-2011uas-2hnd|\
|
||||
rb-2011uias|\
|
||||
rb-2011uias-2hnd)
|
||||
case "$board" in
|
||||
rb-2011ils|\
|
||||
rb-2011uas*|\
|
||||
rb-2011uias|\
|
||||
rb-2011uias-2hnd)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan" "6:sfp"
|
||||
;;
|
||||
*)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
|
||||
;;
|
||||
esac
|
||||
|
||||
ucidef_add_switch "switch1" \
|
||||
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:lan"
|
||||
;;
|
||||
dir-615-i1|\
|
||||
omy-g1|\
|
||||
r6100|\
|
||||
smart-300|\
|
||||
tl-wdr6500-v2|\
|
||||
tl-wr940n-v4|\
|
||||
tl-wr940n-v6|\
|
||||
tl-wr941nd-v6|\
|
||||
wnr1000-v2|\
|
||||
wnr2000-v4|\
|
||||
wnr2200|\
|
||||
wnr612-v2|\
|
||||
wpn824n)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4"
|
||||
;;
|
||||
tl-mr6400)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1 eth1" "usb0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan" "3:lan"
|
||||
;;
|
||||
dir-825-b1|\
|
||||
nbg460n_550n_550nh|\
|
||||
tew-673gru|\
|
||||
wzr-hp-g300nh)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
|
||||
;;
|
||||
dlan-pro-1200-ac)
|
||||
ucidef_set_interface_lan "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "2:lan" "3:lan" "4:lan"
|
||||
ucidef_add_switch_attr "switch0" "enable" "false"
|
||||
;;
|
||||
e1700ac-v2|\
|
||||
e750g-v8|\
|
||||
unifiac-pro|\
|
||||
xd3200)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:wan"
|
||||
;;
|
||||
e558-v2)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "4:lan" "5:lan" "6@eth0" "3:wan"
|
||||
;;
|
||||
ebr-2310-c1)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4"
|
||||
;;
|
||||
el-m150)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0:lan" "1:lan" "3@eth1"
|
||||
;;
|
||||
dir-869-a1|\
|
||||
epg5000|\
|
||||
esr1750|\
|
||||
tl-wr1043nd-v4|\
|
||||
wndr3700v4|\
|
||||
wndr4300)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
|
||||
;;
|
||||
ew-balin)
|
||||
ucidef_set_interface_raw "usb2" "usb0" "static"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "5:lan:4" "4:lan:5" "3:wan"
|
||||
;;
|
||||
ew-dorin)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan" "3:wan"
|
||||
;;
|
||||
ew-dorin-router)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:lan"
|
||||
;;
|
||||
dw33d|\
|
||||
f9k1115v2)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"2:lan" "3:lan" "4:lan" "5:lan" "6@eth1" "0@eth0" "1:wan"
|
||||
;;
|
||||
gl-ar300|\
|
||||
wnr2000-v3)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
|
||||
;;
|
||||
gl-ar750|\
|
||||
rb-435g)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan" "2:lan"
|
||||
;;
|
||||
jwap230)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "5:wan" "6@eth1"
|
||||
;;
|
||||
nanostation-m-xw)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "5:lan" "1:wan"
|
||||
;;
|
||||
onion-omega)
|
||||
ucidef_set_interface_lan "wlan0"
|
||||
;;
|
||||
rb-450)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5@eth1"
|
||||
;;
|
||||
routerstation-pro)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
rb-493g)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1 eth1.1" "eth1.2"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
|
||||
ucidef_add_switch "switch1" \
|
||||
"0@eth1" "1:lan:4" "2:lan:1" "3:lan:3" "4:lan:2" "5:wan"
|
||||
;;
|
||||
rut900)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
tellstick-znet-lite)
|
||||
ucidef_set_interface_wan "eth0"
|
||||
ucidef_set_interface_raw "wlan" "wlan0" "dhcp"
|
||||
;;
|
||||
tl-mr3420-v2|\
|
||||
tl-wr841n-v8|\
|
||||
tl-wr842n-v2|\
|
||||
tl-wr941nd-v5|\
|
||||
tl-wr942n-v1)
|
||||
ucidef_set_interfaces_lan_wan "eth1.1" "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth1" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
|
||||
;;
|
||||
archer-c7-v4|\
|
||||
archer-c7-v5|\
|
||||
tl-wdr4300|\
|
||||
tl-wr1041n-v2)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
|
||||
;;
|
||||
tl-wpa8630)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "5:lan:4"
|
||||
;;
|
||||
tl-wr1043nd)
|
||||
ucidef_add_switch "switch0" \
|
||||
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0"
|
||||
;;
|
||||
tl-wr2543n)
|
||||
ucidef_add_switch "switch0" \
|
||||
"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0"
|
||||
;;
|
||||
tl-wr841n-v1|\
|
||||
tl-wr941nd)
|
||||
ucidef_set_interface_raw "eth" "eth0"
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
|
||||
;;
|
||||
tl-wr741nd|\
|
||||
tl-wr841n-v7)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4"
|
||||
;;
|
||||
uap-pro|\
|
||||
wpj342)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:wan"
|
||||
;;
|
||||
wndr3700|\
|
||||
wndr3700v2|\
|
||||
wndr3800|\
|
||||
wndr3800ch)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5@eth0"
|
||||
|
||||
ucidef_add_switch_attr "switch0" "blinkrate" 2
|
||||
ucidef_add_switch_port_attr "switch0" 1 led 6
|
||||
ucidef_add_switch_port_attr "switch0" 2 led 9
|
||||
ucidef_add_switch_port_attr "switch0" 5 led 2
|
||||
;;
|
||||
wpj344)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "3:lan" "2:wan"
|
||||
;;
|
||||
wpj558)
|
||||
ucidef_add_switch "switch0" \
|
||||
"5:lan" "1:wan" "6@eth0"
|
||||
;;
|
||||
wpj563)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:wan"
|
||||
;;
|
||||
wrt160nl)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4@eth0"
|
||||
;;
|
||||
wzr-hp-g450h)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan:1 3:lan:2 4:lan:3 5:lan:4" "1:wan"
|
||||
;;
|
||||
z1)
|
||||
ucidef_set_interfaces_lan_wan "eth0.1" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4" "5:wan"
|
||||
;;
|
||||
*)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ar71xx_setup_macs()
|
||||
{
|
||||
local board="$1"
|
||||
local lan_mac=""
|
||||
local wan_mac=""
|
||||
|
||||
case $board in
|
||||
archer-c7-v4)
|
||||
base_mac=$(mtd_get_mac_binary config 8)
|
||||
wan_mac=$(macaddr_add "$base_mac" 1)
|
||||
;;
|
||||
archer-c7-v5)
|
||||
base_mac=$(mtd_get_mac_binary info 8)
|
||||
wan_mac=$(macaddr_add "$base_mac" 1)
|
||||
;;
|
||||
dgl-5500-a1|\
|
||||
dir-825-c1)
|
||||
wan_mac=$(mtd_get_mac_ascii nvram "wan_mac")
|
||||
;;
|
||||
dhp-1565-a1|\
|
||||
dir-835-a1|\
|
||||
wndr3700v4|\
|
||||
wndr4300)
|
||||
lan_mac=$(mtd_get_mac_binary caldata 0)
|
||||
wan_mac=$(mtd_get_mac_binary caldata 6)
|
||||
;;
|
||||
dir-869-a1|\
|
||||
mynet-n750)
|
||||
wan_mac=$(mtd_get_mac_ascii devdata "wanmac")
|
||||
;;
|
||||
esr900)
|
||||
wan_mac=$(mtd_get_mac_ascii u-boot-env "wanaddr")
|
||||
;;
|
||||
fritz300e)
|
||||
lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
|
||||
;;
|
||||
tl-wdr4300)
|
||||
base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
|
||||
wan_mac=$(macaddr_add "$base_mac" 1)
|
||||
;;
|
||||
tl-wr1043n-v5|\
|
||||
tl-wr1043nd-v4)
|
||||
lan_mac=$(mtd_get_mac_binary product-info 8)
|
||||
wan_mac=$(macaddr_add "$lan_mac" 1)
|
||||
;;
|
||||
wlr8100)
|
||||
lan_mac=$(mtd_get_mac_ascii u-boot-env "ethaddr")
|
||||
wan_mac=$(mtd_get_mac_ascii u-boot-env "wanaddr")
|
||||
;;
|
||||
wpj344|\
|
||||
wpj558)
|
||||
wan_mac=$(mtd_get_mac_binary u-boot 0x2e018)
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
|
||||
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
|
||||
}
|
||||
|
||||
board_config_update
|
||||
board=$(board_name)
|
||||
ar71xx_setup_interfaces $board
|
||||
ar71xx_setup_macs $board
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
||||
42
target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches
Executable file
42
target/linux/ar71xx/base-files/etc/board.d/03_gpio_switches
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2015 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/uci-defaults.sh
|
||||
|
||||
board_config_update
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
cpe210|\
|
||||
cpe510|\
|
||||
wbs210|\
|
||||
wbs510)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "20"
|
||||
;;
|
||||
nanostation-m)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "8"
|
||||
;;
|
||||
nanostation-m-xw)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
|
||||
;;
|
||||
rb-912uag-2hpnd|\
|
||||
rb-912uag-5hpnd)
|
||||
ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "61" "1"
|
||||
;;
|
||||
rb-750up-r2|\
|
||||
rb-951ui-2nd|\
|
||||
rb-952ui-5ac2nd)
|
||||
ucidef_add_gpio_switch "usb_power_switch" "USB Power Switch" "45" "1"
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "14"
|
||||
;;
|
||||
rb-750p-pbr2)
|
||||
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "14"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
||||
589
target/linux/ar71xx/base-files/etc/diag.sh
Normal file
589
target/linux/ar71xx/base-files/etc/diag.sh
Normal file
@@ -0,0 +1,589 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) 2009-2013 OpenWrt.org
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/leds.sh
|
||||
|
||||
get_status_led() {
|
||||
local board=$(board_name)
|
||||
|
||||
case $board in
|
||||
a40)
|
||||
status_led="a40:green:status"
|
||||
;;
|
||||
a60)
|
||||
status_led="a60:green:status"
|
||||
;;
|
||||
alfa-nx)
|
||||
status_led="alfa:green:led_8"
|
||||
;;
|
||||
all0305)
|
||||
status_led="eap7660d:green:ds4"
|
||||
;;
|
||||
antminer-s1|\
|
||||
antminer-s3|\
|
||||
antminer-r1|\
|
||||
e1700ac-v2|\
|
||||
e558-v2|\
|
||||
e600gac-v2|\
|
||||
e750a-v4|\
|
||||
e750g-v8|\
|
||||
eap120|\
|
||||
minibox-v1|\
|
||||
packet-squirrel|\
|
||||
som9331|\
|
||||
sr3200|\
|
||||
tl-wr802n-v2|\
|
||||
xd3200)
|
||||
status_led="$board:green:system"
|
||||
;;
|
||||
ap121f)
|
||||
status_led="$board:green:vpn"
|
||||
;;
|
||||
ap132|\
|
||||
ap531b0|\
|
||||
cpe505n|\
|
||||
db120|\
|
||||
dr342|\
|
||||
dr344|\
|
||||
rut900|\
|
||||
tew-632brp|\
|
||||
tl-wr942n-v1|\
|
||||
wpj344|\
|
||||
zbt-we1526)
|
||||
status_led="$board:green:status"
|
||||
;;
|
||||
ap136-010|\
|
||||
ap136-020)
|
||||
status_led="ap136:green:status"
|
||||
;;
|
||||
ap147-010)
|
||||
status_led="ap147:green:status"
|
||||
;;
|
||||
ap135-020)
|
||||
status_led="ap135:green:status"
|
||||
;;
|
||||
archer-c25-v1|\
|
||||
archer-c58-v1|\
|
||||
archer-c59-v1|\
|
||||
archer-c60-v1|\
|
||||
archer-c60-v2|\
|
||||
archer-c7-v4|\
|
||||
archer-c7-v5|\
|
||||
fritz300e|\
|
||||
fritz4020|\
|
||||
fritz450e|\
|
||||
gl-usb150|\
|
||||
mr12|\
|
||||
mr16|\
|
||||
nbg6616|\
|
||||
sc1750|\
|
||||
sc450|\
|
||||
tl-wpa8630|\
|
||||
tl-wr902ac-v1)
|
||||
status_led="$board:green:power"
|
||||
;;
|
||||
tl-mr10u|\
|
||||
tl-mr12u|\
|
||||
tl-mr13u|\
|
||||
tl-wdr4300|\
|
||||
tl-wdr4900-v2|\
|
||||
tl-wr703n|\
|
||||
tl-wr710n|\
|
||||
tl-wr720n-v3|\
|
||||
tl-wr802n-v1|\
|
||||
tl-wr810n|\
|
||||
tl-wr810n-v2|\
|
||||
tl-wr940n-v4|\
|
||||
tl-wr941nd-v6)
|
||||
status_led="tp-link:blue:system"
|
||||
;;
|
||||
ap90q|\
|
||||
cpe830|\
|
||||
cpe870|\
|
||||
gl-ar300m|\
|
||||
gl-inet|\
|
||||
gl-mifi)
|
||||
status_led="$board:green:lan"
|
||||
;;
|
||||
ap91-5g|\
|
||||
n5q)
|
||||
status_led="$board:green:signal4"
|
||||
;;
|
||||
ap96)
|
||||
status_led="$board:green:led2"
|
||||
;;
|
||||
aw-nr580)
|
||||
status_led="$board:green:ready"
|
||||
;;
|
||||
bhr-4grv2|\
|
||||
wzr-hp-ag300h|\
|
||||
wzr-hp-g300nh2)
|
||||
status_led="buffalo:red:diag"
|
||||
;;
|
||||
bsb)
|
||||
status_led="$board:red:sys"
|
||||
;;
|
||||
bullet-m|\
|
||||
loco-m-xw|\
|
||||
nano-m|\
|
||||
nanostation-m|\
|
||||
nanostation-m-xw|\
|
||||
rocket-m|\
|
||||
rocket-m-xw)
|
||||
status_led="ubnt:green:link4"
|
||||
;;
|
||||
bxu2000n-2-a1)
|
||||
status_led="bhu:green:status"
|
||||
;;
|
||||
cap324)
|
||||
status_led="pcs:green:power"
|
||||
;;
|
||||
c-55|\
|
||||
c-60)
|
||||
status_led="$board:green:pwr"
|
||||
;;
|
||||
cap4200ag)
|
||||
status_led="senao:green:pwr"
|
||||
;;
|
||||
cf-e316n-v2|\
|
||||
cf-e520n|\
|
||||
cf-e530n)
|
||||
status_led="$board:blue:wan"
|
||||
;;
|
||||
cf-e320n-v2)
|
||||
status_led="$board:blue:wlan"
|
||||
;;
|
||||
cf-e375ac|\
|
||||
cf-e380ac-v1|\
|
||||
cf-e380ac-v2|\
|
||||
cf-e385ac)
|
||||
status_led="$board:blue:wlan2g"
|
||||
;;
|
||||
cpe510)
|
||||
status_led="tp-link:green:link4"
|
||||
;;
|
||||
cr3000|\
|
||||
cr5000)
|
||||
status_led="pcs:amber:power"
|
||||
;;
|
||||
dap-1330-a1|\
|
||||
dgl-5500-a1|\
|
||||
dhp-1565-a1|\
|
||||
dir-505-a1|\
|
||||
dir-600-a1|\
|
||||
dir-615-e1|\
|
||||
dir-615-i1|\
|
||||
dir-615-e4)
|
||||
status_led="d-link:green:power"
|
||||
;;
|
||||
dir-615-c1)
|
||||
status_led="d-link:green:status"
|
||||
;;
|
||||
dir-825-b1)
|
||||
status_led="d-link:orange:power"
|
||||
;;
|
||||
dir-825-c1|\
|
||||
dir-835-a1)
|
||||
status_led="d-link:amber:power"
|
||||
;;
|
||||
dir-869-a1)
|
||||
status_led="d-link:white:status"
|
||||
;;
|
||||
dlan-hotspot)
|
||||
status_led="devolo:green:wifi"
|
||||
;;
|
||||
dlan-pro-500-wp)
|
||||
status_led="devolo:green:wlan-2g"
|
||||
;;
|
||||
dlan-pro-1200-ac)
|
||||
status_led="devolo:status:wlan"
|
||||
;;
|
||||
dr531)
|
||||
status_led="$board:green:sig4"
|
||||
;;
|
||||
dragino2|\
|
||||
oolite-v1)
|
||||
status_led="$board:red:system"
|
||||
;;
|
||||
dw33d|\
|
||||
r36a)
|
||||
status_led="$board:blue:status"
|
||||
;;
|
||||
e600g-v2|\
|
||||
oolite-v5.2-dev|\
|
||||
ts-d084|\
|
||||
wifi-pineapple-nano)
|
||||
status_led="$board:blue:system"
|
||||
;;
|
||||
eap300v2)
|
||||
status_led="engenius:blue:power"
|
||||
;;
|
||||
ens202ext|\
|
||||
esr900)
|
||||
status_led="engenius:amber:power"
|
||||
;;
|
||||
eap7660d)
|
||||
status_led="$board:green:ds4"
|
||||
;;
|
||||
el-m150|\
|
||||
el-mini)
|
||||
status_led="easylink:green:system"
|
||||
;;
|
||||
ew-balin)
|
||||
status_led="balin:green:status"
|
||||
;;
|
||||
ew-dorin|\
|
||||
ew-dorin-router)
|
||||
status_led="dorin:green:status"
|
||||
;;
|
||||
f9k1115v2)
|
||||
status_led="belkin:blue:status"
|
||||
;;
|
||||
epg5000|\
|
||||
esr1750)
|
||||
status_led="$board:amber:power"
|
||||
;;
|
||||
gl-ar750|\
|
||||
hiveap-121|\
|
||||
nbg6716|\
|
||||
wam250)
|
||||
status_led="$board:white:power"
|
||||
;;
|
||||
hiwifi-hc6361)
|
||||
status_led="hiwifi:blue:system"
|
||||
;;
|
||||
hornet-ub|\
|
||||
hornet-ub-x2)
|
||||
status_led="alfa:blue:wps"
|
||||
;;
|
||||
ja76pf|\
|
||||
ja76pf2)
|
||||
status_led="jjplus:green:led1"
|
||||
;;
|
||||
jwap230)
|
||||
status_led="$board:green:led1"
|
||||
;;
|
||||
koala)
|
||||
status_led="$board:blue:sys"
|
||||
;;
|
||||
lan-turtle)
|
||||
status_led="$board:orange:system"
|
||||
;;
|
||||
lbe-m5)
|
||||
status_led="ubnt:green:sys"
|
||||
;;
|
||||
ls-sr71)
|
||||
status_led="ubnt:green:d22"
|
||||
;;
|
||||
mc-mac1200r)
|
||||
status_led="mercury:green:system"
|
||||
;;
|
||||
mr18|\
|
||||
z1)
|
||||
status_led="$board:green:tricolor0"
|
||||
;;
|
||||
mr600)
|
||||
status_led="$board:orange:power"
|
||||
;;
|
||||
mr600v2)
|
||||
status_led="mr600:blue:power"
|
||||
;;
|
||||
mr1750|\
|
||||
mr1750v2)
|
||||
status_led="mr1750:blue:power"
|
||||
;;
|
||||
mr900|\
|
||||
mr900v2)
|
||||
status_led="mr900:blue:power"
|
||||
;;
|
||||
mynet-n600|\
|
||||
mynet-n750|\
|
||||
mynet-rext)
|
||||
status_led="wd:blue:power"
|
||||
;;
|
||||
mzk-w04nu|\
|
||||
mzk-w300nh)
|
||||
status_led="planex:green:status"
|
||||
;;
|
||||
nbg460n_550n_550nh)
|
||||
status_led="nbg460n:green:power"
|
||||
;;
|
||||
om2p|\
|
||||
om2p-hs|\
|
||||
om2p-hsv2|\
|
||||
om2p-hsv3|\
|
||||
om2p-hsv4|\
|
||||
om2p-lc|\
|
||||
om2pv2|\
|
||||
om2pv4)
|
||||
status_led="om2p:blue:power"
|
||||
;;
|
||||
om5p|\
|
||||
om5p-an)
|
||||
status_led="om5p:blue:power"
|
||||
;;
|
||||
om5p-ac|\
|
||||
om5p-acv2)
|
||||
status_led="om5pac:blue:power"
|
||||
;;
|
||||
omy-g1)
|
||||
status_led="omy:green:wlan"
|
||||
;;
|
||||
omy-x1)
|
||||
status_led="omy:green:power"
|
||||
;;
|
||||
onion-omega)
|
||||
status_led="onion:amber:system"
|
||||
;;
|
||||
pb44)
|
||||
status_led="$board:amber:jump1"
|
||||
;;
|
||||
r602n)
|
||||
status_led="$board:green:wan"
|
||||
;;
|
||||
rb-2011il|\
|
||||
rb-2011ils|\
|
||||
rb-2011l|\
|
||||
rb-2011uas|\
|
||||
rb-2011uas-2hnd)
|
||||
status_led="rb:green:usr"
|
||||
;;
|
||||
rb-411|\
|
||||
rb-411u|\
|
||||
rb-433|\
|
||||
rb-433u|\
|
||||
rb-450|\
|
||||
rb-450g|\
|
||||
rb-493)
|
||||
status_led="rb4xx:yellow:user"
|
||||
;;
|
||||
rb-750)
|
||||
status_led="rb750:green:act"
|
||||
;;
|
||||
rb-750-r2|\
|
||||
rb-750p-pbr2|\
|
||||
rb-750up-r2|\
|
||||
rb-911-2hn|\
|
||||
rb-911-5hn|\
|
||||
rb-911g-2hpnd|\
|
||||
rb-911g-5hpacd|\
|
||||
rb-911g-5hpnd|\
|
||||
rb-941-2nd|\
|
||||
rb-951ui-2nd|\
|
||||
rb-952ui-5ac2nd|\
|
||||
rb-962uigs-5hact2hnt|\
|
||||
rb-lhg-5nd|\
|
||||
rb-map-2nd|\
|
||||
rb-mapl-2nd|\
|
||||
rb-wap-2nd)
|
||||
status_led="rb:green:user"
|
||||
;;
|
||||
rb-951ui-2hnd)
|
||||
status_led="rb:green:act"
|
||||
;;
|
||||
rb-912uag-2hpnd|\
|
||||
rb-912uag-5hpnd|\
|
||||
rb-sxt2n|\
|
||||
rb-sxt5n|\
|
||||
rb-wapg-5hact2hnd)
|
||||
status_led="rb:green:power"
|
||||
;;
|
||||
re355|\
|
||||
re450|\
|
||||
sc300m)
|
||||
status_led="$board:blue:power"
|
||||
;;
|
||||
rocket-m-ti)
|
||||
status_led="ubnt:green:link6"
|
||||
;;
|
||||
routerstation|\
|
||||
routerstation-pro)
|
||||
status_led="ubnt:green:rf"
|
||||
;;
|
||||
rw2458n)
|
||||
status_led="$board:green:d3"
|
||||
;;
|
||||
smart-300)
|
||||
status_led="nc-link:green:system"
|
||||
;;
|
||||
qihoo-c301)
|
||||
status_led="qihoo:green:status"
|
||||
;;
|
||||
t830)
|
||||
status_led="$board:green:usb"
|
||||
;;
|
||||
tellstick-znet-lite)
|
||||
status_led="tellstick:white:system"
|
||||
;;
|
||||
tew-673gru)
|
||||
status_led="trendnet:blue:wps"
|
||||
;;
|
||||
tew-712br|\
|
||||
tew-732br|\
|
||||
tew-823dru)
|
||||
status_led="trendnet:green:power"
|
||||
;;
|
||||
tl-mr3020|\
|
||||
tl-wr2543n)
|
||||
status_led="tp-link:green:wps"
|
||||
;;
|
||||
tl-wa750re)
|
||||
status_led="tp-link:orange:re"
|
||||
;;
|
||||
tl-wa850re|\
|
||||
tl-wa850re-v2)
|
||||
status_led="tp-link:blue:re"
|
||||
;;
|
||||
tl-wa855re-v1|\
|
||||
tl-wa860re)
|
||||
status_led="tp-link:green:power"
|
||||
;;
|
||||
tl-mr6400)
|
||||
status_led="tp-link:white:power"
|
||||
;;
|
||||
archer-c5|\
|
||||
archer-c7|\
|
||||
tl-mr3220|\
|
||||
tl-mr3220-v2|\
|
||||
tl-mr3420|\
|
||||
tl-mr3420-v2|\
|
||||
tl-wa701nd-v2|\
|
||||
tl-wa801nd-v2|\
|
||||
tl-wa801nd-v3|\
|
||||
tl-wa830re-v2|\
|
||||
tl-wa901nd|\
|
||||
tl-wa901nd-v2|\
|
||||
tl-wa901nd-v3|\
|
||||
tl-wa901nd-v4|\
|
||||
tl-wa901nd-v5|\
|
||||
tl-wdr3320-v2|\
|
||||
tl-wdr3500|\
|
||||
tl-wr1041n-v2|\
|
||||
tl-wr1043n-v5|\
|
||||
tl-wr1043nd|\
|
||||
tl-wr1043nd-v2|\
|
||||
tl-wr1043nd-v4|\
|
||||
tl-wr740n-v6|\
|
||||
tl-wr741nd|\
|
||||
tl-wr741nd-v4|\
|
||||
tl-wr840n-v2|\
|
||||
tl-wr840n-v3|\
|
||||
tl-wr841n-v1|\
|
||||
tl-wr841n-v7|\
|
||||
tl-wr841n-v8|\
|
||||
tl-wr841n-v11|\
|
||||
tl-wr842n-v2|\
|
||||
tl-wr842n-v3|\
|
||||
tl-wr941nd|\
|
||||
tl-wr941nd-v5)
|
||||
status_led="tp-link:green:system"
|
||||
;;
|
||||
tl-wr841n-v9)
|
||||
status_led="tp-link:green:qss"
|
||||
;;
|
||||
tl-wr940n-v6)
|
||||
status_led="tp-link:orange:diag"
|
||||
;;
|
||||
tl-wdr6500-v2)
|
||||
status_led="tp-link:white:system"
|
||||
;;
|
||||
tube2h)
|
||||
status_led="alfa:green:signal4"
|
||||
;;
|
||||
unifi)
|
||||
status_led="ubnt:green:dome"
|
||||
;;
|
||||
uap-pro|\
|
||||
unifiac-lite|\
|
||||
unifiac-pro)
|
||||
status_led="ubnt:white:dome"
|
||||
;;
|
||||
unifi-outdoor-plus)
|
||||
status_led="ubnt:white:front"
|
||||
;;
|
||||
airgateway|\
|
||||
airgatewaypro)
|
||||
status_led="ubnt:white:status"
|
||||
;;
|
||||
wi2a-ac200i)
|
||||
status_led="nokia:green:ctrl"
|
||||
;;
|
||||
whr-g301n|\
|
||||
whr-hp-g300n|\
|
||||
whr-hp-gn|\
|
||||
wzr-hp-g300nh)
|
||||
status_led="buffalo:green:router"
|
||||
;;
|
||||
wlae-ag300n)
|
||||
status_led="buffalo:green:status"
|
||||
;;
|
||||
r6100|\
|
||||
wndap360|\
|
||||
wndr3700|\
|
||||
wndr3700v4|\
|
||||
wndr4300|\
|
||||
wnr2000|\
|
||||
wnr2000-v3|\
|
||||
wnr2200|\
|
||||
wnr612-v2|\
|
||||
wnr1000-v2|\
|
||||
wpn824n)
|
||||
status_led="netgear:green:power"
|
||||
;;
|
||||
wp543)
|
||||
status_led="$board:green:diag"
|
||||
;;
|
||||
wpj342|\
|
||||
wpj531|\
|
||||
wpj558)
|
||||
status_led="$board:green:sig3"
|
||||
;;
|
||||
wpj563)
|
||||
status_led="$board:green:sig1"
|
||||
;;
|
||||
wrt160nl|\
|
||||
wrt400n)
|
||||
status_led="$board:blue:wps"
|
||||
;;
|
||||
zcn-1523h-2|\
|
||||
zcn-1523h-5)
|
||||
status_led="zcn-1523h:amber:init"
|
||||
;;
|
||||
wlr8100)
|
||||
status_led="sitecom:amber:status"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
set_state() {
|
||||
get_status_led
|
||||
|
||||
case "$1" in
|
||||
preinit)
|
||||
status_led_blink_preinit
|
||||
;;
|
||||
failsafe)
|
||||
status_led_blink_failsafe
|
||||
;;
|
||||
preinit_regular)
|
||||
status_led_blink_preinit_regular
|
||||
;;
|
||||
done)
|
||||
status_led_on
|
||||
case $(board_name) in
|
||||
gl-ar300m|\
|
||||
gl-ar750)
|
||||
fw_printenv lc >/dev/null 2>&1 && fw_setenv "bootcount" 0
|
||||
;;
|
||||
qihoo-c301)
|
||||
local n=$(fw_printenv activeregion | cut -d = -f 2)
|
||||
fw_setenv "image${n}trynum" 0
|
||||
;;
|
||||
wi2a-ac200i)
|
||||
fw_setenv PKRstCnt 0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
ath9k_eeprom_die() {
|
||||
echo "ath9k eeprom: " "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ath9k_eeprom_extract() {
|
||||
local part=$1
|
||||
local offset=$2
|
||||
local count=$3
|
||||
local mtd
|
||||
|
||||
mtd=$(find_mtd_chardev $part)
|
||||
[ -n "$mtd" ] || \
|
||||
ath9k_eeprom_die "no mtd device found for partition $part"
|
||||
|
||||
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
|
||||
ath9k_eeprom_die "failed to extract from $mtd"
|
||||
}
|
||||
|
||||
ath9k_ubi_eeprom_extract() {
|
||||
local part=$1
|
||||
local offset=$2
|
||||
local count=$3
|
||||
local ubidev=$(nand_find_ubi $CI_UBIPART)
|
||||
local ubi
|
||||
|
||||
ubi=$(nand_find_volume $ubidev $part)
|
||||
[ -n "$ubi" ] || \
|
||||
ath9k_eeprom_die "no UBI volume found for $part"
|
||||
|
||||
dd if=/dev/$ubi of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
|
||||
ath9k_eeprom_die "failed to extract from $ubi"
|
||||
}
|
||||
|
||||
ath9k_eeprom_extract_reverse() {
|
||||
local part=$1
|
||||
local offset=$2
|
||||
local count=$3
|
||||
local mtd
|
||||
local reversed
|
||||
local caldata
|
||||
|
||||
mtd=$(find_mtd_chardev "$part")
|
||||
reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd)
|
||||
|
||||
for byte in $reversed; do
|
||||
caldata="\x${byte}${caldata}"
|
||||
done
|
||||
|
||||
printf "%b" "$caldata" > /lib/firmware/$FIRMWARE
|
||||
}
|
||||
|
||||
ath9k_patch_firmware_mac() {
|
||||
local mac=$1
|
||||
|
||||
[ -z "$mac" ] && return
|
||||
|
||||
macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=2 count=6
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$FIRMWARE" in
|
||||
"soc_wmac.eeprom")
|
||||
case $board in
|
||||
c-55|\
|
||||
c-60)
|
||||
ath9k_eeprom_extract "art" 4096 2048
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary art 0) +1)
|
||||
;;
|
||||
fritz4020|\
|
||||
fritz450e)
|
||||
ath9k_eeprom_extract_reverse "urlader" 5441 1088
|
||||
;;
|
||||
mr18)
|
||||
. /lib/upgrade/nand.sh
|
||||
|
||||
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
|
||||
ath9k_ubi_eeprom_extract "caldata" 4096 2048
|
||||
else
|
||||
ath9k_eeprom_extract "odm-caldata" 4096 2048
|
||||
fi
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) +1)
|
||||
;;
|
||||
r6100 | \
|
||||
wndr3700v4 | \
|
||||
wndr4300)
|
||||
ath9k_eeprom_extract "caldata" 4096 2048
|
||||
ath9k_patch_firmware_mac $(mtd_get_mac_binary caldata 0)
|
||||
;;
|
||||
rambutan)
|
||||
ath9k_eeprom_extract "art" 4096 2048
|
||||
;;
|
||||
wlr8100)
|
||||
ath9k_eeprom_extract "art" 4096 2048
|
||||
ath9k_patch_firmware_mac $(mtd_get_mac_ascii u-boot-env "ethaddr")
|
||||
;;
|
||||
z1)
|
||||
. /lib/upgrade/nand.sh
|
||||
|
||||
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
|
||||
ath9k_ubi_eeprom_extract "caldata" 4096 2048
|
||||
else
|
||||
ath9k_eeprom_extract "origcaldata" 4096 2048
|
||||
fi
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) +2)
|
||||
;;
|
||||
*)
|
||||
ath9k_eeprom_die "board $board is not supported yet"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
"pci_wmac0.eeprom")
|
||||
case $board in
|
||||
c-55)
|
||||
ath9k_eeprom_extract "art" 20480 2048
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary art 0) +2)
|
||||
;;
|
||||
fritz300e)
|
||||
ath9k_eeprom_extract_reverse "urloader" 5441 1088
|
||||
;;
|
||||
mr18)
|
||||
. /lib/upgrade/nand.sh
|
||||
|
||||
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
|
||||
ath9k_ubi_eeprom_extract "caldata" 20480 2048
|
||||
else
|
||||
ath9k_eeprom_extract "odm-caldata" 20480 2048
|
||||
fi
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) +2)
|
||||
;;
|
||||
wndr3700v4 | \
|
||||
wndr4300)
|
||||
ath9k_eeprom_extract "caldata" 20480 2048
|
||||
ath9k_patch_firmware_mac $(mtd_get_mac_binary caldata 12)
|
||||
;;
|
||||
z1)
|
||||
. /lib/upgrade/nand.sh
|
||||
|
||||
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
|
||||
ath9k_ubi_eeprom_extract "caldata" 86016 4096
|
||||
else
|
||||
ath9k_eeprom_extract "origcaldata" 86016 4096
|
||||
fi
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) +3)
|
||||
;;
|
||||
*)
|
||||
ath9k_eeprom_die "board $board is not supported yet"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
"pci_wmac1.eeprom")
|
||||
case $board in
|
||||
mr18)
|
||||
. /lib/upgrade/nand.sh
|
||||
|
||||
if [ -n "$(nand_find_volume ubi0 caldata)" ]; then
|
||||
ath9k_ubi_eeprom_extract "caldata" 36864 2048
|
||||
else
|
||||
ath9k_eeprom_extract "odm-caldata" 36864 2048
|
||||
fi
|
||||
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi board-config 102) +3)
|
||||
;;
|
||||
*)
|
||||
ath9k_eeprom_die "board $board is not supported yet"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,191 @@
|
||||
#!/bin/sh
|
||||
|
||||
ath10kcal_die() {
|
||||
echo "ath10cal: " "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ath10kcal_from_file() {
|
||||
local source=$1
|
||||
local offset=$2
|
||||
local count=$3
|
||||
|
||||
dd if=$source of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
|
||||
ath10kcal_die "failed to extract calibration data from $source"
|
||||
}
|
||||
|
||||
ath10kcal_extract() {
|
||||
local part=$1
|
||||
local offset=$2
|
||||
local count=$3
|
||||
local mtd cal_size
|
||||
|
||||
mtd=$(find_mtd_chardev $part)
|
||||
[ -n "$mtd" ] || \
|
||||
ath10kcal_die "no mtd device found for partition $part"
|
||||
|
||||
# Check that the calibration data size in header equals the desired size
|
||||
cal_size=$(dd if=$mtd bs=2 count=1 skip=$(( $offset / 2 )) conv=swab 2>/dev/null | hexdump -ve '1/2 "%d"')
|
||||
|
||||
[ "$count" = "$cal_size" ] || \
|
||||
ath10kcal_die "no calibration data found in $part"
|
||||
|
||||
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
|
||||
ath10kcal_die "failed to extract calibration data from $mtd"
|
||||
}
|
||||
|
||||
ath10kcal_patch_mac() {
|
||||
local mac=$1
|
||||
|
||||
[ -z "$mac" ] && return
|
||||
|
||||
macaddr_2bin $mac | dd of=/lib/firmware/$FIRMWARE conv=notrunc bs=1 seek=6 count=6
|
||||
}
|
||||
|
||||
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$FIRMWARE" in
|
||||
"ath10k/cal-pci-0000:00:00.0.bin")
|
||||
case $board in
|
||||
a40|\
|
||||
a60|\
|
||||
mr1750|\
|
||||
mr1750v2|\
|
||||
om5p-acv2)
|
||||
ath10kcal_extract "ART" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
||||
;;
|
||||
archer-c25-v1|\
|
||||
tl-wdr6500-v2)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
|
||||
;;
|
||||
archer-c7-v4|\
|
||||
archer-c7-v5)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
|
||||
;;
|
||||
cf-e355ac-v1|\
|
||||
cf-e380ac-v1|\
|
||||
cf-e380ac-v2|\
|
||||
dlan-pro-1200-ac|\
|
||||
e1700ac-v2|\
|
||||
e600gac-v2|\
|
||||
oolite-v5.2|\
|
||||
oolite-v5.2-dev|\
|
||||
sr3200|\
|
||||
xd3200)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
;;
|
||||
dap-2695-a1)
|
||||
ath10kcal_extract "radiocfg" 20480 2116
|
||||
ath10kcal_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
|
||||
;;
|
||||
dir-869-a1|\
|
||||
qihoo-c301)
|
||||
ath10kcal_extract "radiocfg" 20480 2116
|
||||
ath10kcal_patch_mac $(mtd_get_mac_ascii devdata wlan5mac)
|
||||
;;
|
||||
dw33d)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(mtd_get_mac_binary art 18)
|
||||
;;
|
||||
epg5000|\
|
||||
esr1750)
|
||||
ath10kcal_extract "caldata" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
|
||||
;;
|
||||
gl-ar750|\
|
||||
tl-wpa8630)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
|
||||
;;
|
||||
koala)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 12) +0)
|
||||
;;
|
||||
mc-mac1200r)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
|
||||
;;
|
||||
r6100)
|
||||
ath10kcal_extract "caldata" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) +2)
|
||||
;;
|
||||
rb-952ui-5ac2nd|\
|
||||
rb-wapg-5hact2hnd)
|
||||
ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
|
||||
;;
|
||||
re355|\
|
||||
re450|\
|
||||
tl-wr902ac-v1)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
|
||||
;;
|
||||
unifiac-lite|\
|
||||
unifiac-pro)
|
||||
ath10kcal_extract "EEPROM" 20480 2116
|
||||
;;
|
||||
wi2a-ac200i)
|
||||
ath10kcal_extract "ART" 20480 2116
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"ath10k/cal-pci-0000:01:00.0.bin")
|
||||
case $board in
|
||||
archer-c5|\
|
||||
archer-c7)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
|
||||
;;
|
||||
nbg6616|\
|
||||
nbg6716)
|
||||
ath10kcal_extract "RFdata" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2)
|
||||
;;
|
||||
om5p-ac)
|
||||
ath10kcal_extract "ART" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
||||
;;
|
||||
rb-911g-5hpacd|\
|
||||
rb-921gs-5hpacd-r2|\
|
||||
rb-962uigs-5hact2hnt)
|
||||
ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
|
||||
;;
|
||||
wlr8100)
|
||||
ath10kcal_extract "art" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"ath10k/pre-cal-pci-0000:00:00.0.bin")
|
||||
case $board in
|
||||
archer-c58-v1|\
|
||||
archer-c59-v1|\
|
||||
archer-c60-v1|\
|
||||
cf-e355ac-v2|\
|
||||
cf-e375ac)
|
||||
ath10kcal_extract "art" 20480 12064
|
||||
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
|
||||
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
|
||||
;;
|
||||
archer-c60-v2)
|
||||
ath10kcal_extract "art" 20480 12064
|
||||
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
|
||||
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1)
|
||||
;;
|
||||
cf-e385ac)
|
||||
ath10kcal_extract "art" 20480 12064
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/bin/ash
|
||||
|
||||
[ "$ACTION" == "add" ] || exit 0
|
||||
|
||||
PHYNBR=${DEVPATH##*/phy}
|
||||
|
||||
[ -n $PHYNBR ] || exit 0
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
archer-c58-v1|\
|
||||
archer-c59-v1|\
|
||||
archer-c60-v1)
|
||||
echo $(macaddr_add $(mtd_get_mac_binary mac 8) $(($PHYNBR - 1)) ) > /sys${DEVPATH}/macaddress
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
# For AR9220 and AR9223, GPIO JTAG must explicit be disabled
|
||||
# before LEDs start working. Do this when wifi device is
|
||||
# detected.
|
||||
|
||||
#
|
||||
# $DEVPATH is not valid for some boards (including WZR-HP-AG300H).
|
||||
# Manipulate the $DEVPATH to reach the corresponding phyN.
|
||||
#
|
||||
|
||||
devdir=$(dirname $DEVPATH)
|
||||
devdir=$(dirname $devdir)
|
||||
phydir=/sys$devdir/ieee80211
|
||||
phyname=$(cat $phydir/phy*/name)
|
||||
|
||||
[ -z $phyname -o $ACTION != "add" ] && exit 0
|
||||
|
||||
#
|
||||
# ar922x_disable_gpio_jtag():
|
||||
#
|
||||
# Emulate
|
||||
# REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE);
|
||||
# for AR9220 and AR9223.
|
||||
#
|
||||
|
||||
ar922x_disable_gpio_jtag() {
|
||||
local regidx=0x4054
|
||||
|
||||
[ -f /sys/kernel/debug/ieee80211/$1/ath9k/regidx ] || return
|
||||
|
||||
echo $regidx > /sys/kernel/debug/ieee80211/$1/ath9k/regidx
|
||||
regval=$(cat /sys/kernel/debug/ieee80211/$1/ath9k/regval)
|
||||
regval=$((regval | 0x20000))
|
||||
echo regval $regval
|
||||
echo $regval > /sys/kernel/debug/ieee80211/$1/ath9k/regval
|
||||
}
|
||||
|
||||
[ $phyname -a $ACTION = "add" ] && {
|
||||
. /lib/functions.sh
|
||||
|
||||
case $(board_name) in
|
||||
wzr-hp-ag300h)
|
||||
ar922x_disable_gpio_jtag $phyname
|
||||
;;
|
||||
esac;
|
||||
}
|
||||
|
||||
exit 0
|
||||
3
target/linux/ar71xx/base-files/etc/inittab
Normal file
3
target/linux/ar71xx/base-files/etc/inittab
Normal file
@@ -0,0 +1,3 @@
|
||||
::sysinit:/etc/init.d/rcS S boot
|
||||
::shutdown:/etc/init.d/rcS K shutdown
|
||||
::askconsole:/usr/libexec/login.sh
|
||||
@@ -0,0 +1,108 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2013 OpenWrt.org
|
||||
#
|
||||
|
||||
SWITCH_NAME_CHANGED=
|
||||
|
||||
. /lib/functions.sh
|
||||
|
||||
do_change_switch_name() {
|
||||
local config="$1"
|
||||
local option=$2
|
||||
local oldname=$3
|
||||
local newname=$4
|
||||
local val
|
||||
|
||||
config_get val "$config" $option
|
||||
[ "$val" != "$oldname" ] && return 0
|
||||
|
||||
uci_set network "$config" $option $newname
|
||||
SWITCH_NAME_CHANGED=1
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
migrate_switch_name() {
|
||||
local oldname=$1
|
||||
local newname=$2
|
||||
|
||||
config_load network
|
||||
|
||||
logger -t migrate-switchX "Updating switch names in network configuration"
|
||||
|
||||
config_foreach do_change_switch_name switch name $oldname $newname
|
||||
config_foreach do_change_switch_name switch_vlan device $oldname $newname
|
||||
|
||||
[ "$SWITCH_NAME_CHANGED" = "1" ] && {
|
||||
logger -t migrate-switchX "Switch names updated, saving network configuration"
|
||||
uci commit network
|
||||
}
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
airrouter|\
|
||||
ap121|\
|
||||
ap121-mini|\
|
||||
ap96|\
|
||||
dir-600-a1|\
|
||||
dir-615-c1|\
|
||||
dir-615-e1|\
|
||||
dir-615-e4|\
|
||||
dir-825-c1|\
|
||||
ebr-2310-c1|\
|
||||
ew-dorin|\
|
||||
ew-dorin-router|\
|
||||
ja76pf|\
|
||||
rb-750|\
|
||||
rb-751|\
|
||||
tew-632brp|\
|
||||
tew-712br|\
|
||||
tl-mr3220|\
|
||||
tl-mr3220-v2 |\
|
||||
tl-mr3420|\
|
||||
tl-wdr4300|\
|
||||
tl-wr741nd|\
|
||||
tl-wr741nd-v4|\
|
||||
tl-wr841n-v7|\
|
||||
tl-wr1041n-v2|\
|
||||
whr-g301n|\
|
||||
whr-hp-g300n|\
|
||||
whr-hp-gn|\
|
||||
wrt160nl|\
|
||||
wzr-hp-ag300h|\
|
||||
wzr-hp-g300nh2|\
|
||||
wzr-hp-g450h|\
|
||||
z1)
|
||||
migrate_switch_name "eth0" "switch0"
|
||||
;;
|
||||
|
||||
el-m150|\
|
||||
rb-450)
|
||||
migrate_switch_name "eth1" "switch0"
|
||||
;;
|
||||
|
||||
db120|\
|
||||
rb-2011il|\
|
||||
rb-2011ils|\
|
||||
rb-2011l|\
|
||||
rb-2011uas-2hnd)
|
||||
migrate_switch_name "eth0" "switch0"
|
||||
migrate_switch_name "eth1" "switch1"
|
||||
;;
|
||||
|
||||
dir-825-b1|\
|
||||
nbg460n_550n_550nh|\
|
||||
tew-673gru)
|
||||
migrate_switch_name "rtl8366s" "switch0"
|
||||
;;
|
||||
|
||||
tl-wr1043nd)
|
||||
migrate_switch_name "rtl8366rb" "switch0"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2010 OpenWrt.org
|
||||
#
|
||||
|
||||
dev="$(uci -q get network.@switch_vlan[0].device)"
|
||||
vlan="$(uci -q get network.@switch_vlan[0].vlan)"
|
||||
|
||||
if [ "$dev" = "rtl8366s" ] && [ "$vlan" = 0 ]; then
|
||||
logger -t vlan-migration "VLAN 0 is invalid for RTL8366s, changing to 1"
|
||||
uci set network.@switch_vlan[0].vlan=1
|
||||
uci commit network
|
||||
fi
|
||||
@@ -0,0 +1,81 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2013 OpenWrt.org
|
||||
#
|
||||
|
||||
LED_OPTIONS_CHANGED=0
|
||||
|
||||
. /lib/functions.sh
|
||||
|
||||
do_led_update_sysfs()
|
||||
{
|
||||
local cfg=$1; shift
|
||||
local tuples="$@"
|
||||
local sysfs
|
||||
local name
|
||||
|
||||
config_get sysfs $cfg sysfs
|
||||
config_get name $cfg name
|
||||
|
||||
[ -z "$sysfs" ] && return
|
||||
|
||||
for tuple in $tuples; do
|
||||
local old=${tuple%=*}
|
||||
local new=${tuple#*=}
|
||||
local new_sysfs
|
||||
|
||||
new_sysfs=$(echo ${sysfs} | sed "s/${old}/${new}/")
|
||||
|
||||
[ "$new_sysfs" = "$sysfs" ] && continue
|
||||
|
||||
uci set system.${cfg}.sysfs="${new_sysfs}"
|
||||
LED_OPTIONS_CHANGED=1
|
||||
|
||||
logger -t led-migration "sysfs option of LED \"${name}\" updated to ${new_sysfs}"
|
||||
done;
|
||||
}
|
||||
|
||||
migrate_leds()
|
||||
{
|
||||
config_load system
|
||||
config_foreach do_led_update_sysfs led "$@"
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
dhp-1565-a1|\
|
||||
dir-825-c1|\
|
||||
dir-835-a1)
|
||||
migrate_leds ":orange:=:amber:" ":wifi_bgn=:wlan2g"
|
||||
;;
|
||||
dr344)
|
||||
migrate_leds ":red:=:green:" ":yellow:=:green:"
|
||||
;;
|
||||
gl-ar150)
|
||||
migrate_leds "gl-ar150:wlan=gl-ar150:orange:wlan" "gl-ar150:lan=gl-ar150:green:lan" "gl-ar150:wan=gl-ar150:green:wan"
|
||||
;;
|
||||
oolite-v1)
|
||||
migrate_leds "oolite:=${board}"
|
||||
;;
|
||||
wndap360|\
|
||||
wndr3700|\
|
||||
wnr2000|\
|
||||
wnr2200)
|
||||
migrate_leds "${board}:=netgear:"
|
||||
;;
|
||||
wndr3700v4|\
|
||||
wndr4300)
|
||||
migrate_leds ":orange:=:amber:"
|
||||
;;
|
||||
wnr1000-v2)
|
||||
migrate_leds "wnr1000v2:=netgear:"
|
||||
;;
|
||||
wnr612-v2)
|
||||
migrate_leds "wnr612v2:=netgear:"
|
||||
;;
|
||||
esac
|
||||
|
||||
[ "$LED_OPTIONS_CHANGED" = "1" ] && uci commit system
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2010 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
fixtrx() {
|
||||
mtd -o 32 fixtrx firmware
|
||||
}
|
||||
|
||||
fixwrgg() {
|
||||
local kernel_size=$(sed -n 's/mtd[0-9]*: \([0-9a-f]*\).*"kernel".*/\1/p' /proc/mtd)
|
||||
|
||||
[ "$kernel_size" ] && mtd -c 0x$kernel_size fixwrgg firmware
|
||||
}
|
||||
|
||||
case "$board" in
|
||||
mynet-rext |\
|
||||
wrt160nl)
|
||||
fixtrx
|
||||
;;
|
||||
dap-2695-a1)
|
||||
fixwrgg
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
. /lib/functions.sh
|
||||
|
||||
fix_seama_header() {
|
||||
local kernel_size=$(sed -n 's/mtd[0-9]*: \([0-9a-f]*\).*"kernel".*/\1/p' /proc/mtd)
|
||||
|
||||
[ "$kernel_size" ] && mtd -c 0x$kernel_size fixseama firmware
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
dir-869-a1)
|
||||
fix_seama_header
|
||||
;;
|
||||
esac
|
||||
1550
target/linux/ar71xx/base-files/lib/ar71xx.sh
Executable file
1550
target/linux/ar71xx/base-files/lib/ar71xx.sh
Executable file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
do_ar71xx() {
|
||||
. /lib/ar71xx.sh
|
||||
|
||||
ar71xx_board_detect
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main do_ar71xx
|
||||
@@ -0,0 +1,60 @@
|
||||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
#
|
||||
|
||||
fetch_mac_from_mtd() {
|
||||
local mtd_part=$1
|
||||
local lan_env=$2
|
||||
local wan_env=$3
|
||||
local mtd mac
|
||||
|
||||
mtd=$(grep $mtd_part /proc/mtd | cut -d: -f1)
|
||||
[ -z $mtd ] && return
|
||||
|
||||
mac=$(grep $lan_env /dev/$mtd | cut -d= -f2)
|
||||
[ ! -z $mac ] && ifconfig eth0 hw ether $mac 2>/dev/null
|
||||
|
||||
mac=$(grep $wan_env /dev/$mtd | cut -d= -f2)
|
||||
[ ! -z $mac ] && ifconfig eth1 hw ether $mac 2>/dev/null
|
||||
}
|
||||
|
||||
preinit_set_mac_address() {
|
||||
. /lib/functions.sh
|
||||
|
||||
case $(board_name) in
|
||||
c-55|\
|
||||
c-60)
|
||||
mac_lan=$(mtd_get_mac_binary art 0)
|
||||
[ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
|
||||
;;
|
||||
dir-615-c1|\
|
||||
tew-632brp)
|
||||
fetch_mac_from_mtd config lan_mac wan_mac
|
||||
;;
|
||||
dir-615-i1)
|
||||
fetch_mac_from_mtd nvram sys_lan_mac sys_wan_mac
|
||||
;;
|
||||
mr18|\
|
||||
z1)
|
||||
mac_lan=$(mtd_get_mac_binary_ubi board-config 102)
|
||||
[ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
|
||||
;;
|
||||
r6100)
|
||||
mac_lan=$(mtd_get_mac_binary caldata 0)
|
||||
[ -n "$mac_lan" ] && ifconfig eth1 hw ether "$mac_lan"
|
||||
mac_wan=$(mtd_get_mac_binary caldata 6)
|
||||
[ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan"
|
||||
;;
|
||||
rambutan)
|
||||
mac_lan=$(mtd_get_mac_binary art 0)
|
||||
[ -n "$mac_lan" ] && ifconfig eth0 hw ether "$mac_lan"
|
||||
mac_wan=$(mtd_get_mac_binary art 6)
|
||||
[ -n "$mac_wan" ] && ifconfig eth1 hw ether "$mac_wan"
|
||||
;;
|
||||
wrt160nl)
|
||||
fetch_mac_from_mtd nvram lan_hwaddr wan_hwaddr
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main preinit_set_mac_address
|
||||
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
#
|
||||
|
||||
set_preinit_iface() {
|
||||
. /lib/functions.sh
|
||||
|
||||
case $(board_name) in
|
||||
alfa-ap96|\
|
||||
alfa-nx|\
|
||||
ap135-020|\
|
||||
ap136-020|\
|
||||
ap147-010|\
|
||||
archer-c5|\
|
||||
archer-c7|\
|
||||
bhr-4grv2|\
|
||||
dir-505-a1|\
|
||||
gl-ar750|\
|
||||
gl-inet|\
|
||||
jwap003|\
|
||||
pb42|\
|
||||
pb44|\
|
||||
rb-433|\
|
||||
rb-433u|\
|
||||
rb-435g|\
|
||||
rb-450|\
|
||||
rb-450g|\
|
||||
routerstation|\
|
||||
routerstation-pro|\
|
||||
smart-300|\
|
||||
tl-mr3420-v2|\
|
||||
tl-wdr4900-v2|\
|
||||
tl-wr1043nd-v2|\
|
||||
tl-wr710n|\
|
||||
tl-wr720n-v3|\
|
||||
tl-wr841n-v8|\
|
||||
tl-wr842n-v2|\
|
||||
tl-wr940n-v4|\
|
||||
tl-wr941nd-v6|\
|
||||
wnr1000-v2|\
|
||||
wnr2000-v3|\
|
||||
wnr2200|\
|
||||
wnr612-v2|\
|
||||
wpe72|\
|
||||
wpn824n)
|
||||
ifname=eth1
|
||||
;;
|
||||
*)
|
||||
ifname=eth0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main set_preinit_iface
|
||||
50
target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k
Normal file
50
target/linux/ar71xx/base-files/lib/preinit/82_patch_ath10k
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
do_patch_ath10k_firmware() {
|
||||
local firmware_file="/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin"
|
||||
|
||||
# bail out if firmware does not exist
|
||||
[ -f "$firmware_file" ] || return
|
||||
|
||||
local mac_offset=276
|
||||
local mac_length=6
|
||||
local default_mac="00:03:07:12:34:56"
|
||||
local current_mac="$(hexdump -v -n $mac_length -s $mac_offset -e '5/1 "%02x:" 1/1 "%02x"' $firmware_file 2>/dev/null)"
|
||||
|
||||
# check if mac address was already patched
|
||||
[ "$default_mac" = "$current_mac" ] || return
|
||||
|
||||
# some boards have bogus mac in otp (= directly in the PCIe card's EEPROM).
|
||||
# we have to patch the default mac in the firmware because we cannot change
|
||||
# the otp.
|
||||
case $(board_name) in
|
||||
dgl-5500-a1|\
|
||||
tew-823dru)
|
||||
local mac
|
||||
mac=$(mtd_get_mac_ascii nvram wlan1_mac)
|
||||
|
||||
cp $firmware_file /tmp/ath10k-firmware.bin
|
||||
macaddr_2bin $mac | dd of=/tmp/ath10k-firmware.bin \
|
||||
conv=notrunc bs=1 seek=$mac_offset count=$mac_length
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -f /tmp/ath10k-firmware.bin ] || return
|
||||
|
||||
cp /tmp/ath10k-firmware.bin $firmware_file
|
||||
rm /tmp/ath10k-firmware.bin
|
||||
}
|
||||
|
||||
check_patch_ath10k_firmware() {
|
||||
case $(board_name) in
|
||||
dgl-5500-a1|\
|
||||
tew-823dru)
|
||||
do_patch_ath10k_firmware
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main check_patch_ath10k_firmware
|
||||
162
target/linux/ar71xx/base-files/lib/upgrade/allnet.sh
Normal file
162
target/linux/ar71xx/base-files/lib/upgrade/allnet.sh
Normal file
@@ -0,0 +1,162 @@
|
||||
# The U-Boot loader of the some Allnet devices requires image sizes and
|
||||
# checksums to be provided in the U-Boot environment.
|
||||
# In case the check fails during boot, a failsafe-system is started to provide
|
||||
# a minimal web-interface for flashing a new firmware.
|
||||
|
||||
# make sure we got uboot-envtools and fw_env.config copied over to the ramfs
|
||||
# create /var/lock for the lock "fw_setenv.lock" of fw_setenv
|
||||
platform_add_ramfs_ubootenv() {
|
||||
[ -e /usr/sbin/fw_setenv ] && install_bin /usr/sbin/fw_setenv
|
||||
[ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
|
||||
mkdir -p $RAM_ROOT/var/lock
|
||||
}
|
||||
append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
|
||||
|
||||
# determine size of the main firmware partition
|
||||
platform_get_firmware_size() {
|
||||
local dev size erasesize name
|
||||
while read dev size erasesize name; do
|
||||
name=${name#'"'}; name=${name%'"'}
|
||||
case "$name" in
|
||||
firmware)
|
||||
printf "%d" "0x$size"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done < /proc/mtd
|
||||
}
|
||||
|
||||
# get the first 4 bytes (magic) of a given file starting at offset in hex format
|
||||
get_magic_long_at() {
|
||||
dd if="$1" skip=$(( $CI_BLKSZ / 4 * $2 )) bs=4 count=1 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
get_filesize() {
|
||||
wc -c "$1" | while read image_size _n ; do echo $image_size ; break; done
|
||||
}
|
||||
|
||||
# scan through the update image pages until matching a magic
|
||||
platform_get_offset() {
|
||||
offsetcount=0
|
||||
magiclong="x"
|
||||
if [ -n "$3" ]; then
|
||||
offsetcount=$3
|
||||
fi
|
||||
while magiclong=$( get_magic_long_at "$1" "$offsetcount" ) && [ -n "$magiclong" ]; do
|
||||
case "$magiclong" in
|
||||
"2705"*)
|
||||
# U-Boot image magic
|
||||
if [ "$2" = "uImage" ]; then
|
||||
echo $offsetcount
|
||||
return
|
||||
fi
|
||||
;;
|
||||
"68737173"|"73717368")
|
||||
# SquashFS
|
||||
if [ "$2" = "rootfs" ]; then
|
||||
echo $offsetcount
|
||||
return
|
||||
fi
|
||||
;;
|
||||
"deadc0de"|"19852003")
|
||||
# JFFS2 empty page
|
||||
if [ "$2" = "rootfs-data" ]; then
|
||||
echo $offsetcount
|
||||
return
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
offsetcount=$(( $offsetcount + 1 ))
|
||||
done
|
||||
}
|
||||
|
||||
platform_check_image_allnet() {
|
||||
local fw_setenv=/usr/sbin/fw_setenv
|
||||
[ ! -n "$fw_setenv" -o ! -x "$fw_setenv" ] && {
|
||||
echo "Please install uboot-envtools!"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ ! -r "/etc/fw_env.config" ] && {
|
||||
echo "/etc/fw_env.config is missing"
|
||||
return 1
|
||||
}
|
||||
|
||||
local image_size=$( get_filesize "$1" )
|
||||
local firmware_size=$( platform_get_firmware_size )
|
||||
[ $image_size -ge $firmware_size ] &&
|
||||
{
|
||||
echo "upgrade image is too big (${image_size}b > ${firmware_size}b)"
|
||||
}
|
||||
|
||||
local vmlinux_blockoffset=$( platform_get_offset "$1" uImage )
|
||||
[ -z $vmlinux_blockoffset ] && {
|
||||
echo "vmlinux-uImage not found"
|
||||
return 1
|
||||
}
|
||||
|
||||
local rootfs_blockoffset=$( platform_get_offset "$1" rootfs "$vmlinux_blockoffset" )
|
||||
[ -z $rootfs_blockoffset ] && {
|
||||
echo "missing rootfs"
|
||||
return 1
|
||||
}
|
||||
|
||||
local data_blockoffset=$( platform_get_offset "$1" rootfs-data "$rootfs_blockoffset" )
|
||||
[ -z $data_blockoffset ] && {
|
||||
echo "rootfs doesn't have JFFS2 end marker"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_do_upgrade_allnet() {
|
||||
local firmware_base_addr=$( printf "%d" "$1" )
|
||||
local vmlinux_blockoffset=$( platform_get_offset "$2" uImage )
|
||||
if [ ! -n "$vmlinux_blockoffset" ]; then
|
||||
echo "can't determine uImage offset"
|
||||
return 1
|
||||
fi
|
||||
local rootfs_blockoffset=$( platform_get_offset "$2" rootfs $(( $vmlinux_blockoffset + 1 )) )
|
||||
local vmlinux_offset=$(( $vmlinux_blockoffset * $CI_BLKSZ ))
|
||||
local vmlinux_addr=$(( $firmware_base_addr + $vmlinux_offset ))
|
||||
local vmlinux_hexaddr=0x$( printf "%08x" "$vmlinux_addr" )
|
||||
if [ ! -n "$rootfs_blockoffset" ]; then
|
||||
echo "can't determine rootfs offset"
|
||||
return 1
|
||||
fi
|
||||
local rootfs_offset=$(( $rootfs_blockoffset * $CI_BLKSZ ))
|
||||
local rootfs_addr=$(( $firmware_base_addr + $rootfs_offset ))
|
||||
local rootfs_hexaddr=0x$( printf "%08x" "$rootfs_addr" )
|
||||
local vmlinux_blockcount=$(( $rootfs_blockoffset - $vmlinux_blockoffset ))
|
||||
local vmlinux_size=$(( $rootfs_offset - $vmlinux_offset ))
|
||||
local vmlinux_hexsize=0x$( printf "%08x" "$vmlinux_size" )
|
||||
local data_blockoffset=$( platform_get_offset "$2" rootfs-data $(( $rootfs_blockoffset + 1 )) )
|
||||
if [ ! -n "$data_blockoffset" ]; then
|
||||
echo "can't determine rootfs size"
|
||||
return 1
|
||||
fi
|
||||
local data_offset=$(( $data_blockoffset * $CI_BLKSZ ))
|
||||
local rootfs_blockcount=$(( $data_blockoffset - $rootfs_blockoffset ))
|
||||
local rootfs_size=$(( $data_offset - $rootfs_offset ))
|
||||
local rootfs_hexsize=0x$( printf "%08x" "$rootfs_size" )
|
||||
|
||||
local rootfs_md5=$( dd if="$2" bs=$CI_BLKSZ skip=$rootfs_blockoffset count=$rootfs_blockcount 2>/dev/null | md5sum -); rootfs_md5="${rootfs_md5%% *}"
|
||||
local vmlinux_md5=$( dd if="$2" bs=$CI_BLKSZ skip=$vmlinux_blockoffset count=$vmlinux_blockcount 2>/dev/null | md5sum -); vmlinux_md5="${vmlinux_md5%% *}"
|
||||
# this needs a recent version of uboot-envtools!
|
||||
cat >/tmp/fw_env_upgrade <<EOF
|
||||
vmlinux_start_addr $vmlinux_hexaddr
|
||||
vmlinux_size $vmlinux_hexsize
|
||||
vmlinux_checksum $vmlinux_md5
|
||||
rootfs_start_addr $rootfs_hexaddr
|
||||
rootfs_size $rootfs_hexsize
|
||||
rootfs_checksum $rootfs_md5
|
||||
bootcmd bootm $vmlinux_hexaddr
|
||||
EOF
|
||||
fw_setenv -s /tmp/fw_env_upgrade || {
|
||||
echo "failed to update U-Boot environment"
|
||||
return 1
|
||||
}
|
||||
shift
|
||||
default_do_upgrade "$@"
|
||||
}
|
||||
165
target/linux/ar71xx/base-files/lib/upgrade/dir825.sh
Normal file
165
target/linux/ar71xx/base-files/lib/upgrade/dir825.sh
Normal file
@@ -0,0 +1,165 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2012 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/ar71xx.sh
|
||||
|
||||
get_magic_at() {
|
||||
local mtddev=$1
|
||||
local pos=$2
|
||||
dd bs=1 count=2 skip=$pos if=$mtddev 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
dir825b_is_caldata_valid() {
|
||||
local mtddev=$1
|
||||
local magic
|
||||
|
||||
magic=$(get_magic_at $mtddev 4096)
|
||||
[ "$magic" != "a55a" ] && return 0
|
||||
|
||||
magic=$(get_magic_at $mtddev 20480)
|
||||
[ "$magic" != "a55a" ] && return 0
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
dir825b_copy_caldata() {
|
||||
local cal_src=$1
|
||||
local cal_dst=$2
|
||||
local mtd_src
|
||||
local mtd_dst
|
||||
local md5_src
|
||||
local md5_dst
|
||||
|
||||
mtd_src=$(find_mtd_part $cal_src)
|
||||
[ -z "$mtd_src" ] && {
|
||||
echo "no $cal_src partition found"
|
||||
return 1
|
||||
}
|
||||
|
||||
mtd_dst=$(find_mtd_part $cal_dst)
|
||||
[ -z "$mtd_dst" ] && {
|
||||
echo "no $cal_dst partition found"
|
||||
return 1
|
||||
}
|
||||
|
||||
dir825b_is_caldata_valid "$mtd_src" && {
|
||||
echo "no valid calibration data found in $cal_src"
|
||||
return 1
|
||||
}
|
||||
|
||||
dir825b_is_caldata_valid "$mtd_dst" && {
|
||||
echo "Copying calibration data from $cal_src to $cal_dst..."
|
||||
dd if="$mtd_src" 2>/dev/null | mtd -q -q write - "$cal_dst"
|
||||
}
|
||||
|
||||
md5_src=$(md5sum "$mtd_src") && md5_src="${md5_src%% *}"
|
||||
md5_dst=$(md5sum "$mtd_dst") && md5_dst="${md5_dst%% *}"
|
||||
|
||||
[ "$md5_src" != "$md5_dst" ] && {
|
||||
echo "calibration data mismatch $cal_src:$md5_src $cal_dst:$md5_dst"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
dir825b_do_upgrade_combined() {
|
||||
local fw_part=$1
|
||||
local fw_file=$2
|
||||
local fw_mtd=$(find_mtd_part $fw_part)
|
||||
local fw_length=0x$(dd if="$fw_file" bs=2 skip=1 count=4 2>/dev/null)
|
||||
local fw_blocks=$(($fw_length / 65536))
|
||||
|
||||
if [ -n "$fw_mtd" ] && [ ${fw_blocks:-0} -gt 0 ]; then
|
||||
local append=""
|
||||
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
|
||||
|
||||
sync
|
||||
dd if="$fw_file" bs=64k skip=1 count=$fw_blocks 2>/dev/null | \
|
||||
mtd $append write - "$fw_part"
|
||||
fi
|
||||
}
|
||||
|
||||
dir825b_check_image() {
|
||||
local magic="$(get_magic_long "$1")"
|
||||
local fw_mtd=$(find_mtd_part "firmware_orig")
|
||||
|
||||
case "$magic" in
|
||||
"27051956")
|
||||
;;
|
||||
"43493030")
|
||||
local md5_img=$(dd if="$1" bs=2 skip=9 count=16 2>/dev/null)
|
||||
local md5_chk=$(dd if="$1" bs=64k skip=1 2>/dev/null | md5sum -); md5_chk="${md5_chk%% *}"
|
||||
local fw_len=$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null)
|
||||
local fw_part_len=$(mtd_get_part_size "firmware")
|
||||
|
||||
if [ -z "$fw_mtd" ]; then
|
||||
ask_bool 0 "Do you have a backup of the caldata partition?" || {
|
||||
echo "Warning, please make sure that you have a backup of the caldata partition."
|
||||
echo "Once you have that, use 'sysupgrade -i' for upgrading to the 'fat' firmware."
|
||||
return 1
|
||||
}
|
||||
fi
|
||||
|
||||
if [ -z "$md5_img" -o -z "$md5_chk" ]; then
|
||||
echo "Unable to get image checksums. Maybe you are using a streamed image?"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ "$md5_img" != "$md5_chk" ]; then
|
||||
echo "Invalid image. Contents do not match checksum (image:$md5_img calculated:$md5_chk)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
fw_len=$((0x$fw_len))
|
||||
fw_part_len=${fw_part_len:-0}
|
||||
|
||||
if [ $fw_part_len -lt $fw_len ]; then
|
||||
echo "The upgrade image is too big (size:$fw_len available:$fw_part_len)"
|
||||
return 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported image format."
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_do_upgrade_dir825b() {
|
||||
local magic="$(get_magic_long "$1")"
|
||||
local fw_mtd=$(find_mtd_part "firmware_orig")
|
||||
|
||||
case "$magic" in
|
||||
"27051956")
|
||||
if [ -n "$fw_mtd" ]; then
|
||||
# restore calibration data before downgrading to
|
||||
# the normal image
|
||||
dir825b_copy_caldata "caldata" "caldata_orig" || {
|
||||
echo "unable to restore calibration data"
|
||||
exit 1
|
||||
}
|
||||
PART_NAME="firmware_orig"
|
||||
else
|
||||
PART_NAME="firmware"
|
||||
fi
|
||||
default_do_upgrade "$ARGV"
|
||||
;;
|
||||
"43493030")
|
||||
if [ -z "$fw_mtd" ]; then
|
||||
# backup calibration data before upgrading to the
|
||||
# fat image
|
||||
dir825b_copy_caldata "caldata" "caldata_copy" || {
|
||||
echo "unable to backup calibration data"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
dir825b_do_upgrade_combined "firmware" "$ARGV"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
165
target/linux/ar71xx/base-files/lib/upgrade/merakinand.sh
Normal file
165
target/linux/ar71xx/base-files/lib/upgrade/merakinand.sh
Normal file
@@ -0,0 +1,165 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2015-2016 Chris Blake <chrisrblake93@gmail.com>
|
||||
#
|
||||
# Custom upgrade script for Meraki NAND devices (ex. MR18)
|
||||
# Based on dir825.sh and stock nand functions
|
||||
#
|
||||
. /lib/ar71xx.sh
|
||||
. /lib/functions.sh
|
||||
|
||||
get_magic_at() {
|
||||
local mtddev=$1
|
||||
local pos=$2
|
||||
dd bs=1 count=2 skip=$pos if=$mtddev 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
meraki_is_caldata_valid() {
|
||||
local board=$1
|
||||
local mtddev=$2
|
||||
local magic
|
||||
|
||||
case "$board" in
|
||||
"mr18")
|
||||
magic=$(get_magic_at $mtddev 4096)
|
||||
[ "$magic" != "0202" ] && return 0
|
||||
|
||||
magic=$(get_magic_at $mtddev 20480)
|
||||
[ "$magic" != "0202" ] && return 0
|
||||
|
||||
magic=$(get_magic_at $mtddev 36864)
|
||||
[ "$magic" != "0202" ] && return 0
|
||||
|
||||
return 1
|
||||
;;
|
||||
"z1")
|
||||
magic=$(get_magic_at $mtddev 4096)
|
||||
[ "$magic" != "0202" ] && return 0
|
||||
|
||||
magic=$(get_magic_at $mtddev 86016)
|
||||
[ "$magic" != "a55a" ] && return 0
|
||||
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
merakinand_copy_caldata() {
|
||||
local cal_src=$1
|
||||
local cal_dst=$2
|
||||
local ubidev="$(nand_find_ubi $CI_UBIPART)"
|
||||
local board_name="$(board_name)"
|
||||
local rootfs_size="$(ubinfo /dev/ubi0 -N rootfs_data | grep "Size" | awk '{ print $6 }')"
|
||||
|
||||
# Setup partitions using board name, in case of future platforms
|
||||
case "$board_name" in
|
||||
"mr18"|\
|
||||
"z1")
|
||||
# Src is MTD
|
||||
mtd_src="$(find_mtd_chardev $cal_src)"
|
||||
[ -n "$mtd_src" ] || {
|
||||
echo "no mtd device found for partition $cal_src"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Dest is UBI
|
||||
# TODO: possibly add create (hard to do when rootfs_data is expanded & mounted)
|
||||
# Would need to be done from ramdisk
|
||||
mtd_dst="$(nand_find_volume $ubidev $cal_dst)"
|
||||
[ -n "$mtd_dst" ] || {
|
||||
echo "no ubi device found for partition $cal_dst"
|
||||
exit 1
|
||||
}
|
||||
|
||||
meraki_is_caldata_valid "$board_name" "$mtd_src" && {
|
||||
echo "no valid calibration data found in $cal_src"
|
||||
exit 1
|
||||
}
|
||||
|
||||
meraki_is_caldata_valid "$board_name" "/dev/$mtd_dst" && {
|
||||
echo "Copying calibration data from $cal_src to $cal_dst..."
|
||||
dd if="$mtd_src" of=/tmp/caldata.tmp 2>/dev/null
|
||||
ubiupdatevol "/dev/$mtd_dst" /tmp/caldata.tmp
|
||||
rm /tmp/caldata.tmp
|
||||
sync
|
||||
}
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported device $board_name";
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
merakinand_do_kernel_check() {
|
||||
local board_name="$1"
|
||||
local tar_file="$2"
|
||||
local image_magic_word=`(tar xf $tar_file sysupgrade-$board_name/kernel -O 2>/dev/null | dd bs=1 count=4 skip=0 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"')`
|
||||
|
||||
# What is our kernel magic string?
|
||||
case "$board_name" in
|
||||
"mr18")
|
||||
[ "$image_magic_word" == "8e73ed8a" ] && {
|
||||
echo "pass" && return 0
|
||||
}
|
||||
;;
|
||||
"z1")
|
||||
[ "$image_magic_word" == "4d495053" ] && {
|
||||
echo "pass" && return 0
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
merakinand_do_platform_check() {
|
||||
local board_name="$1"
|
||||
local tar_file="$2"
|
||||
local control_length=`(tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null`
|
||||
local file_type="$(identify_tar $2 sysupgrade-$board_name/root)"
|
||||
local kernel_magic="$(merakinand_do_kernel_check $1 $2)"
|
||||
|
||||
case "$board_name" in
|
||||
"mr18"|\
|
||||
"z1")
|
||||
[ "$control_length" = 0 -o "$file_type" != "squashfs" -o "$kernel_magic" != "pass" ] && {
|
||||
echo "Invalid sysupgrade file for $board_name"
|
||||
return 1
|
||||
}
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported device $board_name";
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
merakinand_do_upgrade() {
|
||||
local tar_file="$1"
|
||||
local board_name="$(board_name)"
|
||||
|
||||
# Do we need to do any platform tweaks?
|
||||
case "$board_name" in
|
||||
"mr18")
|
||||
# Check and create UBI caldata if it's invalid
|
||||
merakinand_copy_caldata "odm-caldata" "caldata"
|
||||
nand_do_upgrade $1
|
||||
;;
|
||||
"z1")
|
||||
# Check and create UBI caldata if it's invalid
|
||||
merakinand_copy_caldata "origcaldata" "caldata"
|
||||
nand_do_upgrade $1
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported device $board_name";
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
241
target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
Normal file
241
target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
Normal file
@@ -0,0 +1,241 @@
|
||||
# The U-Boot loader of the OpenMesh devices requires image sizes and
|
||||
# checksums to be provided in the U-Boot environment.
|
||||
# The OpenMesh devices come with 2 main partitions - while one is active
|
||||
# sysupgrade will flash the other. The boot order is changed to boot the
|
||||
# newly flashed partition. If the new partition can't be booted due to
|
||||
# upgrade failures the previously used partition is loaded.
|
||||
|
||||
trim()
|
||||
{
|
||||
echo $1
|
||||
}
|
||||
|
||||
cfg_value_get()
|
||||
{
|
||||
local cfg=$1 cfg_opt
|
||||
local section=$2 our_section=0
|
||||
local param=$3 our_param=
|
||||
|
||||
for cfg_opt in $cfg
|
||||
do
|
||||
[ "$cfg_opt" = "[$section]" ] && our_section=1 && continue
|
||||
[ "$our_section" = "1" ] || continue
|
||||
|
||||
our_param=$(echo ${cfg_opt%%=*})
|
||||
[ "$param" = "$our_param" ] && echo ${cfg_opt##*=} && break
|
||||
done
|
||||
}
|
||||
|
||||
# make sure we got uboot-envtools and fw_env.config copied over to the ramfs
|
||||
# create /var/lock for the lock "fw_setenv.lock" of fw_setenv
|
||||
platform_add_ramfs_ubootenv()
|
||||
{
|
||||
[ -e /usr/sbin/fw_setenv ] && install_bin /usr/sbin/fw_setenv
|
||||
[ -e /etc/fw_env.config ] && install_file /etc/fw_env.config
|
||||
mkdir -p $RAM_ROOT/var/lock
|
||||
}
|
||||
append sysupgrade_pre_upgrade platform_add_ramfs_ubootenv
|
||||
|
||||
platform_check_image_target_openmesh()
|
||||
{
|
||||
img_board_target="$1"
|
||||
|
||||
case "$img_board_target" in
|
||||
A60)
|
||||
[ "$board" = "a40" ] && return 0
|
||||
[ "$board" = "a60" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
OM2P)
|
||||
[ "$board" = "om2p" ] && return 0
|
||||
[ "$board" = "om2pv2" ] && return 0
|
||||
[ "$board" = "om2pv4" ] && return 0
|
||||
[ "$board" = "om2p-lc" ] && return 0
|
||||
[ "$board" = "om2p-hs" ] && return 0
|
||||
[ "$board" = "om2p-hsv2" ] && return 0
|
||||
[ "$board" = "om2p-hsv3" ] && return 0
|
||||
[ "$board" = "om2p-hsv4" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
OM5P)
|
||||
[ "$board" = "om5p" ] && return 0
|
||||
[ "$board" = "om5p-an" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
OM5PAC)
|
||||
[ "$board" = "om5p-ac" ] && return 0
|
||||
[ "$board" = "om5p-acv2" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
MR1750)
|
||||
[ "$board" = "mr1750" ] && return 0
|
||||
[ "$board" = "mr1750v2" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
MR600)
|
||||
[ "$board" = "mr600" ] && return 0
|
||||
[ "$board" = "mr600v2" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
MR900)
|
||||
[ "$board" = "mr900" ] && return 0
|
||||
[ "$board" = "mr900v2" ] && return 0
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
echo "Invalid board target ($img_board_target). Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
platform_check_image_openmesh()
|
||||
{
|
||||
local img_magic=$1
|
||||
local img_path=$2
|
||||
local fw_setenv=/usr/sbin/fw_setenv
|
||||
local img_board_target= img_num_files= i=0
|
||||
local cfg_name= kernel_name= rootfs_name=
|
||||
|
||||
case "$img_magic" in
|
||||
# Combined Extended Image v1
|
||||
43453031)
|
||||
img_board_target=$(trim $(dd if="$img_path" bs=4 skip=1 count=8 2>/dev/null))
|
||||
img_num_files=$(trim $(dd if="$img_path" bs=2 skip=18 count=1 2>/dev/null))
|
||||
;;
|
||||
*)
|
||||
echo "Invalid image ($img_magic). Use combined extended images on this platform"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
platform_check_image_target_openmesh "$img_board_target" || return 1
|
||||
|
||||
[ $img_num_files -lt 3 ] && {
|
||||
echo "Invalid number of embedded images ($img_num_files). Use the correct image for this platform"
|
||||
return 1
|
||||
}
|
||||
|
||||
cfg_name=$(trim $(dd if="$img_path" bs=2 skip=19 count=16 2>/dev/null))
|
||||
|
||||
[ "$cfg_name" != "fwupgrade.cfg" ] && {
|
||||
echo "Invalid embedded config file ($cfg_name). Use the correct image for this platform"
|
||||
return 1
|
||||
}
|
||||
|
||||
kernel_name=$(trim $(dd if="$img_path" bs=2 skip=55 count=16 2>/dev/null))
|
||||
|
||||
[ "$kernel_name" != "kernel" ] && {
|
||||
echo "Invalid embedded kernel file ($kernel_name). Use the correct image for this platform"
|
||||
return 1
|
||||
}
|
||||
|
||||
rootfs_name=$(trim $(dd if="$img_path" bs=2 skip=91 count=16 2>/dev/null))
|
||||
|
||||
[ "$rootfs_name" != "rootfs" ] && {
|
||||
echo "Invalid embedded kernel file ($rootfs_name). Use the correct image for this platform"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ ! -x "$fw_setenv" ] && {
|
||||
echo "Please install uboot-envtools!"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ ! -r "/etc/fw_env.config" ] && {
|
||||
echo "/etc/fw_env.config is missing"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_do_upgrade_openmesh()
|
||||
{
|
||||
local img_path=$1 img_board_target=
|
||||
local kernel_start_addr= kernel_start_addr1= kernel_start_addr2=
|
||||
local kernel_size= kernel_md5=
|
||||
local rootfs_size= rootfs_checksize= rootfs_md5=
|
||||
local kernel_bsize= total_size=
|
||||
local data_offset=$((64 * 1024)) block_size= offset=
|
||||
local uboot_env_upgrade="/tmp/fw_env_upgrade"
|
||||
local cfg_size= kernel_size= rootfs_size=
|
||||
local append=""
|
||||
|
||||
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
|
||||
|
||||
cfg_size=$(dd if="$img_path" bs=2 skip=35 count=4 2>/dev/null)
|
||||
kernel_size=$(dd if="$img_path" bs=2 skip=71 count=4 2>/dev/null)
|
||||
rootfs_size=$(dd if="$img_path" bs=2 skip=107 count=4 2>/dev/null)
|
||||
|
||||
img_board_target=$(trim $(dd if="$img_path" bs=4 skip=1 count=8 2>/dev/null))
|
||||
cfg_content=$(dd if="$img_path" bs=1 skip=$data_offset count=$(echo $((0x$cfg_size))) 2>/dev/null)
|
||||
|
||||
case $img_board_target in
|
||||
OM2P)
|
||||
block_size=$((256 * 1024))
|
||||
total_size=7340032
|
||||
kernel_start_addr1=0x9f1c0000
|
||||
kernel_start_addr2=0x9f8c0000
|
||||
;;
|
||||
OM5P|OM5PAC|MR600|MR900|MR1750|A60)
|
||||
block_size=$((64 * 1024))
|
||||
total_size=7995392
|
||||
kernel_start_addr1=0x9f0b0000
|
||||
kernel_start_addr2=0x9f850000
|
||||
;;
|
||||
esac
|
||||
|
||||
kernel_md5=$(cfg_value_get "$cfg_content" "vmlinux" "md5sum")
|
||||
rootfs_md5=$(cfg_value_get "$cfg_content" "rootfs" "md5sum")
|
||||
rootfs_checksize=$(cfg_value_get "$cfg_content" "rootfs" "checksize")
|
||||
|
||||
if [ "$((0x$kernel_size % $block_size))" = "0" ]
|
||||
then
|
||||
kernel_bsize=$(echo $((0x$kernel_size)))
|
||||
else
|
||||
kernel_bsize=$((0x$kernel_size + ($block_size - (0x$kernel_size % $block_size))))
|
||||
fi
|
||||
|
||||
mtd -q erase inactive
|
||||
|
||||
offset=$(echo $(($data_offset + 0x$cfg_size + 0x$kernel_size)))
|
||||
dd if="$img_path" bs=1 skip=$offset count=$(echo $((0x$rootfs_size))) 2>&- | mtd -n -p $kernel_bsize $append write - "inactive"
|
||||
|
||||
offset=$(echo $(($data_offset + 0x$cfg_size)))
|
||||
dd if="$img_path" bs=1 skip=$offset count=$(echo $((0x$kernel_size))) 2>&- | mtd -n write - "inactive"
|
||||
|
||||
rm $uboot_env_upgrade 2>&-
|
||||
|
||||
if [ "$(grep 'mtd3:.*inactive' /proc/mtd)" ]
|
||||
then
|
||||
printf "kernel_size_1 %u\n" $(($kernel_bsize / 1024)) >> $uboot_env_upgrade
|
||||
printf "rootfs_size_1 %u\n" $((($total_size - $kernel_bsize) / 1024)) >> $uboot_env_upgrade
|
||||
printf "bootseq 1,2\n" >> $uboot_env_upgrade
|
||||
kernel_start_addr=$kernel_start_addr1
|
||||
else
|
||||
printf "kernel_size_2 %u\n" $(($kernel_bsize / 1024)) >> $uboot_env_upgrade
|
||||
printf "rootfs_size_2 %u\n" $((($total_size - $kernel_bsize) / 1024)) >> $uboot_env_upgrade
|
||||
printf "bootseq 2,1\n" >> $uboot_env_upgrade
|
||||
kernel_start_addr=$kernel_start_addr2
|
||||
fi
|
||||
|
||||
printf "vmlinux_start_addr %s\n" $kernel_start_addr >> $uboot_env_upgrade
|
||||
printf "vmlinux_size 0x%s\n" $kernel_size >> $uboot_env_upgrade
|
||||
printf "vmlinux_checksum %s\n" $kernel_md5 >> $uboot_env_upgrade
|
||||
printf "rootfs_start_addr 0x%x\n" $(($kernel_start_addr + $kernel_bsize)) >> $uboot_env_upgrade
|
||||
printf "rootfs_size %s\n" $rootfs_checksize >> $uboot_env_upgrade
|
||||
printf "rootfs_checksum %s\n" $rootfs_md5 >> $uboot_env_upgrade
|
||||
|
||||
fw_setenv -s $uboot_env_upgrade || {
|
||||
echo "failed to update U-Boot environment"
|
||||
return 1
|
||||
}
|
||||
}
|
||||
892
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
Executable file
892
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
Executable file
@@ -0,0 +1,892 @@
|
||||
#
|
||||
# Copyright (C) 2011 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/system.sh
|
||||
. /lib/ar71xx.sh
|
||||
|
||||
PART_NAME=firmware
|
||||
RAMFS_COPY_DATA=/lib/ar71xx.sh
|
||||
RAMFS_COPY_BIN='nandwrite'
|
||||
|
||||
CI_BLKSZ=65536
|
||||
CI_LDADR=0x80060000
|
||||
|
||||
PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0
|
||||
|
||||
platform_find_partitions() {
|
||||
local first dev size erasesize name
|
||||
while read dev size erasesize name; do
|
||||
name=${name#'"'}; name=${name%'"'}
|
||||
case "$name" in
|
||||
vmlinux.bin.l7|vmlinux|kernel|linux|linux.bin|rootfs|filesystem)
|
||||
if [ -z "$first" ]; then
|
||||
first="$name"
|
||||
else
|
||||
echo "$erasesize:$first:$name"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done < /proc/mtd
|
||||
}
|
||||
|
||||
platform_find_kernelpart() {
|
||||
local part
|
||||
for part in "${1%:*}" "${1#*:}"; do
|
||||
case "$part" in
|
||||
vmlinux.bin.l7|vmlinux|kernel|linux|linux.bin)
|
||||
echo "$part"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
platform_find_rootfspart() {
|
||||
local part
|
||||
for part in "${1%:*}" "${1#*:}"; do
|
||||
[ "$part" != "$2" ] && echo "$part" && break
|
||||
done
|
||||
}
|
||||
|
||||
platform_do_upgrade_combined() {
|
||||
local partitions=$(platform_find_partitions)
|
||||
local kernelpart=$(platform_find_kernelpart "${partitions#*:}")
|
||||
local erase_size=$((0x${partitions%%:*})); partitions="${partitions#*:}"
|
||||
local kern_length=0x$(dd if="$1" bs=2 skip=1 count=4 2>/dev/null)
|
||||
local kern_blocks=$(($kern_length / $CI_BLKSZ))
|
||||
local root_blocks=$((0x$(dd if="$1" bs=2 skip=5 count=4 2>/dev/null) / $CI_BLKSZ))
|
||||
|
||||
if [ -n "$partitions" ] && [ -n "$kernelpart" ] && \
|
||||
[ ${kern_blocks:-0} -gt 0 ] && \
|
||||
[ ${root_blocks:-0} -gt 0 ] && \
|
||||
[ ${erase_size:-0} -gt 0 ];
|
||||
then
|
||||
local rootfspart=$(platform_find_rootfspart "$partitions" "$kernelpart")
|
||||
local append=""
|
||||
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
|
||||
|
||||
if [ "$PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD" -ne 1 ]; then
|
||||
( dd if="$1" bs=$CI_BLKSZ skip=1 count=$kern_blocks 2>/dev/null; \
|
||||
dd if="$1" bs=$CI_BLKSZ skip=$((1+$kern_blocks)) count=$root_blocks 2>/dev/null ) | \
|
||||
mtd -r $append -F$kernelpart:$kern_length:$CI_LDADR,rootfs write - $partitions
|
||||
elif [ -n "$rootfspart" ]; then
|
||||
dd if="$1" bs=$CI_BLKSZ skip=1 count=$kern_blocks 2>/dev/null | \
|
||||
mtd write - $kernelpart
|
||||
dd if="$1" bs=$CI_BLKSZ skip=$((1+$kern_blocks)) count=$root_blocks 2>/dev/null | \
|
||||
mtd -r $append write - $rootfspart
|
||||
fi
|
||||
fi
|
||||
PLATFORM_DO_UPGRADE_COMBINED_SEPARATE_MTD=0
|
||||
}
|
||||
|
||||
tplink_get_image_hwid() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
tplink_get_image_mid() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=17 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
tplink_get_image_boot_size() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
tplink_pharos_check_support_list() {
|
||||
local image="$1"
|
||||
local offset="$2"
|
||||
local model="$3"
|
||||
local trargs="$4"
|
||||
|
||||
# Here $image is given to dd directly instead of using get_image;
|
||||
# otherwise the skip will take almost a second (as dd can't seek)
|
||||
dd if="$image" bs=1 skip=$offset count=1024 2>/dev/null | tr -d "$trargs" | (
|
||||
while IFS= read -r line; do
|
||||
[ "$line" = "$model" ] && exit 0
|
||||
done
|
||||
|
||||
exit 1
|
||||
)
|
||||
}
|
||||
|
||||
tplink_pharos_check_image() {
|
||||
local image_magic="$(get_magic_long "$1")"
|
||||
local board_magic="$2"
|
||||
[ "$image_magic" != "$board_magic" ] && {
|
||||
echo "Invalid image magic '$image_magic'. Expected '$board_magic'."
|
||||
return 1
|
||||
}
|
||||
|
||||
local model_string="$3"
|
||||
local trargs="$4"
|
||||
|
||||
# New images have the support list at 7802888, old ones at 1511432
|
||||
tplink_pharos_check_support_list "$1" 7802888 "$model_string" "$trargs" || \
|
||||
tplink_pharos_check_support_list "$1" 1511432 "$model_string" "$trargs" || {
|
||||
echo "Unsupported image (model not in support-list)"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
seama_get_type_magic() {
|
||||
get_image "$@" | dd bs=1 count=4 skip=53 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
wrgg_get_image_magic() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=8 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
cybertan_get_image_magic() {
|
||||
get_image "$@" | dd bs=8 count=1 skip=0 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
cybertan_check_image() {
|
||||
local magic="$(cybertan_get_image_magic "$1")"
|
||||
local fw_magic="$(cybertan_get_hw_magic)"
|
||||
|
||||
[ "$fw_magic" != "$magic" ] && {
|
||||
echo "Invalid image, ID mismatch, got:$magic, but need:$fw_magic"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_do_upgrade_compex() {
|
||||
local fw_file=$1
|
||||
local fw_part=$PART_NAME
|
||||
local fw_mtd=$(find_mtd_part $fw_part)
|
||||
local fw_length=0x$(dd if="$fw_file" bs=2 skip=1 count=4 2>/dev/null)
|
||||
local fw_blocks=$(($fw_length / 65536))
|
||||
|
||||
if [ -n "$fw_mtd" ] && [ ${fw_blocks:-0} -gt 0 ]; then
|
||||
local append=""
|
||||
[ -f "$CONF_TAR" -a "$SAVE_CONFIG" -eq 1 ] && append="-j $CONF_TAR"
|
||||
|
||||
sync
|
||||
dd if="$fw_file" bs=64k skip=1 count=$fw_blocks 2>/dev/null | \
|
||||
mtd $append write - "$fw_part"
|
||||
fi
|
||||
}
|
||||
|
||||
alfa_check_image() {
|
||||
local magic_long="$(get_magic_long "$1")"
|
||||
local fw_part_size=$(mtd_get_part_size firmware)
|
||||
|
||||
case "$magic_long" in
|
||||
"27051956")
|
||||
[ "$fw_part_size" != "16318464" ] && {
|
||||
echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes"
|
||||
return 1
|
||||
}
|
||||
;;
|
||||
"68737173")
|
||||
[ "$fw_part_size" != "7929856" ] && {
|
||||
echo "Invalid image magic \"$magic_long\" for $fw_part_size bytes"
|
||||
return 1
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
platform_check_image() {
|
||||
local board=$(board_name)
|
||||
local magic="$(get_magic_word "$1")"
|
||||
local magic_long="$(get_magic_long "$1")"
|
||||
|
||||
[ "$#" -gt 1 ] && return 1
|
||||
|
||||
case "$board" in
|
||||
airgateway|\
|
||||
airgatewaypro|\
|
||||
airrouter|\
|
||||
ap121f|\
|
||||
ap132|\
|
||||
ap531b0|\
|
||||
ap90q|\
|
||||
archer-c25-v1|\
|
||||
archer-c58-v1|\
|
||||
archer-c59-v1|\
|
||||
archer-c60-v1|\
|
||||
archer-c60-v2|\
|
||||
archer-c7-v4|\
|
||||
archer-c7-v5|\
|
||||
arduino-yun|\
|
||||
bullet-m|\
|
||||
c-55|\
|
||||
carambola2|\
|
||||
cf-e316n-v2|\
|
||||
cf-e320n-v2|\
|
||||
cf-e355ac-v1|\
|
||||
cf-e355ac-v2|\
|
||||
cf-e375ac|\
|
||||
cf-e380ac-v1|\
|
||||
cf-e380ac-v2|\
|
||||
cf-e385ac|\
|
||||
cf-e520n|\
|
||||
cf-e530n|\
|
||||
cpe505n|\
|
||||
cpe830|\
|
||||
cpe870|\
|
||||
dap-1330-a1|\
|
||||
dgl-5500-a1|\
|
||||
dhp-1565-a1|\
|
||||
dir-505-a1|\
|
||||
dir-600-a1|\
|
||||
dir-615-c1|\
|
||||
dir-615-e1|\
|
||||
dir-615-e4|\
|
||||
dir-615-i1|\
|
||||
dir-825-c1|\
|
||||
dir-835-a1|\
|
||||
dlan-hotspot|\
|
||||
dlan-pro-1200-ac|\
|
||||
dlan-pro-500-wp|\
|
||||
dr342|\
|
||||
dr531|\
|
||||
dragino2|\
|
||||
e1700ac-v2|\
|
||||
e558-v2|\
|
||||
e600g-v2|\
|
||||
e600gac-v2|\
|
||||
e750a-v4|\
|
||||
e750g-v8|\
|
||||
ebr-2310-c1|\
|
||||
ens202ext|\
|
||||
epg5000|\
|
||||
esr1750|\
|
||||
esr900|\
|
||||
ew-balin|\
|
||||
ew-dorin|\
|
||||
ew-dorin-router|\
|
||||
gl-ar150|\
|
||||
gl-ar300m|\
|
||||
gl-ar300|\
|
||||
gl-ar750|\
|
||||
gl-domino|\
|
||||
gl-mifi|\
|
||||
gl-usb150|\
|
||||
hiwifi-hc6361|\
|
||||
hornet-ub-x2|\
|
||||
jwap230|\
|
||||
lbe-m5|\
|
||||
lima|\
|
||||
loco-m-xw|\
|
||||
mzk-w04nu|\
|
||||
mzk-w300nh|\
|
||||
n5q|\
|
||||
nanostation-m|\
|
||||
nanostation-m-xw|\
|
||||
nbg460n_550n_550nh|\
|
||||
pqi-air-pen|\
|
||||
r36a|\
|
||||
r602n|\
|
||||
rme-eg200|\
|
||||
rocket-m|\
|
||||
rocket-m-ti|\
|
||||
rocket-m-xw|\
|
||||
rw2458n|\
|
||||
sc1750|\
|
||||
sc300m|\
|
||||
sc450|\
|
||||
sr3200|\
|
||||
t830|\
|
||||
tew-632brp|\
|
||||
tew-712br|\
|
||||
tew-732br|\
|
||||
tew-823dru|\
|
||||
tl-wr1043n-v5|\
|
||||
tl-wr942n-v1|\
|
||||
unifi|\
|
||||
unifi-outdoor|\
|
||||
unifiac-lite|\
|
||||
unifiac-pro|\
|
||||
wam250|\
|
||||
weio|\
|
||||
whr-g301n|\
|
||||
whr-hp-g300n|\
|
||||
whr-hp-gn|\
|
||||
wlae-ag300n|\
|
||||
wndap360|\
|
||||
wpj342|\
|
||||
wpj344|\
|
||||
wpj531|\
|
||||
wpj558|\
|
||||
wpj563|\
|
||||
wrt400n|\
|
||||
wrtnode2q|\
|
||||
wzr-450hp2|\
|
||||
wzr-hp-ag300h|\
|
||||
wzr-hp-g300nh|\
|
||||
wzr-hp-g300nh2|\
|
||||
wzr-hp-g450h|\
|
||||
xd3200)
|
||||
[ "$magic" != "2705" ] && {
|
||||
echo "Invalid image type."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
alfa-ap96|\
|
||||
alfa-nx|\
|
||||
ap121|\
|
||||
ap121-mini|\
|
||||
ap135-020|\
|
||||
ap136-010|\
|
||||
ap136-020|\
|
||||
ap147-010|\
|
||||
ap152|\
|
||||
ap91-5g|\
|
||||
ap96|\
|
||||
bhr-4grv2|\
|
||||
bxu2000n-2-a1|\
|
||||
db120|\
|
||||
dr344|\
|
||||
dw33d|\
|
||||
f9k1115v2|\
|
||||
hornet-ub|\
|
||||
mr12|\
|
||||
mr16|\
|
||||
zbt-we1526|\
|
||||
zcn-1523h-2|\
|
||||
zcn-1523h-5)
|
||||
[ "$magic_long" != "68737173" -a "$magic_long" != "19852003" ] && {
|
||||
echo "Invalid image type."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
all0258n|\
|
||||
all0315n|\
|
||||
cap324|\
|
||||
cap4200ag|\
|
||||
cr3000|\
|
||||
cr5000)
|
||||
platform_check_image_allnet "$1" && return 0
|
||||
return 1
|
||||
;;
|
||||
all0305|\
|
||||
eap300v2|\
|
||||
eap7660d|\
|
||||
ja76pf|\
|
||||
ja76pf2|\
|
||||
jwap003|\
|
||||
ls-sr71|\
|
||||
pb42|\
|
||||
pb44|\
|
||||
routerstation|\
|
||||
routerstation-pro|\
|
||||
wp543|\
|
||||
wpe72)
|
||||
[ "$magic" != "4349" ] && {
|
||||
echo "Invalid image. Use *-sysupgrade.bin files on this board"
|
||||
return 1
|
||||
}
|
||||
|
||||
local md5_img=$(dd if="$1" bs=2 skip=9 count=16 2>/dev/null)
|
||||
local md5_chk=$(dd if="$1" bs=$CI_BLKSZ skip=1 2>/dev/null | md5sum -); md5_chk="${md5_chk%% *}"
|
||||
|
||||
if [ -n "$md5_img" -a -n "$md5_chk" ] && [ "$md5_img" = "$md5_chk" ]; then
|
||||
return 0
|
||||
else
|
||||
echo "Invalid image. Contents do not match checksum (image:$md5_img calculated:$md5_chk)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
;;
|
||||
antminer-s1|\
|
||||
antminer-s3|\
|
||||
antrouter-r1|\
|
||||
archer-c5|\
|
||||
archer-c7|\
|
||||
el-m150|\
|
||||
el-mini|\
|
||||
gl-inet|\
|
||||
lan-turtle|\
|
||||
mc-mac1200r|\
|
||||
minibox-v1|\
|
||||
omy-g1|\
|
||||
omy-x1|\
|
||||
onion-omega|\
|
||||
oolite-v1|\
|
||||
oolite-v5.2|\
|
||||
oolite-v5.2-dev|\
|
||||
packet-squirrel|\
|
||||
re355|\
|
||||
re450|\
|
||||
rut900|\
|
||||
smart-300|\
|
||||
som9331|\
|
||||
tellstick-znet-lite|\
|
||||
tl-mr10u|\
|
||||
tl-mr11u|\
|
||||
tl-mr12u|\
|
||||
tl-mr13u|\
|
||||
tl-mr3020|\
|
||||
tl-mr3040|\
|
||||
tl-mr3040-v2|\
|
||||
tl-mr3220|\
|
||||
tl-mr3220-v2|\
|
||||
tl-mr3420|\
|
||||
tl-mr3420-v2|\
|
||||
tl-mr6400|\
|
||||
tl-wa701nd-v2|\
|
||||
tl-wa7210n-v2|\
|
||||
tl-wa750re|\
|
||||
tl-wa7510n|\
|
||||
tl-wa801nd-v2|\
|
||||
tl-wa801nd-v3|\
|
||||
tl-wa830re-v2|\
|
||||
tl-wa850re|\
|
||||
tl-wa850re-v2|\
|
||||
tl-wa855re-v1|\
|
||||
tl-wa860re|\
|
||||
tl-wa901nd|\
|
||||
tl-wa901nd-v2|\
|
||||
tl-wa901nd-v3|\
|
||||
tl-wa901nd-v4|\
|
||||
tl-wa901nd-v5|\
|
||||
tl-wdr3320-v2|\
|
||||
tl-wdr3500|\
|
||||
tl-wdr4300|\
|
||||
tl-wdr4900-v2|\
|
||||
tl-wdr6500-v2|\
|
||||
tl-wpa8630|\
|
||||
tl-wr1041n-v2|\
|
||||
tl-wr1043nd|\
|
||||
tl-wr1043nd-v2|\
|
||||
tl-wr1043nd-v4|\
|
||||
tl-wr2543n|\
|
||||
tl-wr703n|\
|
||||
tl-wr710n|\
|
||||
tl-wr720n-v3|\
|
||||
tl-wr740n-v6|\
|
||||
tl-wr741nd|\
|
||||
tl-wr741nd-v4|\
|
||||
tl-wr802n-v1|\
|
||||
tl-wr802n-v2|\
|
||||
tl-wr810n|\
|
||||
tl-wr810n-v2|\
|
||||
tl-wr840n-v2|\
|
||||
tl-wr840n-v3|\
|
||||
tl-wr841n-v1|\
|
||||
tl-wr841n-v7|\
|
||||
tl-wr841n-v8|\
|
||||
tl-wr841n-v9|\
|
||||
tl-wr841n-v11|\
|
||||
tl-wr842n-v2|\
|
||||
tl-wr842n-v3|\
|
||||
tl-wr902ac-v1|\
|
||||
tl-wr940n-v4|\
|
||||
tl-wr940n-v6|\
|
||||
tl-wr941nd|\
|
||||
tl-wr941nd-v5|\
|
||||
tl-wr941nd-v6|\
|
||||
ts-d084|\
|
||||
wifi-pineapple-nano)
|
||||
local magic_ver="0100"
|
||||
|
||||
case "$board" in
|
||||
tl-wdr3320-v2|tl-wdr6500-v2)
|
||||
magic_ver="0200"
|
||||
;;
|
||||
esac
|
||||
|
||||
[ "$magic" != "$magic_ver" ] && {
|
||||
echo "Invalid image type."
|
||||
return 1
|
||||
}
|
||||
|
||||
local hwid
|
||||
local mid
|
||||
local imagehwid
|
||||
local imagemid
|
||||
|
||||
hwid=$(tplink_get_hwid)
|
||||
mid=$(tplink_get_mid)
|
||||
imagehwid=$(tplink_get_image_hwid "$1")
|
||||
imagemid=$(tplink_get_image_mid "$1")
|
||||
|
||||
[ "$hwid" != "$imagehwid" -o "$mid" != "$imagemid" ] && {
|
||||
echo "Invalid image, hardware ID mismatch, hw:$hwid $mid image:$imagehwid $imagemid."
|
||||
return 1
|
||||
}
|
||||
|
||||
local boot_size
|
||||
|
||||
boot_size=$(tplink_get_image_boot_size "$1")
|
||||
[ "$boot_size" != "00000000" ] && {
|
||||
echo "Invalid image, it contains a bootloader."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
bsb|\
|
||||
dir-825-b1|\
|
||||
tew-673gru)
|
||||
dir825b_check_image "$1" && return 0
|
||||
;;
|
||||
rb-411|\
|
||||
rb-411u|\
|
||||
rb-433|\
|
||||
rb-433u|\
|
||||
rb-435g|\
|
||||
rb-450|\
|
||||
rb-450g|\
|
||||
rb-493|\
|
||||
rb-493g|\
|
||||
rb-750|\
|
||||
rb-750gl|\
|
||||
rb-751|\
|
||||
rb-751g|\
|
||||
rb-911g-2hpnd|\
|
||||
rb-911g-5hpnd|\
|
||||
rb-911g-5hpacd|\
|
||||
rb-912uag-2hpnd|\
|
||||
rb-912uag-5hpnd|\
|
||||
rb-921gs-5hpacd-r2|\
|
||||
rb-951g-2hnd|\
|
||||
rb-951ui-2hnd|\
|
||||
rb-2011l|\
|
||||
rb-2011il|\
|
||||
rb-2011ils|\
|
||||
rb-2011uas|\
|
||||
rb-2011uas-2hnd|\
|
||||
rb-2011uias|\
|
||||
rb-2011uias-2hnd|\
|
||||
rb-sxt2n|\
|
||||
rb-sxt5n)
|
||||
nand_do_platform_check routerboard $1
|
||||
return $?
|
||||
;;
|
||||
c-60|\
|
||||
hiveap-121|\
|
||||
nbg6716|\
|
||||
r6100|\
|
||||
rambutan|\
|
||||
wi2a-ac200i|\
|
||||
wndr3700v4|\
|
||||
wndr4300)
|
||||
nand_do_platform_check $board $1
|
||||
return $?
|
||||
;;
|
||||
cpe210|\
|
||||
cpe510|\
|
||||
eap120|\
|
||||
wbs210|\
|
||||
wbs510)
|
||||
tplink_pharos_check_image "$1" "7f454c46" "$(tplink_pharos_get_model_string)" '' && return 0
|
||||
return 1
|
||||
;;
|
||||
cpe210-v2)
|
||||
tplink_pharos_check_image "$1" "01000000" "$(tplink_pharos_v2_get_model_string)" '\0\xff\r' && return 0
|
||||
return 1
|
||||
;;
|
||||
a40|\
|
||||
a60|\
|
||||
mr1750|\
|
||||
mr1750v2|\
|
||||
mr600|\
|
||||
mr600v2|\
|
||||
mr900|\
|
||||
mr900v2|\
|
||||
om2p|\
|
||||
om2p-hs|\
|
||||
om2p-hsv2|\
|
||||
om2p-hsv3|\
|
||||
om2p-hsv4|\
|
||||
om2p-lc|\
|
||||
om2pv2|\
|
||||
om2pv4|\
|
||||
om5p|\
|
||||
om5p-ac|\
|
||||
om5p-acv2|\
|
||||
om5p-an)
|
||||
platform_check_image_openmesh "$magic_long" "$1" && return 0
|
||||
return 1
|
||||
;;
|
||||
mr18|\
|
||||
z1)
|
||||
merakinand_do_platform_check $board $1
|
||||
return $?
|
||||
;;
|
||||
dir-869-a1|\
|
||||
mynet-n600|\
|
||||
mynet-n750|\
|
||||
qihoo-c301)
|
||||
[ "$magic_long" != "5ea3a417" ] && {
|
||||
echo "Invalid image, bad magic: $magic_long"
|
||||
return 1
|
||||
}
|
||||
|
||||
local typemagic=$(seama_get_type_magic "$1")
|
||||
[ "$typemagic" != "6669726d" ] && {
|
||||
echo "Invalid image, bad type: $typemagic"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
e2100l|\
|
||||
mynet-rext|\
|
||||
wrt160nl)
|
||||
cybertan_check_image "$1" && return 0
|
||||
return 1
|
||||
;;
|
||||
nbg6616|\
|
||||
uap-pro|\
|
||||
unifi-outdoor-plus)
|
||||
[ "$magic_long" != "19852003" ] && {
|
||||
echo "Invalid image type."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
tube2h)
|
||||
alfa_check_image "$1" && return 0
|
||||
return 1
|
||||
;;
|
||||
wndr3700|\
|
||||
wnr1000-v2|\
|
||||
wnr2000-v3|\
|
||||
wnr612-v2|\
|
||||
wpn824n)
|
||||
local hw_magic
|
||||
|
||||
hw_magic="$(ar71xx_get_mtd_part_magic firmware)"
|
||||
[ "$magic_long" != "$hw_magic" ] && {
|
||||
echo "Invalid image, hardware ID mismatch, hw:$hw_magic image:$magic_long."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
wnr2000-v4)
|
||||
[ "$magic_long" != "32303034" ] && {
|
||||
echo "Invalid image type."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
wnr2200)
|
||||
[ "$magic_long" != "32323030" ] && {
|
||||
echo "Invalid image type."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
;;
|
||||
dap-2695-a1)
|
||||
local magic=$(wrgg_get_image_magic "$1")
|
||||
[ "$magic" != "21030820" ] && {
|
||||
echo "Invalid image, bad type: $magic"
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0;
|
||||
;;
|
||||
# these boards use metadata images
|
||||
fritz300e|\
|
||||
fritz4020|\
|
||||
fritz450e|\
|
||||
koala|\
|
||||
rb-750-r2|\
|
||||
rb-750p-pbr2|\
|
||||
rb-750up-r2|\
|
||||
rb-911-2hn|\
|
||||
rb-911-5hn|\
|
||||
rb-941-2nd|\
|
||||
rb-951ui-2nd|\
|
||||
rb-952ui-5ac2nd|\
|
||||
rb-962uigs-5hact2hnt|\
|
||||
rb-lhg-5nd|\
|
||||
rb-map-2nd|\
|
||||
rb-mapl-2nd|\
|
||||
rb-wap-2nd|\
|
||||
rb-wapg-5hact2hnd)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Sysupgrade is not yet supported on $board."
|
||||
return 1
|
||||
}
|
||||
|
||||
platform_pre_upgrade() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
rb-750-r2|\
|
||||
rb-750p-pbr2|\
|
||||
rb-750up-r2|\
|
||||
rb-911-2hn|\
|
||||
rb-911-5hn|\
|
||||
rb-941-2nd|\
|
||||
rb-951ui-2nd|\
|
||||
rb-952ui-5ac2nd|\
|
||||
rb-962uigs-5hact2hnt|\
|
||||
rb-lhg-5nd|\
|
||||
rb-map-2nd|\
|
||||
rb-mapl-2nd|\
|
||||
rb-wap-2nd|\
|
||||
rb-wapg-5hact2hnd)
|
||||
# erase firmware if booted from initramfs
|
||||
[ -z "$(rootfs_type)" ] && mtd erase firmware
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
platform_nand_pre_upgrade() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
rb*)
|
||||
CI_KERNPART=none
|
||||
local fw_mtd=$(find_mtd_part kernel)
|
||||
fw_mtd="${fw_mtd/block/}"
|
||||
[ -n "$fw_mtd" ] || return
|
||||
mtd erase kernel
|
||||
tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" -
|
||||
;;
|
||||
wi2a-ac200i)
|
||||
case "$(fw_printenv -n dualPartition)" in
|
||||
imgA)
|
||||
fw_setenv dualPartition imgB
|
||||
fw_setenv ActImg NokiaImageB
|
||||
;;
|
||||
imgB)
|
||||
fw_setenv dualPartition imgA
|
||||
fw_setenv ActImg NokiaImageA
|
||||
;;
|
||||
esac
|
||||
ubiblock -r /dev/ubiblock0_0 2>/dev/null >/dev/null
|
||||
rm -f /dev/ubiblock0_0
|
||||
ubidetach -d 0 2>/dev/null >/dev/null
|
||||
CI_UBIPART=ubi_alt
|
||||
CI_KERNPART=kernel_alt
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
platform_do_upgrade() {
|
||||
local board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
all0258n)
|
||||
platform_do_upgrade_allnet "0x9f050000" "$ARGV"
|
||||
;;
|
||||
all0305|\
|
||||
eap7660d|\
|
||||
ja76pf|\
|
||||
ja76pf2|\
|
||||
jwap003|\
|
||||
ls-sr71|\
|
||||
pb42|\
|
||||
pb44|\
|
||||
routerstation|\
|
||||
routerstation-pro)
|
||||
platform_do_upgrade_combined "$ARGV"
|
||||
;;
|
||||
all0315n)
|
||||
platform_do_upgrade_allnet "0x9f080000" "$ARGV"
|
||||
;;
|
||||
cap4200ag|\
|
||||
eap300v2|\
|
||||
ens202ext)
|
||||
platform_do_upgrade_allnet "0xbf0a0000" "$ARGV"
|
||||
;;
|
||||
dir-825-b1|\
|
||||
tew-673gru)
|
||||
platform_do_upgrade_dir825b "$ARGV"
|
||||
;;
|
||||
a40|\
|
||||
a60|\
|
||||
mr1750|\
|
||||
mr1750v2|\
|
||||
mr600|\
|
||||
mr600v2|\
|
||||
mr900|\
|
||||
mr900v2|\
|
||||
om2p|\
|
||||
om2p-hs|\
|
||||
om2p-hsv2|\
|
||||
om2p-hsv3|\
|
||||
om2p-hsv4|\
|
||||
om2p-lc|\
|
||||
om2pv2|\
|
||||
om2pv4|\
|
||||
om5p|\
|
||||
om5p-ac|\
|
||||
om5p-acv2|\
|
||||
om5p-an)
|
||||
platform_do_upgrade_openmesh "$ARGV"
|
||||
;;
|
||||
c-60|\
|
||||
hiveap-121|\
|
||||
nbg6716|\
|
||||
r6100|\
|
||||
rambutan|\
|
||||
rb-411|\
|
||||
rb-411u|\
|
||||
rb-433|\
|
||||
rb-433u|\
|
||||
rb-435g|\
|
||||
rb-450|\
|
||||
rb-450g|\
|
||||
rb-493|\
|
||||
rb-493g|\
|
||||
rb-750|\
|
||||
rb-750gl|\
|
||||
rb-751|\
|
||||
rb-751g|\
|
||||
rb-911g-2hpnd|\
|
||||
rb-911g-5hpacd|\
|
||||
rb-911g-5hpnd|\
|
||||
rb-912uag-2hpnd|\
|
||||
rb-912uag-5hpnd|\
|
||||
rb-921gs-5hpacd-r2|\
|
||||
rb-951g-2hnd|\
|
||||
rb-951ui-2hnd|\
|
||||
rb-2011il|\
|
||||
rb-2011ils|\
|
||||
rb-2011l|\
|
||||
rb-2011uas|\
|
||||
rb-2011uas-2hnd|\
|
||||
rb-2011uias|\
|
||||
rb-2011uias-2hnd|\
|
||||
rb-sxt2n|\
|
||||
rb-sxt5n|\
|
||||
wi2a-ac200i|\
|
||||
wndr3700v4|\
|
||||
wndr4300)
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
mr18|\
|
||||
z1)
|
||||
merakinand_do_upgrade "$1"
|
||||
;;
|
||||
uap-pro|\
|
||||
unifi-outdoor-plus)
|
||||
MTD_CONFIG_ARGS="-s 0x180000"
|
||||
default_do_upgrade "$ARGV"
|
||||
;;
|
||||
wp543|\
|
||||
wpe72)
|
||||
platform_do_upgrade_compex "$ARGV"
|
||||
;;
|
||||
*)
|
||||
default_do_upgrade "$ARGV"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
Reference in New Issue
Block a user