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_ac_lite_get_mtd_part_magic() {
+ubnt_unifi_ac_get_mtd_part_magic() {
ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x
}
-ubnt_ac_lite_board_detect() {
+ubnt_unifi_ac_board_detect() {
local model
local magic
- magic="$(ubnt_ac_lite_get_mtd_part_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}"
part=$(find_mtd_part 'product-info')
[ -z "$part" ] && return 1
- dd if=$part bs=1 skip=4360 count=64 2>/dev/null | tr -d '\r\0' | head -n 1
+ dd if=$part iflag=skip_bytes bs=64 skip=4360 count=1 2>/dev/null | tr -d '\r\0' | head -n 1
}
ar71xx_board_detect() {
;;
*"Archer C59 v1")
name="archer-c59-v1"
+ ;;
+ *"Archer C59 v2")
+ name="archer-c59-v2"
;;
*"Archer C60 v1")
name="archer-c60-v1"
name="bullet-m"
ubnt_xm_board_detect
;;
+ *"Bullet M XW")
+ name="bullet-m-xw"
+ ;;
*"BXU2000n-2 rev. A1")
name="bxu2000n-2-a1"
;;
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_get_model_string | tr -d '\r')"
+ 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"
*"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_get_model_string | tr -d '\r')"
*"MiniBox V1.0")
name="minibox-v1"
;;
+ *"Minibox V3.2")
+ name="minibox-v3.2"
+ ;;
*"MR12")
name="mr12"
;;
*"RouterBOARD 2011UiAS-2HnD")
name="rb-2011uias-2hnd"
;;
+ *"RouterBOARD 2011UiAS-2HnD r2")
+ name="rb-2011uias-2hnd-r2"
+ ;;
*"RouterBOARD 411/A/AH")
name="rb-411"
;;
*"RouterBOARD 921GS-5HPacD r2")
name="rb-921gs-5hpacd-r2"
;;
+ *"RouterBOARD 922UAGS-5HPacD")
+ name="rb-922uags-5hpacd"
+ ;;
*"RouterBOARD 931-2nD")
name="rb-931-2nd"
;;
- *"RouterBOARD 941-2nD")
+ *"RouterBOARD"*"941-2nD")
name="rb-941-2nd"
;;
*"RouterBOARD 951G-2HnD")
*"RouterBOARD mAP L-2nD")
name="rb-mapl-2nd"
;;
+ *"RouterBOARD SXT 2nD r3")
+ name="rb-sxt-2nd-r3"
+ ;;
*"RouterBOARD SXT Lite2")
name="rb-sxt2n"
;;
;;
*"UniFi-AC-LITE/MESH")
name="unifiac-lite"
- ubnt_ac_lite_board_detect
+ 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"