Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled

This commit is contained in:
domenico
2025-06-24 12:51:15 +02:00
commit 27c9d80f51
10493 changed files with 1885777 additions and 0 deletions

View File

@@ -0,0 +1,272 @@
. /lib/functions/leds.sh
. /lib/functions/uci-defaults.sh
board=$(board_name)
board_config_update
case $board in
alfa-network,ax1800rm)
ucidef_set_led_netdev "lan1" "lan1" "green:lan1" "lan1"
ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2"
ucidef_set_led_netdev "lan3" "lan3" "green:lan3" "lan3"
ucidef_set_led_netdev "wan" "wan" "green:wan" "wan"
;;
asus,rp-ac87)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_rssimon "wlan1" "200000" "1"
ucidef_set_led_rssi "rssilow-wlan0" "RSSILOW" "green:rssilow-wlan0" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimedlow-wlan0" "RSSIMEDLOW" "green:rssimedlow-wlan0" "wlan0" "20" "100"
ucidef_set_led_rssi "rssimed-wlan0" "RSSIMED" "green:rssimed-wlan0" "wlan0" "40" "100"
ucidef_set_led_rssi "rssihigh-wlan0" "RSSIHIGH" "green:rssihigh-wlan0" "wlan0" "70" "100"
ucidef_set_led_rssi "rssilow-wlan1" "RSSILOW" "green:rssilow-wlan1" "wlan1" "1" "100"
ucidef_set_led_rssi "rssimedlow-wlan1" "RSSIMEDLOW" "green:rssimedlow-wlan1" "wlan1" "20" "100"
ucidef_set_led_rssi "rssimed-wlan1" "RSSIMED" "green:rssimed-wlan1" "wlan1" "40" "100"
ucidef_set_led_rssi "rssihigh-wlan1" "RSSIHIGH" "green:rssihigh-wlan1" "wlan1" "70" "100"
;;
asus,rt-ax53u)
ucidef_set_led_usbport "usb" "USB" "blue:usb" "usb1-port2"
ucidef_set_led_wlan "wlan2g" "WiFi 2.4GHz" "mt76-phy0" "phy0tpt"
ucidef_set_led_wlan "wlan5g" "WiFi 5GHz" "mt76-phy1" "phy1tpt"
;;
asus,rt-ax54|\
yuncore,g720)
ucidef_set_led_wlan "wlan2g" "WiFi 2.4GHz" "mt76-phy0" "phy0tpt"
ucidef_set_led_wlan "wlan5g" "WiFi 5GHz" "mt76-phy1" "phy1tpt"
;;
asus,rt-n56u-b1)
ucidef_set_led_netdev "lan" "LAN link" "blue:lan" "br-lan"
ucidef_set_led_netdev "wan" "WAN link" "blue:wan" "wan"
;;
beeline,smartbox-flash|\
beeline,smartbox-giga|\
beeline,smartbox-turbo|\
beeline,smartbox-turbo-plus|\
etisalat,s3|\
rostelecom,rt-sf-1)
ucidef_set_led_netdev "wan" "wan" "blue:wan" "wan"
;;
beeline,smartbox-pro|\
wifire,s1500-nbn)
ucidef_set_led_netdev "lan1" "lan1" "green:lan-1" "lan1" "link tx rx"
ucidef_set_led_netdev "lan2" "lan2" "green:lan-2" "lan2" "link tx rx"
ucidef_set_led_netdev "lan3" "lan3" "green:lan-3" "lan3" "link tx rx"
ucidef_set_led_netdev "lan4" "lan4" "green:lan-4" "lan4" "link tx rx"
ucidef_set_led_netdev "wan" "wan" "green:wan" "wan" "link tx rx"
;;
belkin,rt1800)
ucidef_set_led_netdev "wan" "wan" "white:wan" "wan"
;;
cudy,wr2100)
ucidef_set_led_netdev "lan1" "lan1" "green:lan1" "lan1"
ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2"
ucidef_set_led_netdev "lan3" "lan3" "green:lan3" "lan3"
ucidef_set_led_netdev "lan4" "lan4" "green:lan4" "lan4"
ucidef_set_led_netdev "wan" "wan" "green:wan" "wan"
;;
d-team,newifi-d2)
ucidef_set_led_netdev "internet" "internet" "amber:internet" "wan"
ucidef_set_led_netdev "wlan2g" "WiFi 2.4GHz" "blue:wlan2g" "wlan0"
ucidef_set_led_netdev "wlan5g" "WiFi 5GHz" "blue:wlan5g" "wlan1"
;;
d-team,pbr-m1|\
gehua,ghl-r-001|\
jcg,y2|\
xzwifi,creativebox-v1)
ucidef_set_led_netdev "internet" "internet" "blue:internet" "wan"
;;
dlink,dap-1620-b1|\
dlink,dra-1360-a1)
ucidef_set_rssimon "wlan1" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "red:rssilow" "wlan1" "1" "40"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "green:rssilow" "wlan1" "21" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:rssimed" "wlan1" "61" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan1" "81" "100"
;;
dlink,dap-x1860-a1)
ucidef_set_rssimon "wlan1" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "orange:rssilow" "wlan1" "1" "25"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "green:rssilow" "wlan1" "26" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:rssimedium" "wlan1" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan1" "76" "100"
;;
dlink,dir-1960-a1|\
dlink,dir-2055-a1|\
dlink,dir-2150-a1|\
dlink,dir-2640-a1|\
dlink,dir-2660-a1)
ucidef_set_led_netdev "wan" "wan" "white:wan" "wan"
;;
dlink,dir-3040-a1|\
dlink,dir-3060-a1)
ucidef_set_led_netdev "net_white" "WAN Link" "white:wan" "wan" "link"
ucidef_set_led_netdev "net_orange" "WAN Activity" "orange:wan" "wan" "tx rx"
;;
dlink,dir-853-a1|\
dlink,dir-853-a3)
ucidef_set_led_netdev "wan" "wan" "blue:net" "wan"
;;
dlink,dir-853-r1)
ucidef_set_led_netdev "internet" "internet" "blue:net" "wan"
;;
dlink,dir-1935-a1|\
dlink,dir-860l-b1|\
dlink,dir-867-a1|\
dlink,dir-878-a1|\
dlink,dir-882-a1|\
dlink,dir-882-r1)
ucidef_set_led_netdev "wan" "wan" "green:net" "wan"
;;
gnubee,gb-pc2)
ucidef_set_led_netdev "ethyellow" "ethyellow" "orange:ethyellow" "ethyellow" "link tx rx"
;;
huasifei,ws1208v2)
ucidef_set_led_netdev "wwan0" "wwan0" "green:cellular" "wwan0" "link tx rx"
;;
keenetic,kn-3010)
ucidef_set_led_netdev "internet" "internet" "green:internet" "wan"
;;
linksys,e5600)
ucidef_set_led_netdev "wan" "wan link" "blue:wan" "wan" "link"
;;
linksys,ea6350-v4|\
linksys,ea7300-v1|\
linksys,ea7300-v2|\
linksys,ea7500-v2|\
linksys,ea8100-v1|\
linksys,ea8100-v2)
ucidef_set_led_netdev "lan1" "lan1 link" "green:lan1" "lan1" "link"
ucidef_set_led_netdev "lan2" "lan2 link" "green:lan2" "lan2" "link"
ucidef_set_led_netdev "lan3" "lan3 link" "green:lan3" "lan3" "link"
ucidef_set_led_netdev "lan4" "lan4 link" "green:lan4" "lan4" "link"
ucidef_set_led_netdev "wan" "wan link" "green:wan" "wan" "link"
;;
meig,slt866)
ucidef_set_led_netdev "lan" "eth" "blue:lanwan" "lan" "link tx rx"
ucidef_set_led_netdev "wwan0" "net" "blue:internet" "wwan0" "link tx rx"
;;
mikrotik,routerboard-760igs)
ucidef_set_led_netdev "sfp" "SFP" "blue:sfp" "sfp"
;;
mikrotik,ltap-2hnd|\
mikrotik,routerboard-m11g)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "green:rssi0" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "green:rssi1" "wlan0" "20" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:rssi2" "wlan0" "40" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssi3" "wlan0" "60" "100"
ucidef_set_led_rssi "rssiveryhigh" "RSSIVERYHIGH" "green:rssi4" "wlan0" "80" "100"
;;
mtc,wr1201)
ucidef_set_led_netdev "eth_link" "LAN link" "green:eth_link" "br-lan"
;;
netgear,eax12)
ucidef_set_led_netdev "eth_act" "LAN act" "yellow:eth" "lan" "tx rx"
ucidef_set_led_netdev "eth_link" "LAN link" "green:eth" "lan" "link"
;;
netgear,r6220|\
netgear,r6260|\
netgear,r6350|\
netgear,r6850|\
netgear,wac124|\
netgear,wndr3700-v5)
ucidef_set_led_netdev "wan" "wan" "green:wan" "wan"
;;
netgear,r6700-v2|\
netgear,r6800|\
netgear,r6900-v2|\
netgear,r7200|\
netgear,r7450)
ucidef_set_led_netdev "wan" "WAN" "white:wan" "wan"
ucidef_set_led_netdev "lan1" "LAN1" "white:lan1" "lan1"
ucidef_set_led_netdev "lan2" "LAN2" "white:lan2" "lan2"
ucidef_set_led_netdev "lan3" "LAN3" "white:lan3" "lan3"
ucidef_set_led_netdev "lan4" "LAN4" "white:lan4" "lan4"
;;
netgear,wax202)
ucidef_set_led_netdev "internet" "Internet" "green:net" "wan"
;;
oraybox,x3a)
ucidef_set_led_netdev "wan" "wan link" "red:status" "wan"
ucidef_set_led_netdev "lan" "lan link" "green:status" "br-lan"
;;
snr,snr-cpe-me1)
ucidef_set_led_usbport "usb" "USB" "green:usb" "usb1-port1" "usb2-port1"
;;
tplink,archer-a6-v3|\
tplink,archer-ax23-v1|\
tplink,archer-c6-v3|\
tplink,archer-c6u-v1|\
tplink,ex220-v1)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan"
ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan"
;;
tplink,deco-m4r-v4)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan"
;;
tplink,ec330-g5u-v1)
ucidef_set_led_netdev "lan" "Ethernet" "blue:lan" "br-lan" "link tx rx"
ucidef_set_led_netdev "wan" "Internet" "blue:wan" "wan" "link tx rx"
ucidef_set_led_netdev "wan-off" "Internet-off" "amber:wan" "wan" "link"
;;
tplink,re350-v1)
ucidef_set_led_netdev "wifi2g" "Wifi 2.4G" "blue:wifi2G" "wlan0"
ucidef_set_led_netdev "wifi5g" "Wifi 5G" "blue:wifi5G" "wlan1"
ucidef_set_led_netdev "eth_act" "LAN act" "green:eth_act" "lan" "tx rx"
ucidef_set_led_netdev "eth_link" "LAN link" "green:eth_link" "lan" "link"
;;
tplink,mr600-v2-eu)
ucidef_set_led_netdev "lan" "LAN" "white:lan" "br-lan"
ucidef_set_led_netdev "wan" "WAN" "white:wan" "wan"
ucidef_set_led_netdev "4g" "4G" "white:4g" "wwan0"
;;
tplink,re500-v1|\
tplink,re650-v1|\
tplink,re650-v2)
ucidef_set_led_netdev "eth_act" "LAN act" "green:eth_act" "lan" "tx rx"
ucidef_set_led_netdev "eth_link" "LAN link" "green:eth_link" "lan" "link"
;;
tplink,tl-wpa8631p-v3)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan"
;;
xiaomi,mi-router-4a-gigabit-v2)
ucidef_set_led_netdev "wan" "wan" "blue:wan" "wan" "link"
;;
xiaomi,mi-router-ac2100)
ucidef_set_led_netdev "wan-blue" "WAN (blue)" "blue:wan" "wan"
;;
xiaomi,mi-router-cr6606|\
xiaomi,mi-router-cr6608|\
xiaomi,mi-router-cr6609)
ucidef_set_led_netdev "internet" "Internet" "blue:net" "wan"
;;
xiaomi,redmi-router-ac2100)
ucidef_set_led_netdev "wan" "wan" "white:wan" "wan"
;;
youhua,wr1200js)
ucidef_set_led_netdev "internet" "INTERNET" "green:wan" "wan"
;;
yuncore,fap690)
ucidef_set_led_netdev "eth_link" "LAN link" "blue:status" "lan" "link"
;;
yuncore,ax820)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "lan"
ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan"
;;
z-router,zr-2660)
ucidef_set_led_netdev "lan" "lan" "green:lan" "br-lan" "link tx rx"
ucidef_set_led_netdev "wan" "wan" "green:wan" "wan" "link tx rx"
ucidef_set_led_netdev "wan-off" "wan-off" "red:wan" "wan" "link"
;;
zyxel,lte3301-plus)
ucidef_set_led_netdev "internet" "internet" "white:internet" "wwan0"
;;
zyxel,lte5398-m904)
ucidef_set_led_netdev "internet" "LTE/3G Internet Activity" "green:internet" "wwan0" "rx tx"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,350 @@
. /lib/functions.sh
. /lib/functions/uci-defaults.sh
. /lib/functions/system.sh
ramips_setup_interfaces()
{
local board="$1"
case $board in
alfa-network,ax1800rm|\
ampedwireless,ally-r1900k|\
asus,rt-ax53u|\
buffalo,wsr-2533dhpl2|\
buffalo,wsr-2533dhpls|\
gehua,ghl-r-001|\
h3c,tx1800-plus|\
h3c,tx1801-plus|\
h3c,tx1806|\
haier,har-20s2u1|\
hiwifi,hc5962|\
mercusys,mr70x-v1|\
netgear,wax202|\
sim,simax1800t|\
xiaomi,mi-router-3-pro|\
xiaomi,mi-router-ac2100|\
xiaomi,mi-router-cr6606|\
xiaomi,mi-router-cr6608|\
xiaomi,mi-router-cr6609|\
xiaomi,redmi-router-ac2100|\
z-router,zr-2660|\
zyxel,wsm20)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
;;
arcadyan,we420223-99)
ucidef_set_interface_lan "swp0 swp1"
;;
ampedwireless,ally-00x19k|\
asus,rp-ac56|\
asus,rp-ac87|\
dlink,dap-1620-b1|\
dlink,dap-x1860-a1|\
dlink,dra-1360-a1|\
edimax,re23s|\
linksys,re7000|\
mikrotik,ltap-2hnd|\
mikrotik,routerboard-m11g|\
netgear,eax12|\
netgear,ex6150|\
netgear,wax214v2|\
sercomm,na502|\
sercomm,na502s|\
thunder,timecloud|\
tplink,eap613-v1|\
tplink,re350-v1|\
tplink,re500-v1|\
tplink,re650-v1|\
tplink,re650-v2|\
ubnt,unifi-6-lite|\
ubnt,unifi-flexhd|\
ubnt,unifi-nanohd|\
yuncore,fap690|\
wavlink,wl-wn573hx1|\
zyxel,nwa50ax|\
zyxel,nwa55axe)
ucidef_set_interface_lan "lan"
;;
asiarf,ap7621-001|\
humax,e10|\
keenetic,kn-3510|\
openfi,5pro|\
wavlink,ws-wn572hp3-4g|\
winstars,ws-wn583a6)
ucidef_set_interfaces_lan_wan "lan" "wan"
;;
asiarf,ap7621-nv1|\
beeline,smartbox-flash|\
beeline,smartbox-giga|\
elecom,wrc-x1800gs|\
glinet,gl-mt1300|\
iodata,wn-deax1800gr|\
iptime,a3002mesh|\
jcg,q20|\
lenovo,newifi-d1|\
mikrotik,routerboard-m33g|\
mts,wg430223|\
oraybox,x3a|\
renkforce,ws-wn530hp3-a|\
xiaomi,mi-router-3g|\
xiaomi,mi-router-3g-v2|\
xiaomi,mi-router-4|\
xiaomi,mi-router-4a-gigabit|\
xiaomi,mi-router-4a-gigabit-v2)
ucidef_set_interfaces_lan_wan "lan1 lan2" "wan"
;;
bolt,arion)
ucidef_set_interfaces_lan_wan "lan" "wan"
ucidef_set_interface "eth_data" device "modem.103" protocol "static" ipaddr "10.22.127.222" netmask "255.255.255.255"
ucidef_set_interface "eth_om" device "modem.4094" protocol "static" ipaddr "169.254.0.2" netmask "255.255.255.252"
uci add_list firewall.@zone[1].network='eth_data'
uci add_list firewall.@zone[1].network='eth_om'
;;
cudy,m1800|\
yuncore,ax820|\
zyxel,nr7101)
ucidef_set_interfaces_lan_wan "lan" "wan"
;;
dlink,covr-x1860-a1)
ucidef_set_interfaces_lan_wan "ethernet" "internet"
;;
elecom,wmc-s1267gs2|\
linksys,re6500|\
netgear,wac104|\
zyxel,lte3301-plus)
ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
;;
gnubee,gb-pc1)
ucidef_set_interface_lan "ethblack ethblue"
;;
gnubee,gb-pc2)
ucidef_set_interface_lan "ethblack ethblue ethyellow"
;;
mikrotik,routerboard-750gr3)
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan"
;;
mikrotik,routerboard-760igs)
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan sfp"
;;
mqmaker,witi)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan1 wan2"
;;
tozed,zlt-s12-pro)
ucidef_set_interface_lan "lan1 lan2 lan3 wan"
ucidef_set_interface "wwan" device "/dev/ttyUSB0" protocol "ncm"
uci add_list firewall.@zone[1].network='wwan'
;;
tplink,deco-m4r-v4)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;
tplink,eap235-wall-v1|\
tplink,eap615-wall-v1)
ucidef_set_interface_lan "lan0 lan1 lan2 lan3"
;;
tplink,er605-v2)
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0"
;;
tplink,tl-wpa8631p-v3)
ucidef_set_interface_lan "lan1 lan2 lan3 plc0"
;;
tplink,mr600-v2-eu)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
;;
ubnt,edgerouter-x)
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0"
;;
ubnt,edgerouter-x-sfp)
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4 eth5" "eth0"
;;
ubnt,usw-flex)
ucidef_set_interface_lan "lan1 lan2 lan3 lan4 lan5"
;;
zyxel,lte5398-m904)
ucidef_set_interface_lan "lan1 lan2"
ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi"
;;
zyxel,wap6805)
ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
ucidef_set_interface "qtn" ifname "eth1" protocol "static" ipaddr "1.1.1.1" netmask "255.255.255.0"
;;
comfast,cf-e390ax|\
comfast,cf-ew72-v2|\
meig,slt866)
ucidef_set_interfaces_lan_wan "lan" "wan"
;;
*)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
;;
esac
}
ramips_setup_macs()
{
local board="$1"
local lan_mac=""
local wan_mac=""
local label_mac=""
case $board in
alfa-network,ax1800rm|\
jcg,y2|\
wavlink,wl-wn531a6|\
wavlink,wl-wn533a8|\
winstars,ws-wn583a6|\
zbtlink,zbt-we1326|\
zbtlink,zbt-wg3526-16m|\
zbtlink,zbt-wg3526-32m)
label_mac=$(mtd_get_mac_binary factory 0x4)
;;
ampedwireless,ally-00x19k)
lan_mac=$(mtd_get_mac_ascii hwconfig HW.LAN.MAC.Address)
label_mac=$lan_mac
;;
ampedwireless,ally-r1900k)
lan_mac=$(mtd_get_mac_ascii hwconfig HW.LAN.MAC.Address)
wan_mac=$(mtd_get_mac_ascii hwconfig HW.WAN.MAC.Address)
label_mac=$lan_mac
;;
arcadyan,we420223-99)
label_mac=$(mtd_get_mac_ascii board_data mac)
lan_mac=$label_mac
ucidef_set_network_device_mac eth0 $(macaddr_add "$label_mac" 3)
;;
asus,rt-ac65p|\
asus,rt-ac85p)
wan_mac=$(mtd_get_mac_ascii u-boot-env et1macaddr)
label_mac=$(mtd_get_mac_binary factory 0x4)
;;
beeline,smartbox-flash)
wan_mac=$(mtd_get_mac_encrypted_arcadyan "board_data")
label_mac=$(macaddr_add "$wan_mac" 3)
lan_mac=$label_mac
;;
buffalo,wsr-1166dhp|\
buffalo,wsr-2533dhpl2|\
buffalo,wsr-2533dhpls)
wan_mac=$(mtd_get_mac_ascii board_data "mac")
lan_mac=$wan_mac
label_mac=$wan_mac
;;
comfast,cf-e390ax)
lan_mac=$(cat /sys/class/net/eth0/address)
label_mac=$lan_mac
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
dlink,covr-x1860-a1)
label_mac=$(mtd_get_mac_ascii config2 factory_mac)
wan_mac=$(macaddr_add "$label_mac" 3)
lan_mac=$label_mac
;;
dlink,dir-860l-b1)
lan_mac=$(mtd_get_mac_ascii factory lanmac)
wan_mac=$(mtd_get_mac_ascii factory wanmac)
;;
edimax,ra21s|\
edimax,rg21s)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
;;
elecom,wrc-2533ghbk2-t|\
elecom,wrc-2533ghbk-i)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
label_mac=$wan_mac
;;
h3c,tx1800-plus|\
h3c,tx1801-plus|\
h3c,tx1806)
label_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
lan_mac=$(macaddr_add "$label_mac" 1)
wan_mac=$label_mac
;;
hiwifi,hc5962)
lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
label_mac=$lan_mac
[ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
iodata,wnpr2600g)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
label_mac=$wan_mac
;;
iptime,t5004)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
linksys,e5600|\
linksys,ea6350-v4|\
linksys,ea7300-v1|\
linksys,ea7300-v2|\
linksys,ea7500-v2|\
linksys,ea8100-v1|\
linksys,ea8100-v2)
lan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr)
wan_mac=$lan_mac
label_mac=$lan_mac
;;
belkin,rt1800|\
linksys,e7350)
lan_mac=$(mtd_get_mac_ascii Config lan_hwaddr)
wan_mac=$(mtd_get_mac_ascii Config wan_hwaddr)
label_mac=$lan_mac
;;
mikrotik,ltap-2hnd)
label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
lan_mac=$label_mac
;;
tplink,er605-v2)
CI_UBIPART="firmware"
label_mac=$(mtd_get_mac_uci_config_ubi "tddp")
lan_mac=$label_mac
wan_mac=$(macaddr_add "$label_mac" 1)
;;
tplink,mr600-v2-eu)
label_mac=$(cat "/sys/class/net/eth0/address")
wwan_mac=$(macaddr_add $label_mac 1)
ucidef_set_interface "wwan0" device "/dev/cdc-wdm0" protocol "qmi" macaddr "$wwan_mac"
;;
mikrotik,routerboard-750gr3|\
mikrotik,routerboard-760igs|\
mikrotik,routerboard-m11g|\
mikrotik,routerboard-m33g)
label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
wan_mac=$label_mac
lan_mac=$(macaddr_add $label_mac 1)
;;
mts,wg430223)
wan_mac=$(mtd_get_mac_encrypted_arcadyan "board_data")
label_mac=$wan_mac
lan_mac=$(macaddr_add "$wan_mac" 2)
;;
netgear,eax12)
lan_mac=$(mtd_get_mac_ascii Config mac)
label_mac=$lan_mac
;;
netgear,wax202)
lan_mac=$(mtd_get_mac_ascii Config mac)
wan_mac=$(macaddr_add "$lan_mac" 1)
label_mac=$lan_mac
;;
netgear,wax214v2)
lan_mac=$(mtd_get_mac_ascii Config ethaddr)
label_mac=$lan_mac
;;
yuncore,ax820)
label_mac=$(mtd_get_mac_binary Factory 0x4)
;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
}
board_config_update
board=$(board_name)
ramips_setup_interfaces $board
ramips_setup_macs $board
board_config_flush
exit 0

View File

@@ -0,0 +1,47 @@
. /lib/functions/uci-defaults.sh
board_config_update
board=$(board_name)
case "$board" in
mikrotik,routerboard-760igs)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "529"
;;
telco-electronics,x1)
ucidef_add_gpio_switch "modem_reset" "Modem Reset" "528"
;;
tozed,zlt-s12-pro)
ucidef_add_gpio_switch "lt72_power" "Power LTE modem" "lt72_power" "1"
;;
tplink,eap235-wall-v1|\
tplink,eap615-wall-v1)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "poe-passthrough"
;;
ubnt,edgerouter-x)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "512"
;;
ubnt,edgerouter-x-sfp)
ucidef_add_gpio_switch "poe_power_port0" "PoE Power Port0" "608"
ucidef_add_gpio_switch "poe_power_port1" "PoE Power Port1" "609"
ucidef_add_gpio_switch "poe_power_port2" "PoE Power Port2" "610"
ucidef_add_gpio_switch "poe_power_port3" "PoE Power Port3" "611"
ucidef_add_gpio_switch "poe_power_port4" "PoE Power Port4" "612"
;;
zyxel,lte3301-plus|\
zyxel,lte5398-m904)
ucidef_add_gpio_switch "usb_power" "Power USB Port" "usb_power" "1"
ucidef_add_gpio_switch "lte_power" "Power LTE modem" "lte_power" "1"
;;
zyxel,nr7101)
ucidef_add_gpio_switch "lte_reset" "Reset LTE/5G modem" "515"
;;
zyxel,wap6805)
ucidef_add_gpio_switch "qtn_power" "Quantenna Module Power" "528" "1"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,21 @@
#
# Copyright (C) 2020 OpenWrt.org
#
. /lib/functions.sh
. /lib/functions/uci-defaults.sh
board_config_update
case "$(board_name)" in
iptime,ax2004m)
ucidef_set_compat_version "2.0"
;;
*)
ucidef_set_compat_version "1.1"
;;
esac
board_config_flush
exit 0

View File

@@ -0,0 +1,33 @@
#!/bin/sh
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions/caldata.sh
caldata_mikrotik_ath9k() {
local offset=$(($1))
local count=$(($2))
local macaddr=$3
local wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
caldata_from_file $wlan_data $offset $count /tmp/$FIRMWARE
ath9k_patch_mac "$macaddr" /tmp/$FIRMWARE
caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 $count
rm -f /tmp/$FIRMWARE
}
board=$(board_name)
case "$FIRMWARE" in
"ath9k-eeprom-pci-0000:01:00.0.bin")
case $board in
mikrotik,ltap-2hnd)
mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
caldata_mikrotik_ath9k 0x5000 0x440 $(macaddr_add "$mac_base" 1)
;;
*)
caldata_die "board $board is not supported yet"
;;
esac
;;
esac

View File

@@ -0,0 +1,75 @@
#!/bin/sh
# This must run before 10-wifi-detect
[ "${ACTION}" = "add" ] || return
. /lib/functions.sh
check_radio()
{
local cfg="$1" to="$2"
config_get path "$cfg" path
[ "$path" = "$to" ] && PATH_EXISTS=true
}
do_migrate_radio()
{
local cfg="$1" from="$2" to="$3"
config_get path "$cfg" path
[ "$path" = "$from" ] || return
uci set "wireless.${cfg}.path=${to}"
WIRELESS_CHANGED=true
logger -t wifi-migrate "Updated path of wireless.${cfg} from '${from}' to '${to}'"
}
migrate_radio()
{
local from="$1" to="$2"
config_load wireless
# Check if there is already a section with the target path: In this case, the system
# was already upgraded to a version without this migration script before; better bail out,
# as we can't be sure we don't break more than we fix.
PATH_EXISTS=false
config_foreach check_radio wifi-device "$to"
$PATH_EXISTS && return
config_foreach do_migrate_radio wifi-device "$from" "$to"
}
WIRELESS_CHANGED=false
case "$(board_name)" in
arcadyan,we420223-99|\
beeline,smartbox-flash|\
mts,wg430223)
migrate_radio '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0' '1e140000.pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
migrate_radio '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0+1' '1e140000.pcie/pci0000:00/0000:00:01.0/0000:01:00.0+1'
;;
netgear,r6220|\
netgear,wac104|\
netgear,wndr3700-v5)
migrate_radio '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0' '1e140000.pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
;;
zbtlink,zbt-we1326)
migrate_radio '1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0' '1e140000.pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
migrate_radio '1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0' '1e140000.pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
;;
esac
$WIRELESS_CHANGED && uci commit wireless
exit 0

View File

@@ -0,0 +1,231 @@
[ "$ACTION" == "add" ] || exit 0
PHYNBR=${DEVPATH##*/phy}
[ -n $PHYNBR ] || exit 0
. /lib/functions.sh
. /lib/functions/system.sh
board=$(board_name)
case "$board" in
arcadyan,we420223-99)
if [ "$PHYNBR" = "0" ]; then
mac24=$(macaddr_add "$(get_mac_label)" "0xf00001")
echo -n "$mac24" > /sys${DEVPATH}/macaddress
elif [ "$PHYNBR" = "1" ]; then
mac5=$(macaddr_add "$(get_mac_label)" 1)
echo -n "$mac5" > /sys${DEVPATH}/macaddress
fi
;;
beeline,smartbox-flash)
hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
[ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
hw_mac_addr=$(macaddr_setbit $hw_mac_addr 26)
hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 27)
hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
[ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
;;
buffalo,wsr-2533dhpls)
lan_mac_addr=$(mtd_get_mac_ascii board_data "mac")
[ "$PHYNBR" = "0" ] && \
macaddr_add $lan_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && \
macaddr_add $lan_mac_addr 8 > /sys${DEVPATH}/macaddress
;;
comfast,cf-e390ax)
[ "$PHYNBR" = "0" ] && echo -n "$(mtd_get_mac_binary factory 0x0004)" > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && echo -n "$(mtd_get_mac_binary factory 0x8004)" > /sys${DEVPATH}/macaddress
;;
cudy,x6-v1|\
cudy,x6-v2)
hw_mac_addr="$(mtd_get_mac_binary bdinfo 0xde00)"
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
;;
dlink,dap-1620-b1|\
dlink,dir-853-a1|\
dlink,dra-1360-a1)
lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)"
[ "$PHYNBR" = "0" ] && \
macaddr_add $lan_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && \
macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
dlink,covr-x1860-a1)
label_mac=$(mtd_get_mac_ascii config2 factory_mac)
[ "$PHYNBR" = "0" ] && \
macaddr_add $label_mac 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && \
macaddr_add $label_mac 2 > /sys${DEVPATH}/macaddress
;;
dlink,dap-x1860-a1)
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
[ "$PHYNBR" = "0" ] && \
macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && \
macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
;;
dlink,dir-3040-a1)
lan_mac_addr="$(mtd_get_mac_binary factory 0xe000)"
[ "$PHYNBR" = "0" ] && \
macaddr_add $lan_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
dlink,dir-853-a3)
[ "$PHYNBR" = "0" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary factory 0xe000)" \
> /sys${DEVPATH}/macaddress
;;
dlink,dir-853-r1|\
phicomm,k2p)
if [ "$PHYNBR" = "0" ]; then
base_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" -1)
macaddr_setbit_la "$base_mac" > /sys${DEVPATH}/macaddress
fi
;;
glinet,gl-mt1300|\
z-router,zr-2660)
[ "$PHYNBR" = "1" ] && \
macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1 > /sys${DEVPATH}/macaddress
;;
h3c,tx1800-plus|\
h3c,tx1801-plus|\
h3c,tx1806)
addr=$(macaddr_setbit $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) 7)
[ "$PHYNBR" = "0" ] && echo -n ${addr:0:9}'1'${addr:10:7} > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && echo -n ${addr:0:9}'7'${addr:10:7} > /sys${DEVPATH}/macaddress
;;
haier,har-20s2u1|\
jcg,y2|\
sim,simax1800t)
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary factory 0x4)" > /sys${DEVPATH}/macaddress
;;
hiwifi,hc5962)
label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
[ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
echo -n "$label_mac" > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
;;
iptime,a3002mesh|\
iptime,a3004t)
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
[ "$PHYNBR" = "0" ] && \
macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
;;
iptime,ax2004m)
if [ "$PHYNBR" = "1" ]; then
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
macaddr_setbit_la "$(macaddr_add $hw_mac_addr 3)" > /sys${DEVPATH}/macaddress
fi
;;
jcg,q20)
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary Factory 0x4)" > /sys${DEVPATH}/macaddress
;;
keenetic,kn-3510)
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary rf-eeprom 0x4)" > /sys${DEVPATH}/macaddress
;;
linksys,e5600|\
linksys,ea6350-v4|\
linksys,ea7300-v1|\
linksys,ea7300-v2|\
linksys,ea7500-v2|\
linksys,ea8100-v1|\
linksys,ea8100-v2)
hw_mac_addr=$(mtd_get_mac_ascii devinfo hw_mac_addr)
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
belkin,rt1800|\
linksys,e7350)
hw_mac_addr=$(mtd_get_mac_ascii Config wan_hwaddr)
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
netgear,eax12)
hw_mac_addr=$(mtd_get_mac_ascii Config mac)
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
netgear,wax202)
hw_mac_addr=$(mtd_get_mac_ascii Config mac)
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
;;
netgear,wax214v2)
hw_mac_addr=$(mtd_get_mac_ascii Config ethaddr)
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
;;
mercusys,mr70x-v1|\
tplink,archer-ax23-v1)
hw_mac_addr="$(mtd_get_mac_binary config 0x8)"
[ "$PHYNBR" = "1" ] && macaddr_add "$hw_mac_addr" -1 > "/sys${DEVPATH}/macaddress"
;;
mts,wg430223)
hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
[ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 26)
hw_mac_addr=$(macaddr_setbit $hw_mac_addr 27)
hw_mac_addr=$(macaddr_unsetbit $hw_mac_addr 28)
[ "$PHYNBR" = "1" ] && macaddr_setbit_la $hw_mac_addr > /sys${DEVPATH}/macaddress
;;
oraybox,x3a)
if [ "$PHYNBR" = "1" ]; then
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
macaddr_setbit_la "$(macaddr_add $hw_mac_addr 0x100000)" > /sys${DEVPATH}/macaddress
fi
;;
raisecom,msg1500-x-00)
[ "$PHYNBR" = "0" ] && \
macaddr_setbit_la "$(get_mac_label)" > /sys${DEVPATH}/macaddress
;;
snr,snr-cpe-me2-sfp)
hw_mac_addr="$(mtd_get_mac_binary factory 0x8004)"
[ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
;;
tenbay,t-mb5eu-v01)
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr "0x100000" > /sys${DEVPATH}/macaddress
;;
totolink,x5000r)
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 4 > /sys${DEVPATH}/macaddress
;;
tplink,eap613-v1|\
tplink,eap615-wall-v1)
hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
;;
tplink,ex220-v1)
hw_mac_addr="$(mtd_get_mac_binary rom_file 0xf100)"
[ "$PHYNBR" = "1" ] && macaddr_add "$hw_mac_addr" 2 > "/sys${DEVPATH}/macaddress"
;;
yuncore,ax820|\
yuncore,g720)
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress
;;
yuncore,fap640|\
yuncore,fap690)
hw_mac_addr="$(mtd_get_mac_binary Factory 0x4)"
[ "$PHYNBR" = "0" ] && macaddr_setbit_la "$hw_mac_addr" > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
;;
zyxel,nwa50ax|\
zyxel,nwa55axe)
hw_mac_addr="$(mtd_get_mac_binary mrd 0x1fff8)"
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
zyxel,wsm20)
hw_mac_addr="$(mtd_get_mac_binary Factory 0x1fdfa)"
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
esac

View File

@@ -0,0 +1,47 @@
#!/bin/sh /etc/rc.common
START=99
boot() {
case $(board_name) in
alfa-network,quad-e4g)
[ -n "$(fw_printenv bootcount bootchanged 2>/dev/null)" ] &&\
echo -e "bootcount\nbootchanged\n" | /usr/sbin/fw_setenv -s -
;;
beeline,smartbox-turbo|\
beeline,smartbox-turbo-plus|\
rostelecom,rt-sf-1)
[[ $(hexdump -n 1 -e '/1 "%1d"' -s $((0x20001)) /dev/mtd3) == \
$((0xff)) ]] || printf '\xff' | dd of=/dev/mtdblock3 \
count=1 bs=1 seek=$((0x20001))
;;
jdcloud,re-cp-02)
echo -e "bootcount 0\nbootlimit 5\nupgrade_available 1" | /usr/sbin/fw_setenv -s -
;;
linksys,e5600|\
linksys,ea6350-v4|\
linksys,ea7300-v1|\
linksys,ea7300-v2|\
linksys,ea7500-v2|\
linksys,ea8100-v1|\
linksys,ea8100-v2)
mtd resetbc s_env || true
;;
belkin,rt1800|\
linksys,e7350|\
samknows,whitebox-v8)
fw_setenv bootcount 0
;;
zyxel,lte3301-plus)
[ $(printf %d $(fw_printenv -n DebugFlag)) -gt 0 ] || fw_setenv DebugFlag 1
[ $(printf %d $(fw_printenv -n Image1Stable)) -gt 0 ] || fw_setenv Image1Stable 1
[ $(printf %d $(fw_printenv -n Image1Try)) -gt 0 ] && fw_setenv Image1Try 0
;;
zyxel,lte5398-m904|\
zyxel,nr7101)
[ $(printf %d $(fw_printenv -n DebugFlag)) -gt 0 ] || fw_setenv DebugFlag 0x1
[ $(printf %d $(fw_printenv -n Image1Stable)) -gt 0 ] || fw_setenv Image1Stable 1
[ $(printf %d $(fw_printenv -n Image1Try)) -gt 0 ] && fw_setenv Image1Try 0
;;
esac
}

View File

@@ -0,0 +1,16 @@
#!/bin/sh
[[ "${ACTION}" = "released" ]] || exit 0
. /lib/functions.sh
case "$(board_name)" in
tplink,ec330-g5u-v1)
led_light="/sys/class/gpio/led-light/value"
echo "$((!$(cat $led_light)))" > "$led_light"
;;
*)
;;
esac
return 0

View File

@@ -0,0 +1,5 @@
uci -q get network.globals.packet_steering > /dev/null || {
uci set network.globals='globals'
uci set network.globals.packet_steering=1
uci commit network
}

View File

@@ -0,0 +1,24 @@
. /lib/functions.sh
. /lib/functions/migrations.sh
board=$(board_name)
case "$board" in
dlink,dir-1960-a1|\
dlink,dir-2640-a1|\
dlink,dir-2660-a1|\
dlink,dir-3040-a1|\
dlink,dir-3060-a1)
migrate_leds ':net=:wan'
;;
tplink,archer-a6-v3|\
tplink,archer-c6-v3)
migrate_leds ':wifi2g$=:wlan-2' ':wifi5g$=:wlan-5'
;;
esac
remove_devicename_leds
migrations_apply system
exit 0

View File

@@ -0,0 +1,22 @@
. /lib/functions.sh
# don't modify FW data when booting with initramfs image
fstype="$(/bin/mount | awk '($3 ~ /^\/$/) && ($5 !~ /rootfs/) { print $5 }')"
[ "$fstype" = "tmpfs" ] && \
exit 0
fixup_trx_crc() {
local trx_magic="$1"
local kernel_size=$(sed -n 's/mtd[0-9]*: \([0-9a-f]*\).*"\(kernel\|linux\)".*/\1/p' /proc/mtd)
mtd -M $trx_magic ${kernel_size:+-c 0x$kernel_size} fixtrx firmware
}
case "$(board_name)" in
buffalo,wsr-2533dhpl2)
fixup_trx_crc 0x50484c32
;;
buffalo,wsr-2533dhpls)
fixup_trx_crc 0x44484C53
;;
esac

View File

@@ -0,0 +1,15 @@
set_netdev_labels() {
local dir
local label
local netdev
for dir in /sys/class/net/*; do
[ -r "$dir/of_node/label" ] || continue
read -r label < "$dir/of_node/label"
netdev="${dir##*/}"
[ "$netdev" = "$label" ] && continue
ip link set "$netdev" name "$label"
done
}
boot_hook_add preinit_main set_netdev_labels

View File

@@ -0,0 +1,112 @@
# The mtd partitions "firmware" and "Kernel2" on NAND flash are os-image
# partitions. These partitions are called as "Image1/Image2" in U-Boot
# on WSR-2533DHPLx devices, and they are checked conditions when booting.
# "Image1" is always used for booting.
#
# == U-Boot Behaviors ==
#
# - "Image1"/"Image2" images are good, images are different or
# "Image2" image is broken
# -> copy os-image to "Image2" from "Image1"
#
# - "Image1" image is broken
# -> copy os-image to "Image1" from "Image2"
#
# - "Image1"/"Image2" images are broken
# -> fall to U-Boot command line
# TRX magic numbers of each model
case "$(board_name)" in
buffalo,wsr-2533dhpl2)
BUFFALO_TRX_MAGIC="50484c32" # "PHL2"
;;
buffalo,wsr-2533dhpls)
BUFFALO_TRX_MAGIC="44484c53" # "DHLS"
;;
esac
buffalo_check_image() {
local board="$1"
local boardname="$(echo $board | tr ',' '_')"
local magic="$2"
local fw_image="$3"
# return error state if TRX + UBI formatted image specified
# to notify about configurations
if [ "$magic" = "$BUFFALO_TRX_MAGIC" ]; then
echo "Your configurations won't be saved if factory-uboot.bin image specified."
echo "But if you want to upgrade, please execute sysupgrade with \"-F\" option."
return 1
fi
# check if valid tar file specifed
if ! tar tf "$fw_image" &>/dev/null; then
echo "Specified file is not a tar archive: $fw_image"
return 1
fi
local control_len=$( (tar xf $fw_image sysupgrade-$boardname/CONTROL -O | wc -c) 2> /dev/null)
# check if valid sysupgrade tar archive
if [ "$control_len" = "0" ]; then
echo "Invalid sysupgrade file: $fw_image"
return 1
fi
local kern_part_len=$(grep "\"linux\"" /proc/mtd | sed "s/mtd[0-9]*:[ \t]*\([^ \t]*\).*/\1/")
[ -z "$kern_part_len" ] && {
echo "Unable to get \"linux\" partition size"
return 1
}
kern_part_len=$((0x$kern_part_len))
# this also checks if the sysupgrade image is for correct models
local kern_bin_len=$( (tar xf $fw_image sysupgrade-${boardname}/kernel -O | wc -c) 2> /dev/null)
if [ -z "$kern_bin_len" ]; then
echo "Failed to get new kernel size, is valid sysupgrade image specified for the device?"
return 1
fi
# kernel binary has a trx header (len: 28 (0x1c))
kern_bin_len=$((kern_bin_len - 28))
if [ "$kern_bin_len" != "$kern_part_len" ]; then
echo -n "The length of new kernel is invalid for current "
echo "\"linux\" partition, please use factory-uboot.bin image."
echo "\"linux\" partition: $kern_part_len, new kernel: $kern_bin_len"
return 1
fi
}
# for TRX + UBI formatted image
buffalo_upgrade_ubinized() {
sync
echo 3 > /proc/sys/vm/drop_caches
local mtdnum="$( find_mtd_index "ubi" )"
# if no "ubi", don't return error for the purpose of recovery
# ex: recovery after accidental erasing "firmware" partition
if [ ! "$mtdnum" ]; then
echo "cannot find ubi mtd partition \"ubi\", skip detachment"
else
ubidetach -m "$mtdnum"
fi
# erase all data in "firmware"
mtd erase "${PART_NAME}"
# write TRX + UBI formatted image to "firmware"
get_image "$1" | mtd $MTD_ARGS write - "${PART_NAME:-firmware}"
if [ $? -ne 0 ]; then
echo "Failed to write the specified image."
exit 1
fi
}
buffalo_do_upgrade() {
if [ "$(get_magic_long "$1")" = "$BUFFALO_TRX_MAGIC" ]; then
buffalo_upgrade_ubinized "$1"
else
CI_KERNPART="firmware"
nand_do_upgrade "$1"
fi
}

View File

@@ -0,0 +1,88 @@
#
# Copyright (C) 2019 OpenWrt.org
#
. /lib/functions.sh
iodata_mstc_prepare_fail() {
echo "failed to check and prepare the environment, rebooting..."
umount -a
reboot -f
}
# read/write 1byte in mtd device
#
# parameters:
# $1: target mtd device ("/dev/mtdblockN")
# $2: offset of target value (decimal or hex)
# $3: value to set (decimal or hex, don't set when reading)
iodata_mstc_rw_byte() {
local mtd="$1"
local offset="$2"
local setval="$3"
local _val=$(hexdump -s $offset -n 1 -e '"%d"' $mtd)
if [ -z "$setval" ]; then
echo $_val
return 0
fi
# decimal or hex -> decimal
setval=$((setval))
[ "$_val" = "$setval" ] && return 0
setval="$(printf '%02x' $setval)"
if ! (printf "\x$setval" | dd bs=1 seek=$((offset)) conv=notrunc of=$mtd 2>/dev/null); then
return 1
fi
}
# set flag in mtd device on I-O DATA devices manufactured by MSTC
# (MitraStar Technology Corp.)
#
# parameters:
# $1: parameter name
# $2: mtd name contains target flag
# $3: offset of flag
# $4: valid flag values ("n,n,...", ex:"0,1" or "1,2")
# $5: value to set to the flag
iodata_mstc_set_flag() {
local name="$1"
local mtddev="$(find_mtd_part $2)"
local offset="$3"
local valid="$4"
local setval="$5"
if [ -z "$offset" ]; then
echo "no $name flag offset provided"
iodata_mstc_prepare_fail
fi
if [ -z "$mtddev" ]; then
echo "cannot find \"$2\" mtd partition"
iodata_mstc_prepare_fail
fi
local flag=$(iodata_mstc_rw_byte "$mtddev" "$offset")
local _tmp
for i in ${valid//,/ }; do
if [ "$flag" = "$((i))" ]; then
_tmp=$flag
break
fi
done
if [ -z "$_tmp" ]; then
echo "failed to get valid $name flag, please check the value at $offset in $mtddev"
iodata_mstc_prepare_fail
fi
echo "current: $name => $flag"
if [ "$flag" != "$((setval))" ]; then
if ! iodata_mstc_rw_byte "$mtddev" "$offset" "$setval"; then
echo "failed to set \"$name\" flag"
iodata_mstc_prepare_fail
fi
echo " --> set \"$name\" flag to $setval (valid: $valid)"
fi
}

View File

@@ -0,0 +1,212 @@
#
# Copyright (C) 2010 OpenWrt.org
#
PART_NAME=firmware
REQUIRE_IMAGE_METADATA=1
RAMFS_COPY_BIN='fw_printenv fw_setenv'
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
platform_check_image() {
local board=$(board_name)
local magic="$(get_magic_long "$1")"
[ "$#" -gt 1 ] && return 1
case "$board" in
buffalo,wsr-2533dhpl2|\
buffalo,wsr-2533dhpls)
buffalo_check_image "$board" "$magic" "$1" || return 1
;;
esac
return 0
}
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
alfa-network,quad-e4g)
[ "$(fw_printenv -n dual_image 2>/dev/null)" = "1" ] &&\
[ -n "$(find_mtd_part backup)" ] && {
PART_NAME=backup
if [ "$(fw_printenv -n bootactive 2>/dev/null)" = "1" ]; then
fw_setenv bootactive 2 || exit 1
else
fw_setenv bootactive 1 || exit 1
fi
}
;;
ampedwireless,ally-00x19k|\
ampedwireless,ally-r1900k)
if [ "$(fw_printenv --lock / -n bootImage 2>/dev/null)" != "0" ]; then
fw_setenv --lock / bootImage 0 || exit 1
fi
;;
iptime,ax2004m)
if [ "$(fw_printenv -n boot_from 2>/dev/null)" != "firmware1" ]; then
fw_setenv boot_from firmware1 || exit 1
fi
;;
mikrotik,ltap-2hnd|\
mikrotik,routerboard-750gr3|\
mikrotik,routerboard-760igs|\
mikrotik,routerboard-m11g|\
mikrotik,routerboard-m33g)
[ "$(rootfs_type)" = "tmpfs" ] && mtd erase firmware
;;
asus,rt-ac65p|\
asus,rt-ac85p)
echo "Backing up firmware"
dd if=/dev/mtd4 bs=1024 count=4096 > /tmp/backup_firmware.bin
dd if=/dev/mtd5 bs=1024 count=52224 >> /tmp/backup_firmware.bin
mtd -e firmware2 write /tmp/backup_firmware.bin firmware2
;;
esac
case "$board" in
ampedwireless,ally-00x19k|\
ampedwireless,ally-r1900k|\
arcadyan,we420223-99|\
asus,rt-ac65p|\
asus,rt-ac85p|\
asus,rt-ax53u|\
asus,rt-ax54|\
beeline,smartbox-flash|\
beeline,smartbox-giga|\
beeline,smartbox-pro|\
beeline,smartbox-turbo|\
beeline,smartbox-turbo-plus|\
belkin,rt1800|\
dlink,covr-x1860-a1|\
dlink,dap-x1860-a1|\
dlink,dir-1960-a1|\
dlink,dir-2055-a1|\
dlink,dir-2150-a1|\
dlink,dir-2640-a1|\
dlink,dir-2660-a1|\
dlink,dir-3040-a1|\
dlink,dir-3060-a1|\
dlink,dir-853-a3|\
etisalat,s3|\
h3c,tx1800-plus|\
h3c,tx1801-plus|\
h3c,tx1806|\
haier,har-20s2u1|\
hiwifi,hc5962|\
iptime,a3004t|\
iptime,ax2004m|\
iptime,t5004|\
jcg,q20|\
keenetic,kn-3510|\
linksys,e5600|\
linksys,e7350|\
linksys,ea6350-v4|\
linksys,ea7300-v1|\
linksys,ea7300-v2|\
linksys,ea7500-v2|\
linksys,ea8100-v1|\
linksys,ea8100-v2|\
mts,wg430223|\
netgear,eax12|\
netgear,r6220|\
netgear,r6260|\
netgear,r6350|\
netgear,r6700-v2|\
netgear,r6800|\
netgear,r6850|\
netgear,r6900-v2|\
netgear,r7200|\
netgear,r7450|\
netgear,wac104|\
netgear,wac124|\
netgear,wax202|\
netgear,wax214v2|\
netis,wf2881|\
raisecom,msg1500-x-00|\
rostelecom,rt-fe-1a|\
rostelecom,rt-sf-1|\
sercomm,na502|\
sercomm,na502s|\
sim,simax1800t|\
tplink,ec330-g5u-v1|\
wifire,s1500-nbn|\
xiaomi,mi-router-3g|\
xiaomi,mi-router-3-pro|\
xiaomi,mi-router-4|\
xiaomi,mi-router-ac2100|\
xiaomi,mi-router-cr6606|\
xiaomi,mi-router-cr6608|\
xiaomi,mi-router-cr6609|\
xiaomi,redmi-router-ac2100|\
z-router,zr-2660|\
zyxel,nwa50ax|\
zyxel,nwa55axe)
nand_do_upgrade "$1"
;;
buffalo,wsr-2533dhpl2|\
buffalo,wsr-2533dhpls)
buffalo_do_upgrade "$1"
;;
elecom,wrc-x1800gs)
[ "$(fw_printenv -n bootmenu_delay)" != "0" ] || \
fw_setenv bootmenu_delay 3
iodata_mstc_set_flag "bootnum" "persist" "0x4" "1,2" "1"
nand_do_upgrade "$1"
;;
iodata,wn-ax1167gr2|\
iodata,wn-ax2033gr|\
iodata,wn-dx1167r|\
iodata,wn-dx2033gr)
iodata_mstc_set_flag "debugflag" "factory" "0xfe75" "0,1" "1"
iodata_mstc_set_flag "bootnum" "persist" "0x4" "1,2" "1"
nand_do_upgrade "$1"
;;
iodata,wn-deax1800gr)
iodata_mstc_set_flag "bootnum" "working" "0x4" "0,1" "0"
nand_do_upgrade "$1"
;;
iodata,wn-dx1200gr)
iodata_mstc_set_flag "debugflag" "factory" "0x1fe75" "0,1" "1"
iodata_mstc_set_flag "bootnum" "persist" "0x4" "1,2" "1"
nand_do_upgrade "$1"
;;
tplink,er605-v2)
echo "Upgrading tplink,er605-v2"
CI_UBIPART="firmware"
CI_KERNPART="kernel"
nand_do_upgrade "$1"
;;
ubnt,edgerouter-x|\
ubnt,edgerouter-x-sfp)
platform_upgrade_ubnt_erx "$1"
;;
zyxel,lte3301-plus|\
zyxel,lte5398-m904|\
zyxel,nr7101)
fw_setenv CheckBypass 0
fw_setenv Image1Stable 0
[ "$(fw_printenv -n BootingFlag)" = "0" ] || fw_setenv BootingFlag 0
CI_KERNPART="Kernel"
nand_do_upgrade "$1"
;;
zyxel,wap6805)
local kernel2_mtd="$(find_mtd_part Kernel2)"
[ "$(hexdump -n 4 -e '"%x"' $kernel2_mtd)" = "56190527" ] &&\
[ "$(hexdump -n 4 -s 104 -e '"%x"' $kernel2_mtd)" != "0" ] &&\
dd bs=4 count=1 seek=26 conv=notrunc if=/dev/zero of=$kernel2_mtd 2>/dev/null &&\
echo "Kernel2 sequence number was reset to 0"
CI_KERNPART="Kernel"
nand_do_upgrade "$1"
;;
zyxel,wsm20)
zyxel_mstc_upgrade_prepare
nand_do_upgrade "$1"
;;
*)
default_do_upgrade "$1"
;;
esac
}

View File

@@ -0,0 +1,78 @@
#
# Copyright (C) 2015 OpenWrt.org
#
. /lib/functions.sh
#Note: this code also uses some functions from nand.sh, but it is expected to be run by nand.sh, so we are not
#sourcing it explicitly here
UBNT_ERX_KERNEL_INDEX_OFFSET=160
ubnt_get_target_kernel() {
local factory_mtd=$1
local current_kernel_index=$(hexdump -s $UBNT_ERX_KERNEL_INDEX_OFFSET -n 1 -e '/1 "%X "' ${factory_mtd})
if [ $current_kernel_index == "0" ]; then
echo 'kernel2'
elif [ $current_kernel_index == "1" ]; then
echo 'kernel1'
fi
}
ubnt_update_target_kernel() {
local factory_mtd=$1
local kernel_part=$2
local new_kernel_index
if [ $kernel_part == "kernel1" ]; then
new_kernel_index="\x00"
elif [ $kernel_part == "kernel2" ]; then
new_kernel_index="\x01"
else
echo 'Unknown kernel image index' >&2
return 1
fi
if ! (echo -e $new_kernel_index | dd of=${factory_mtd} bs=1 count=1 seek=$UBNT_ERX_KERNEL_INDEX_OFFSET); then
echo 'Failed to update kernel bootup index' >&2
return 1
fi
}
platform_upgrade_ubnt_erx() {
local factory_mtd=$(find_mtd_part factory)
if [ -z "$factory_mtd" ]; then
echo "cannot find factory partition" >&2
exit 1
fi
local kernel_part="$(ubnt_get_target_kernel ${factory_mtd})"
if [ -z "$kernel_part" ]; then
echo "cannot find factory partition" >&2
exit 1
fi
# This is a global defined in nand.sh, sets partition kernel will be flashed into
CI_KERNPART=${kernel_part}
#Remove volume possibly left over from stock firmware
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
if [ -z "$ubidev" ]; then
local mtdnum="$( find_mtd_index "$CI_UBIPART" )"
if [ -z "$mtdnum" ]; then
echo "cannot find ubi mtd partition $CI_UBIPART" >&2
exit 1
fi
ubiattach -m "$mtdnum"
sync
ubidev="$( nand_find_ubi "$CI_UBIPART" )"
fi
if [ -n "$ubidev" ]; then
local troot_ubivol="$( nand_find_volume $ubidev troot )"
[ -n "$troot_ubivol" ] && ubirmvol /dev/$ubidev -N troot || true
fi
ubnt_update_target_kernel ${factory_mtd} ${kernel_part} || exit 1
nand_do_upgrade "$1"
}

View File

@@ -0,0 +1,39 @@
#
# Copyright (C) 2023 OpenWrt.org
#
. /lib/functions.sh
zyxel_mstc_prepare_fail() {
echo "failed to check and prepare the environment, rebooting..."
umount -a
reboot -f
}
zyxel_mstc_upgrade_prepare() {
local persist_mtd="$(find_mtd_part persist)"
local firmware_mtd="$(find_mtd_part firmware)"
if [ -z "$persist_mtd" ] || [ -z "$firmware_mtd" ]; then
echo 'cannot find mtd partition(s) "persist" or "firmware"'
zyxel_mstc_prepare_fail
fi
local bootnum=$(hexdump -s 4 -n 1 -e '"%x"' ${persist_mtd})
if [ "$bootnum" != "1" ] && [ "$bootnum" != "2" ]; then
echo "failed to get bootnum, please check the value at 0x4 in ${persist_mtd}"
zyxel_mstc_prepare_fail
fi
echo "current: bootnum => ${bootnum}"
[ "$(fw_printenv -n bootmenu_delay)" = "3" ] || fw_setenv bootmenu_delay 3
if [ "$bootnum" = "2" ]; then
if ! ( echo -ne "\x01" | dd of=${persist_mtd} count=1 bs=1 seek=4 conv=notrunc 2>/dev/null ); then
echo "failed to set new boot partition"
zyxel_mstc_prepare_fail
fi
echo "### switch to 1st os-image on next boot ###"
fi
}

View File

@@ -0,0 +1,80 @@
#!/bin/sh
. /lib/functions.sh
. /lib/functions/system.sh
partname=""
offset=""
NEW_MAC=
YES=
board=$(board_name)
case $board in
mqmaker,witi)
partname=factory
offset=$((0xe000))
;;
*)
echo "Unsupported board"
exit 1
;;
esac
while [ -n "$1" ]; do
case "$1" in
??:??:??:??:??:??) NEW_MAC="$1";;
-y) YES=1;;
*)
cat <<EOF
Unknown option/argument '$1'
Usage: $0 [-y] [<macaddr>]
EOF
exit 1
;;
esac
shift
done
ask_bool() {
local message="$1"
local default="$((! ${2:-0}))"
[ -n "$YES" ] && return 0
echo -n "$message "
read opt
case "$opt" in
y|Y) return 0;;
n|N) return 1;;
*) return $default;;
esac
}
convert_hex() {
hexdump -e '/1 "%02x "'
}
gen_mac() {
dd if=/dev/urandom bs=6 count=1 2>/dev/null
}
mac="$(mtd_get_mac_binary $partname $offset)"
case "$mac" in
00:00:00:00:00:00);;
ff:ff:ff:ff:ff:ff);;
*)
echo "Current MAC address: $mac"
ask_bool "Overwrite (y/N)?" 0 || exit
;;
esac
if [ -n "$NEW_MAC" ]; then
set -- $(echo "$NEW_MAC" | sed 's,:, ,g')
else
set -- $(gen_mac | convert_hex)
set -- $(printf %02x $(( (0x$1 & 0xfe) | 0x02 ))) $2 $3 $4 $5 $6
fi
echo "New MAC address: $1:$2:$3:$4:$5:$6"
ask_bool "Write to EEPROM (y/N)?" || exit
part=$(find_mtd_part "$partname")
[ -n "$part" ] || exit
echo -ne "\x$1\x$2\x$3\x$4\x$5\x$6" | dd of=$part conv=notrunc bs=1 count=6 seek=$offset 2>/dev/null
echo "Done"