dev=$(find_mtd_part $mtd)
[ -z "$dev" ] && return
- dd if=$dev bs=1 skip=$offset count=$size 2>/dev/null | hexdump -v -e "1/1 \"$format\""
+ dd if=$dev iflag=skip_bytes bs=$size skip=$offset count=1 2>/dev/null | hexdump -v -e "1/1 \"$format\""
}
ar71xx_get_mtd_part_magic() {
[ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}"
}
+ubnt_unifi_ac_get_mtd_part_magic() {
+ ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x
+}
+
+ubnt_unifi_ac_board_detect() {
+ local model
+ local magic
+
+ magic="$(ubnt_unifi_ac_get_mtd_part_magic)"
+ case ${magic:0:4} in
+ "e517")
+ model="Ubiquiti UniFi-AC-LITE"
+ ;;
+ "e537")
+ model="Ubiquiti UniFi-AC-PRO"
+ ;;
+ "e557")
+ model="Ubiquiti UniFi-AC-MESH"
+ ;;
+ "e567")
+ model="Ubiquiti UniFi-AC-MESH-PRO"
+ ;;
+ esac
+
+ [ -z "$model" ] || AR71XX_MODEL="${model}"
+}
+
cybertan_get_hw_magic() {
local part
[ "$hwid" = '08020002' -a "$mid" = '00000002' ] && hwver=' v2'
;;
+ "081000"*)
+ model="TP-Link TL-WR810N"
+ ;;
"083000"*)
model="TP-Link TL-WA830RE"
"085000"*)
model="TP-Link TL-WA850RE"
;;
+ "085500"*)
+ model="TP-Link TL-WA855RE"
+ ;;
"086000"*)
model="TP-Link TL-WA860RE"
;;
"360000"*)
model="TP-Link TL-WDR3600"
;;
- "3C0001"*)
- model="OOLITE"
- ;;
- "3C0002"*)
- model="MINIBOX_V1"
- ;;
"430000"*)
model="TP-Link TL-WDR4300"
;;
}
tplink_pharos_board_detect() {
- local model_string="$(tplink_pharos_get_model_string | tr -d '\r')"
+ local model_string="$1"
local oIFS="$IFS"; IFS=":"; set -- $model_string; IFS="$oIFS"
local model="${1%%\(*}"
AR71XX_MODEL="TP-Link $model v$2"
}
+tplink_pharos_v2_get_model_string() {
+ local part
+ part=$(find_mtd_part 'product-info')
+ [ -z "$part" ] && return 1
+
+ dd if=$part iflag=skip_bytes bs=64 skip=4360 count=1 2>/dev/null | tr -d '\r\0' | head -n 1
+}
+
+mikrotik_board_detect() {
+ local machine="$1"
+
+ case "$machine" in
+ *"2011iL")
+ name="rb-2011il"
+ ;;
+ *"2011iLS")
+ name="rb-2011ils"
+ ;;
+ *"2011L")
+ name="rb-2011l"
+ ;;
+ *"2011UAS")
+ name="rb-2011uas"
+ ;;
+ *"2011UAS-2HnD")
+ name="rb-2011uas-2hnd"
+ ;;
+ *"2011UiAS")
+ name="rb-2011uias"
+ ;;
+ *"2011UiAS-2HnD")
+ name="rb-2011uias-2hnd"
+ ;;
+ *"2011UiAS-2HnD r2")
+ name="rb-2011uias-2hnd-r2"
+ ;;
+ *"411/A/AH")
+ name="rb-411"
+ ;;
+ *"411U")
+ name="rb-411u"
+ ;;
+ *"433/AH")
+ name="rb-433"
+ ;;
+ *"433UAH")
+ name="rb-433u"
+ ;;
+ *"435G")
+ name="rb-435g"
+ ;;
+ *"450")
+ name="rb-450"
+ ;;
+ *"450G")
+ name="rb-450g"
+ ;;
+ *"493/AH")
+ name="rb-493"
+ ;;
+ *"493G")
+ name="rb-493g"
+ ;;
+ *"750")
+ name="rb-750"
+ ;;
+ *"750 r2"|\
+ *"750r2")
+ name="rb-750-r2"
+ ;;
+ *"750GL")
+ name="rb-750gl"
+ ;;
+ *"750P r2")
+ name="rb-750p-pbr2"
+ ;;
+ *"750UP r2"|\
+ *"750UPr2")
+ name="rb-750up-r2"
+ ;;
+ *"751")
+ name="rb-751"
+ ;;
+ *"751G")
+ name="rb-751g"
+ ;;
+ *"911-2Hn")
+ name="rb-911-2hn"
+ ;;
+ *"911-5Hn")
+ name="rb-911-5hn"
+ ;;
+ *"911G-2HPnD")
+ name="rb-911g-2hpnd"
+ ;;
+ *"911G-5HPacD")
+ name="rb-911g-5hpacd"
+ ;;
+ *"911G-5HPnD")
+ name="rb-911g-5hpnd"
+ ;;
+ *"912UAG-2HPnD")
+ name="rb-912uag-2hpnd"
+ ;;
+ *"912UAG-5HPnD")
+ name="rb-912uag-5hpnd"
+ ;;
+ *"921GS-5HPacD r2")
+ name="rb-921gs-5hpacd-r2"
+ ;;
+ *"922UAGS-5HPacD")
+ name="rb-922uags-5hpacd"
+ ;;
+ *"931-2nD")
+ name="rb-931-2nd"
+ ;;
+ *"941-2nD")
+ name="rb-941-2nd"
+ ;;
+ *"951G-2HnD")
+ name="rb-951g-2hnd"
+ ;;
+ *"951Ui-2HnD")
+ name="rb-951ui-2hnd"
+ ;;
+ *"951Ui-2nD")
+ name="rb-951ui-2nd"
+ ;;
+ *"952Ui-5ac2nD")
+ name="rb-952ui-5ac2nd"
+ ;;
+ *"962UiGS-5HacT2HnT")
+ name="rb-962uigs-5hact2hnt"
+ ;;
+ *"LHG 5nD")
+ name="rb-lhg-5nd"
+ ;;
+ *"mAP 2nD"|\
+ *"mAP2nD")
+ name="rb-map-2nd"
+ ;;
+ *"mAP L-2nD"|\
+ *"mAPL-2nD")
+ name="rb-mapl-2nd"
+ ;;
+ *"SXT 2nD r3")
+ name="rb-sxt-2nd-r3"
+ ;;
+ *"SXT Lite2")
+ name="rb-sxt2n"
+ ;;
+ *"SXT Lite5")
+ name="rb-sxt5n"
+ ;;
+ *"wAP 2nD r2")
+ name="rb-wap-2nd"
+ ;;
+ *"wAP R-2nD"|\
+ *"wAPR-2nD")
+ name="rb-wapr-2nd"
+ ;;
+ *"wAP G-5HacT2HnD"|\
+ *"wAPG-5HacT2HnD")
+ name="rb-wapg-5hact2hnd"
+ ;;
+ esac
+
+ echo "$name"
+}
+
ar71xx_board_detect() {
local machine
local name
*"AP121-MINI")
name="ap121-mini"
;;
+ *"AP121F")
+ name="ap121f"
+ ;;
*"AP132 reference board")
name="ap132"
;;
*"AP90Q")
name="ap90q"
;;
+ *"AP91-5G")
+ name="ap91-5g"
+ ;;
+ *"Archer C25 v1")
+ name="archer-c25-v1"
+ ;;
*"Archer C5")
name="archer-c5"
;;
+ *"Archer C7 v4")
+ name="archer-c7-v4"
+ ;;
+ *"Archer C7 v5")
+ name="archer-c7-v5"
+ ;;
+ *"Archer C58 v1")
+ name="archer-c58-v1"
+ ;;
*"Archer C59 v1")
name="archer-c59-v1"
+ ;;
+ *"Archer C59 v2")
+ name="archer-c59-v2"
;;
*"Archer C60 v1")
name="archer-c60-v1"
;;
+ *"Archer C60 v2")
+ name="archer-c60-v2"
+ ;;
*"Archer C7")
name="archer-c7"
;;
name="bullet-m"
ubnt_xm_board_detect
;;
+ *"Bullet M XW")
+ name="bullet-m-xw"
+ ;;
*"BXU2000n-2 rev. A1")
name="bxu2000n-2-a1"
;;
*"CF-E320N v2")
name="cf-e320n-v2"
;;
+ *"CF-E355AC v1")
+ name="cf-e355ac-v1"
+ ;;
+ *"CF-E355AC v2")
+ name="cf-e355ac-v2"
+ ;;
+ *"CF-E375AC")
+ name="cf-e375ac"
+ ;;
*"CF-E380AC v1")
name="cf-e380ac-v1"
;;
*"CF-E380AC v2")
name="cf-e380ac-v2"
;;
+ *"CF-E385AC")
+ name="cf-e385ac"
+ ;;
*"CF-E520N")
name="cf-e520n"
;;
;;
*"CPE210/220")
name="cpe210"
- tplink_pharos_board_detect
+ tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')"
+ ;;
+ *"CPE210 v2")
+ name="cpe210-v2"
+ tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)"
+ ;;
+ *"CPE210 v3")
+ name="cpe210-v3"
+ tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)"
;;
*"CPE505N")
name="cpe505n"
;;
*"CPE510/520")
name="cpe510"
- tplink_pharos_board_detect
+ tplink_pharos_board_detect "$(tplink_pharos_v2_get_model_string)"
+ case $AR71XX_MODEL in
+ 'TP-Link CPE510 v2.0')
+ ;;
+ *)
+ tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')"
+ ;;
+ esac
;;
*"CPE830")
name="cpe830"
*"CR5000")
name="cr5000"
;;
+ *"DAP-1330 Rev. A1")
+ name="dap-1330-a1"
+ ;;
*"DAP-2695 rev. A1")
name="dap-2695-a1"
;;
*"Domino Pi")
name="gl-domino"
;;
+ *"DR342")
+ name="dr342"
+ ;;
*"DR344")
name="dr344"
;;
*"DW33D")
name="dw33d"
;;
+ *"E1700AC v2")
+ name="e1700ac-v2"
+ ;;
*"E2100L")
name="e2100l"
;;
+ *"E558 v2")
+ name="e558-v2"
+ ;;
+ *"E600G v2")
+ name="e600g-v2"
+ ;;
+ *"E600GAC v2")
+ name="e600gac-v2"
+ ;;
+ *"E750A v4")
+ name="e750a-v4"
+ ;;
+ *"E750G v8")
+ name="e750g-v8"
+ ;;
*"EAP120")
name="eap120"
- tplink_pharos_board_detect
+ tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')"
;;
*"EAP300 v2")
name="eap300v2"
*"EL-MINI")
name="el-mini"
;;
+ *"EmbWir-Balin")
+ name="ew-balin"
+ ;;
*"EmbWir-Dorin")
name="ew-dorin"
;;
*"ESR900")
name="esr900"
;;
- *"GL AR150")
+ *"eTactica EG-200")
+ name="rme-eg200"
+ ;;
+ *"FRITZ!Box 4020")
+ name="fritz4020"
+ ;;
+ *"FRITZ!WLAN Repeater 300E")
+ name="fritz300e"
+ ;;
+ *"FRITZ!WLAN Repeater 450E")
+ name="fritz450e"
+ ;;
+ *"GL-AR150")
name="gl-ar150"
;;
- *"GL AR300")
+ *"GL-AR300")
name="gl-ar300"
;;
*"GL-AR300M")
name="gl-ar300m"
;;
+ *"GL-AR750")
+ name="gl-ar750"
+ ;;
+ *"GL-AR750S")
+ name="gl-ar750s"
+ ;;
*"GL-CONNECT INET v1")
name="gl-inet"
*"GL-MIFI")
name="gl-mifi"
;;
+ *"GL-USB150")
+ name="gl-usb150"
+ ;;
*"HiveAP-121")
name="hiveap-121"
;;
*"JWAP230")
name="jwap230"
;;
+ *"Koala")
+ name="koala"
+ ;;
+ *"LAN Turtle")
+ name="lan-turtle"
+ ;;
*"Lima"*)
name="lima"
;;
+ *"Litebeam M5"*)
+ name="lbe-m5"
+ ;;
*"Loco M XW")
name="loco-m-xw"
;;
*"MAC1200R")
name="mc-mac1200r"
;;
+ "Mikrotik"*)
+ name=$(mikrotik_board_detect "$machine")
+ ;;
*"MiniBox V1.0")
name="minibox-v1"
;;
+ *"Minibox V3.2")
+ name="minibox-v3.2"
+ ;;
*"MR12")
name="mr12"
;;
*"MZK-W300NH")
name="mzk-w300nh"
;;
+ *"N5Q")
+ name="n5q"
+ ;;
*"Nanostation M")
name="nanostation-m"
ubnt_xm_board_detect
name="onion-omega"
;;
*"Oolite V1.0")
- name="oolite"
+ name="oolite-v1"
+ ;;
+ *"Packet Squirrel")
+ name="packet-squirrel"
+ ;;
+ *"Oolite V5.2")
+ name="oolite-v5.2"
+ ;;
+ *"Oolite V5.2-Dev")
+ name="oolite-v5.2-dev"
;;
*"PB42")
name="pb42"
*"Qihoo 360 C301")
name="qihoo-c301"
;;
+ *"R36A")
+ name="r36a"
+ ;;
*"R602N")
name="r602n"
;;
*"Rambutan"*)
name="rambutan"
;;
+ *"RE355")
+ name="re355"
+ ;;
*"RE450")
name="re450"
;;
*"Rocket M XW")
name="rocket-m-xw"
;;
- *"RouterBOARD 2011iL")
- name="rb-2011il"
- ;;
- *"RouterBOARD 2011L")
- name="rb-2011l"
- ;;
- *"RouterBOARD 2011UAS")
- name="rb-2011uas"
- ;;
- *"RouterBOARD 2011UAS-2HnD")
- name="rb-2011uas-2hnd"
- ;;
- *"RouterBOARD 2011UiAS")
- name="rb-2011uias"
- ;;
- *"RouterBOARD 2011UiAS-2HnD")
- name="rb-2011uias-2hnd"
- ;;
- *"RouterBOARD 411/A/AH")
- name="rb-411"
- ;;
- *"RouterBOARD 411U")
- name="rb-411u"
- ;;
- *"RouterBOARD 433/AH")
- name="rb-433"
- ;;
- *"RouterBOARD 433UAH")
- name="rb-433u"
- ;;
- *"RouterBOARD 435G")
- name="rb-435g"
- ;;
- *"RouterBOARD 450")
- name="rb-450"
- ;;
- *"RouterBOARD 450G")
- name="rb-450g"
- ;;
- *"RouterBOARD 493/AH")
- name="rb-493"
- ;;
- *"RouterBOARD 493G")
- name="rb-493g"
- ;;
- *"RouterBOARD 750")
- name="rb-750"
- ;;
- *"RouterBOARD 750 r2")
- name="rb-750-r2"
- ;;
- *"RouterBOARD 750GL")
- name="rb-750gl"
- ;;
- *"RouterBOARD 750UP r2")
- name="rb-750up-r2"
- ;;
- *"RouterBOARD 751")
- name="rb-751"
- ;;
- *"RouterBOARD 751G")
- name="rb-751g"
- ;;
- *"RouterBOARD 911G-2HPnD")
- name="rb-911g-2hpnd"
- ;;
- *"RouterBOARD 911G-5HPacD")
- name="rb-911g-5hpacd"
- ;;
- *"RouterBOARD 911G-5HPnD")
- name="rb-911g-5hpnd"
- ;;
- *"RouterBOARD 912UAG-2HPnD")
- name="rb-912uag-2hpnd"
- ;;
- *"RouterBOARD 912UAG-5HPnD")
- name="rb-912uag-5hpnd"
- ;;
- *"RouterBOARD 941-2nD")
- name="rb-941-2nd"
- ;;
- *"RouterBOARD 951G-2HnD")
- name="rb-951g-2hnd"
- ;;
- *"RouterBOARD 951Ui-2HnD")
- name="rb-951ui-2hnd"
- ;;
- *"RouterBOARD 951Ui-2nD")
- name="rb-951ui-2nd"
- ;;
- *"RouterBOARD 952Ui-5ac2nD")
- name="rb-952ui-5ac2nd"
- ;;
- *"RouterBOARD 962UiGS-5HacT2HnT")
- name="rb-962uigs-5hact2hnt"
- ;;
- *"RouterBOARD LHG 5nD")
- name="rb-lhg-5nd"
- ;;
- *"RouterBOARD mAP L-2nD")
- name="rb-mapl-2nd"
- ;;
- *"RouterBOARD SXT Lite2")
- name="rb-sxt2n"
- ;;
- *"RouterBOARD SXT Lite5")
- name="rb-sxt5n"
- ;;
*"RouterStation")
name="routerstation"
;;
*"RouterStation Pro")
name="routerstation-pro"
;;
+ *"RUT900")
+ name="rut900"
+ ;;
*"RW2458N")
name="rw2458n"
;;
*"SR3200")
name="sr3200"
;;
+ *"T830")
+ name="t830"
+ ;;
*"TellStick ZNet Lite")
name="tellstick-znet-lite"
;;
*"TL-MR3420 v2")
name="tl-mr3420-v2"
;;
- *TL-MR6400)
+ *"TL-MR6400")
name="tl-mr6400"
;;
*"TL-WA701ND v2")
*"TL-WA850RE v2")
name="tl-wa850re-v2"
;;
+ *"TL-WA855RE v1")
+ name="tl-wa855re-v1"
+ ;;
*"TL-WA860RE")
name="tl-wa860re"
;;
*"TL-WA901ND v4")
name="tl-wa901nd-v4"
;;
+ *"TL-WA901ND v5")
+ name="tl-wa901nd-v5"
+ ;;
*"TL-WDR3320 v2")
name="tl-wdr3320-v2"
;;
*"TL-WR1041N v2")
name="tl-wr1041n-v2"
;;
+ *"TL-WR1043N v5")
+ name="tl-wr1043n-v5"
+ ;;
*"TL-WR1043ND")
name="tl-wr1043nd"
;;
*"TL-WR810N")
name="tl-wr810n"
;;
+ *"TL-WR810N v2")
+ name="tl-wr810n-v2"
+ ;;
*"TL-WR840N v2")
name="tl-wr840n-v2"
;;
*"TL-WR842N/ND v3")
name="tl-wr842n-v3"
;;
+ *"TL-WR902AC v1")
+ name="tl-wr902ac-v1"
+ ;;
*"TL-WR940N v4")
name="tl-wr940n-v4"
;;
+ *"TL-WR940N v6")
+ name="tl-wr940n-v6"
+ ;;
*"TL-WR941N/ND v5")
name="tl-wr941nd-v5"
;;
*"TL-WR941ND")
name="tl-wr941nd"
;;
+ *"TL-WR942N v1")
+ name="tl-wr942n-v1"
+ ;;
+ *"TS-D084")
+ name="ts-d084"
+ ;;
*"Tube2H")
name="tube2h"
;;
;;
*"UniFi-AC-LITE/MESH")
name="unifiac-lite"
+ ubnt_unifi_ac_board_detect
;;
- *"UniFi-AC-PRO")
+ *"UniFi-AC-PRO/MESH-PRO")
name="unifiac-pro"
+ ubnt_unifi_ac_board_detect
;;
*"UniFiAP Outdoor")
name="unifi-outdoor"
*"UniFiAP Outdoor+")
name="unifi-outdoor-plus"
;;
+ *"WAM250")
+ name="wam250"
+ ;;
*"WBS210")
name="wbs210"
- tplink_pharos_board_detect
+ tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')"
;;
*"WBS510")
name="wbs510"
- tplink_pharos_board_detect
+ tplink_pharos_board_detect "$(tplink_pharos_get_model_string | tr -d '\r')"
;;
"WeIO"*)
name="weio"
;;
+ *"WI2A-AC200i")
+ name="wi2a-ac200i"
+ ;;
*"WHR-G301N")
name="whr-g301n"
;;
*"WHR-HP-GN")
name="whr-hp-gn"
;;
+ *"WiFi Pineapple NANO")
+ name="wifi-pineapple-nano"
+ ;;
*"WLAE-AG300N")
name="wlae-ag300n"
;;
echo "$AR71XX_BOARD_NAME" > /tmp/sysinfo/board_name
echo "$AR71XX_MODEL" > /tmp/sysinfo/model
}
-
-ar71xx_board_name() {
- local name
-
- [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
- [ -z "$name" ] && name="unknown"
-
- echo "$name"
-}