From 1e5f4f131942aa1bbbb2b8daef24329c15ee9f2a Mon Sep 17 00:00:00 2001
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Date: Sat, 3 Mar 2018 19:40:35 +0100
Subject: [PATCH] fff-wireless: Provide device-specific WiFi settings and set
 TX power
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Like the network.* files, this introduces wifi.* files to set
device-specific settings.

In contrast to the former, the wifi.* settings are only run during
firstboot and only if there is a file present.

In this patch, we set the antenna gain values for the devices not
treated correctly in OpenWRT.

Side conditions:
- The script requires 50-fff-boardname and 60-fff-wireless
  beforehand, so I chose 62 as number.
- The wifi command is not necessary, since after firstboot
  configurehood will run "wifi" in any case

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Fabian Bläse <fabian@blaese.de>
Signed-off-by: Tim Niemeyer <tim@tn-x.org>
- Changed to base on the ubnt board names
Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 src/packages/fff/fff-wireless/Makefile                   | 4 ++--
 .../files/etc/uci-defaults/62-config-wireless            | 9 +++++++++
 .../fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1       | 2 ++
 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m | 2 ++
 .../fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw       | 2 ++
 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-nano-m | 2 ++
 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-pico-m | 2 ++
 .../fff/fff-wireless/files/etc/wifi.ubnt-power-m-xw      | 2 ++
 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifi  | 3 +++
 .../fff/fff-wireless/files/etc/wifi.ubnt-unifiac-lite    | 3 +++
 10 files changed, 29 insertions(+), 2 deletions(-)
 create mode 100644 src/packages/fff/fff-wireless/files/etc/uci-defaults/62-config-wireless
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-nano-m
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-pico-m
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-power-m-xw
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifi
 create mode 100644 src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifiac-lite

diff --git a/src/packages/fff/fff-wireless/Makefile b/src/packages/fff/fff-wireless/Makefile
index c15b2f1d..c5486543 100644
--- a/src/packages/fff/fff-wireless/Makefile
+++ b/src/packages/fff/fff-wireless/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-wireless
-PKG_VERSION:=0.0.2
+PKG_VERSION:=6
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
@@ -13,7 +13,7 @@ define Package/$(PKG_NAME)
     CATEGORY:=Freifunk
     TITLE:= Freifunk-Franken wireless configuration
     URL:=http://www.freifunk-franken.de
-    DEPENDS:=+@ATH_USER_REGD +wireless-tools
+    DEPENDS:=+@ATH_USER_REGD +wireless-tools +fff-boardname
 endef
 
 define Package/$(PKG_NAME)/description
diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/62-config-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/62-config-wireless
new file mode 100644
index 00000000..f900b2c0
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/62-config-wireless
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Copyright 2018 Adrian Schmutzler
+# License GPLv3
+
+BOARD="$(uci get board.model.name)"
+
+if [ -s "/etc/wifi.$BOARD" ] ; then
+	. "/etc/wifi.$BOARD"
+fi
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1 b/src/packages/fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1
new file mode 100644
index 00000000..f1a7017f
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.tl-wr1043nd-v1
@@ -0,0 +1,2 @@
+uci -q set wireless.radio0.antenna_gain=3
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m
new file mode 100644
index 00000000..3c5110e4
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m
@@ -0,0 +1,2 @@
+uci -q set wireless.radio0.antenna_gain=9
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw
new file mode 100644
index 00000000..3c5110e4
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-loco-m-xw
@@ -0,0 +1,2 @@
+uci -q set wireless.radio0.antenna_gain=9
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-nano-m b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-nano-m
new file mode 100644
index 00000000..8b44ac83
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-nano-m
@@ -0,0 +1,2 @@
+uci -q set wireless.radio0.antenna_gain=11
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-pico-m b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-pico-m
new file mode 100644
index 00000000..2cac5233
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-pico-m
@@ -0,0 +1,2 @@
+uci -q set wireless.radio0.antenna_gain=12
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-power-m-xw b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-power-m-xw
new file mode 100644
index 00000000..9d3ff906
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-power-m-xw
@@ -0,0 +1,2 @@
+uci -q set wireless.radio0.antenna_gain=18
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifi b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifi
new file mode 100644
index 00000000..903c7b6a
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifi
@@ -0,0 +1,3 @@
+# No support for Unifi AP Pro!
+uci -q set wireless.radio0.antenna_gain=3
+uci -q commit wireless
diff --git a/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifiac-lite b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifiac-lite
new file mode 100644
index 00000000..9b4438d9
--- /dev/null
+++ b/src/packages/fff/fff-wireless/files/etc/wifi.ubnt-unifiac-lite
@@ -0,0 +1,3 @@
+uci -q set wireless.radio0.antenna_gain=4
+uci -q set wireless.radio1.antenna_gain=3
+uci -q commit wireless
-- 
GitLab