[1/3] OpenWRT/fff-boardname: Add board detection for UBNT AC-Mesh

Submitted by Adrian Schmutzler on March 19, 2018, 3:50 p.m.

Details

Message ID 1521474619-39512-1-git-send-email-freifunk@adrianschmutzler.de
State Deferred
Headers show

Commit Message

Adrian Schmutzler March 19, 2018, 3:50 p.m.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

---

This patch is independent of other unreviewed patches.
---
 ...71xx-add-board-detection-for-UBNT-AC-Mesh.patch | 61 ++++++++++++++++++++++
 src/packages/fff/fff-boardname/Makefile            |  2 +-
 .../files/etc/uci-defaults/50-fff-boardname        |  1 +
 .../fff-network/ar71xx/network.ubnt-unifiac-mesh   | 13 +++++
 4 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100644 build_patches/openwrt/0030-ar71xx-add-board-detection-for-UBNT-AC-Mesh.patch
 create mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh

Patch hide | download patch | download mbox

diff --git a/build_patches/openwrt/0030-ar71xx-add-board-detection-for-UBNT-AC-Mesh.patch b/build_patches/openwrt/0030-ar71xx-add-board-detection-for-UBNT-AC-Mesh.patch
new file mode 100644
index 0000000..fcbe0b6
--- /dev/null
+++ b/build_patches/openwrt/0030-ar71xx-add-board-detection-for-UBNT-AC-Mesh.patch
@@ -0,0 +1,61 @@ 
+From 5ec9f9f0164c04ae8edef1ed7945b8d685ee360c Mon Sep 17 00:00:00 2001
+From: David Bauer <mail@david-bauer.net>
+Date: Sun, 25 Feb 2018 12:09:38 +0100
+Subject: [PATCH] ar71xx: add board detection for UBNT AC-Mesh
+
+This commit adds correct model detection for UniFi
+AC-Mesh. Previously said device was incorrectly detected
+as UniFi AC-Lite.
+
+The Information about the device is stored at 0xC in the EEPROM
+partition. It corresponds to the sysid in /etc/board.info of the
+Ubiquiti stock firmware.
+
+Signed-off-by: David Bauer <mail@david-bauer.net>
+---
+ target/linux/ar71xx/base-files/lib/ar71xx.sh | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
+index 58e92ab..ad96c3e 100755
+--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
++++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
+@@ -98,6 +98,27 @@ ubnt_xm_board_detect() {
+ 	[ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}"
+ }
+ 
++ubnt_ac_lite_get_mtd_part_magic() {
++	ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x
++}
++
++ubnt_ac_lite_board_detect() {
++	local model
++	local magic
++
++	magic="$(ubnt_ac_lite_get_mtd_part_magic)"
++	case ${magic:0:4} in
++	"e517")
++		model="Ubiquiti UniFi-AC-LITE"
++		;;
++	"e557")
++		model="Ubiquiti UniFi-AC-MESH"
++		;;
++	esac
++
++	[ -z "$model" ] || AR71XX_MODEL="${model}"
++}
++
+ cybertan_get_hw_magic() {
+ 	local part
+ 
+@@ -1105,6 +1126,7 @@ ar71xx_board_detect() {
+ 		;;
+ 	*"UniFi-AC-LITE")
+ 		name="unifiac-lite"
++		ubnt_ac_lite_board_detect
+ 		;;
+ 	*"UniFi-AC-PRO")
+ 		name="unifiac-pro"
+-- 
+2.7.4
+
diff --git a/src/packages/fff/fff-boardname/Makefile b/src/packages/fff/fff-boardname/Makefile
index d7ccd00..6a48b3a 100644
--- a/src/packages/fff/fff-boardname/Makefile
+++ b/src/packages/fff/fff-boardname/Makefile
@@ -1,7 +1,7 @@ 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-boardname
-PKG_VERSION:=5
+PKG_VERSION:=6
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
diff --git a/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-boardname b/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-boardname
index db2f253..049f130 100644
--- a/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-boardname
+++ b/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-boardname
@@ -46,6 +46,7 @@  case "$BOARD" in
         ;;
     unifiac-lite)
         BOARD=ubnt-unifiac-lite
+        grep -i "MESH" /var/sysinfo/model && BOARD=ubnt-unifiac-mesh
         ;;
     tl-wa850re)
         BOARD=tl-wa850re-v1
diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh
new file mode 100644
index 0000000..15efcb0
--- /dev/null
+++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh
@@ -0,0 +1,13 @@ 
+WANDEV=eth0
+SWITCHDEV=eth0
+CLIENT_PORTS=""
+WAN_PORTS=""
+BATMAN_PORTS=""
+ONE_PORT="YES"
+
+. /etc/network.mode
+. /lib/functions/system.sh
+. /lib/functions/uci-defaults.sh
+. /lib/ar71xx.sh
+
+ROUTERMAC=$(mtd_get_mac_binary EEPROM 0x0)
\ No newline at end of file

Comments

Adrian Schmutzler March 19, 2018, 3:51 p.m.
Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Siehe:

https://monitoring.freifunk-franken.de/mac/f0:9f:c2:dc:c3:38


> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Adrian Schmutzler
> Sent: Montag, 19. März 2018 16:50
> To: franken-dev@freifunk.net
> Subject: [PATCH 1/3] OpenWRT/fff-boardname: Add board detection for
> UBNT AC-Mesh
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> ---
> 
> This patch is independent of other unreviewed patches.
> ---
>  ...71xx-add-board-detection-for-UBNT-AC-Mesh.patch | 61
> ++++++++++++++++++++++
>  src/packages/fff/fff-boardname/Makefile            |  2 +-
>  .../files/etc/uci-defaults/50-fff-boardname        |  1 +
>  .../fff-network/ar71xx/network.ubnt-unifiac-mesh   | 13 +++++
>  4 files changed, 76 insertions(+), 1 deletion(-)  create mode 100644
> build_patches/openwrt/0030-ar71xx-add-board-detection-for-UBNT-AC-
> Mesh.patch
>  create mode 100644 src/packages/fff/fff-network/ar71xx/network.ubnt-
> unifiac-mesh
> 
> diff --git a/build_patches/openwrt/0030-ar71xx-add-board-detection-for-
> UBNT-AC-Mesh.patch b/build_patches/openwrt/0030-ar71xx-add-board-
> detection-for-UBNT-AC-Mesh.patch
> new file mode 100644
> index 0000000..fcbe0b6
> --- /dev/null
> +++ b/build_patches/openwrt/0030-ar71xx-add-board-detection-for-UBNT-
> AC-
> +++ Mesh.patch
> @@ -0,0 +1,61 @@
> +From 5ec9f9f0164c04ae8edef1ed7945b8d685ee360c Mon Sep 17 00:00:00
> 2001
> +From: David Bauer <mail@david-bauer.net>
> +Date: Sun, 25 Feb 2018 12:09:38 +0100
> +Subject: [PATCH] ar71xx: add board detection for UBNT AC-Mesh
> +
> +This commit adds correct model detection for UniFi AC-Mesh. Previously
> +said device was incorrectly detected as UniFi AC-Lite.
> +
> +The Information about the device is stored at 0xC in the EEPROM
> +partition. It corresponds to the sysid in /etc/board.info of the
> +Ubiquiti stock firmware.
> +
> +Signed-off-by: David Bauer <mail@david-bauer.net>
> +---
> + target/linux/ar71xx/base-files/lib/ar71xx.sh | 22
> +++++++++++++++++++++++
> + 1 file changed, 22 insertions(+)
> +
> +diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh
> +b/target/linux/ar71xx/base-files/lib/ar71xx.sh
> +index 58e92ab..ad96c3e 100755
> +--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
> ++++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
> +@@ -98,6 +98,27 @@ ubnt_xm_board_detect() {
> + 	[ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}"
> + }
> +
> ++ubnt_ac_lite_get_mtd_part_magic() {
> ++	ar71xx_get_mtd_offset_size_format EEPROM 12 2 %02x }
> ++
> ++ubnt_ac_lite_board_detect() {
> ++	local model
> ++	local magic
> ++
> ++	magic="$(ubnt_ac_lite_get_mtd_part_magic)"
> ++	case ${magic:0:4} in
> ++	"e517")
> ++		model="Ubiquiti UniFi-AC-LITE"
> ++		;;
> ++	"e557")
> ++		model="Ubiquiti UniFi-AC-MESH"
> ++		;;
> ++	esac
> ++
> ++	[ -z "$model" ] || AR71XX_MODEL="${model}"
> ++}
> ++
> + cybertan_get_hw_magic() {
> + 	local part
> +
> +@@ -1105,6 +1126,7 @@ ar71xx_board_detect() {
> + 		;;
> + 	*"UniFi-AC-LITE")
> + 		name="unifiac-lite"
> ++		ubnt_ac_lite_board_detect
> + 		;;
> + 	*"UniFi-AC-PRO")
> + 		name="unifiac-pro"
> +--
> +2.7.4
> +
> diff --git a/src/packages/fff/fff-boardname/Makefile
b/src/packages/fff/fff-
> boardname/Makefile
> index d7ccd00..6a48b3a 100644
> --- a/src/packages/fff/fff-boardname/Makefile
> +++ b/src/packages/fff/fff-boardname/Makefile
> @@ -1,7 +1,7 @@
>  include $(TOPDIR)/rules.mk
> 
>  PKG_NAME:=fff-boardname
> -PKG_VERSION:=5
> +PKG_VERSION:=6
>  PKG_RELEASE:=1
> 
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
> diff --git a/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-
> boardname b/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-
> boardname
> index db2f253..049f130 100644
> --- a/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-
> boardname
> +++ b/src/packages/fff/fff-boardname/files/etc/uci-defaults/50-fff-board
> +++ name
> @@ -46,6 +46,7 @@ case "$BOARD" in
>          ;;
>      unifiac-lite)
>          BOARD=ubnt-unifiac-lite
> +        grep -i "MESH" /var/sysinfo/model && BOARD=ubnt-unifiac-mesh
>          ;;
>      tl-wa850re)
>          BOARD=tl-wa850re-v1
> diff --git a/src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh
> b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh
> new file mode 100644
> index 0000000..15efcb0
> --- /dev/null
> +++ b/src/packages/fff/fff-network/ar71xx/network.ubnt-unifiac-mesh
> @@ -0,0 +1,13 @@
> +WANDEV=eth0
> +SWITCHDEV=eth0
> +CLIENT_PORTS=""
> +WAN_PORTS=""
> +BATMAN_PORTS=""
> +ONE_PORT="YES"
> +
> +. /etc/network.mode
> +. /lib/functions/system.sh
> +. /lib/functions/uci-defaults.sh
> +. /lib/ar71xx.sh
> +
> +ROUTERMAC=$(mtd_get_mac_binary EEPROM 0x0)
> \ No newline at end of file
> --
> 2.7.4
> 
> --
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net