From b28f58dbd4e5ccb0e8bd85ac6957b59dad3da938 Mon Sep 17 00:00:00 2001 From: Tom Herbers Date: Thu, 8 Sep 2022 04:41:15 +0200 Subject: [PATCH] ath79-nand: add support for GL.iNet GL-XE300 The activated setup mode is indicated by the WLAN LED. Co-authored-by: David Bauer --- docs/user/supported_devices.rst | 1 + .../luasrc/lib/gluon/upgrade/250-cellular | 4 ++++ .../luasrc/usr/lib/lua/gluon/platform.lua | 1 + .../files/lib/gluon/setup-mode/rc.d/S96led | 12 ++++++++++-- .../luasrc/usr/lib/lua/gluon/setup-mode.lua | 14 ++++++++++++++ targets/ath79-nand | 3 +++ 6 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 package/gluon-setup-mode/luasrc/usr/lib/lua/gluon/setup-mode.lua diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst index 54b8e26e..79dfd780 100644 --- a/docs/user/supported_devices.rst +++ b/docs/user/supported_devices.rst @@ -143,6 +143,7 @@ ath79-nand - GL-AR300M - GL-AR750S + - GL-XE300 * Netgear diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/250-cellular b/package/gluon-core/luasrc/lib/gluon/upgrade/250-cellular index f428f67f..b60d8e6a 100755 --- a/package/gluon-core/luasrc/lib/gluon/upgrade/250-cellular +++ b/package/gluon-core/luasrc/lib/gluon/upgrade/250-cellular @@ -43,6 +43,10 @@ local function setup_ncm_qmi(devpath, control_type, delay) end if platform.match('ath79', 'nand', { + 'glinet,gl-xe300', +}) then + setup_ncm_qmi('/dev/cdc-wdm0', 'qmi', 15) +elseif platform.match('ath79', 'nand', { 'zte,mf281', }) then setup_ncm_qmi('/dev/ttyACM0', 'ncm', 15) diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua index 3301319e..2f09a8ad 100644 --- a/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua +++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/platform.lua @@ -73,6 +73,7 @@ end function M.is_cellular_device() if M.match('ath79', 'nand', { 'zte,mf281', + 'glinet,gl-xe300', }) then return true elseif M.match('ipq40xx', 'generic', { diff --git a/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S96led b/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S96led index c3ac6681..c456278f 100755 --- a/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S96led +++ b/package/gluon-setup-mode/files/lib/gluon/setup-mode/rc.d/S96led @@ -3,18 +3,26 @@ START=96 start() { + local custom_led + /etc/init.d/led start . /etc/diag.sh get_status_led 2> /dev/null - if [ -z $status_led ]; then + if [ -z "$status_led" ]; then status_led="$running" fi - if [ -z $status_led ]; then + + if [ -z "$status_led" ]; then status_led="$boot" fi + custom_led="$(lua -e 'print(require("gluon.setup-mode").get_status_led() or "")')" + if [ -z "$status_led" ]; then + status_led="$custom_led" + fi + status_led_set_timer 1000 300 } diff --git a/package/gluon-setup-mode/luasrc/usr/lib/lua/gluon/setup-mode.lua b/package/gluon-setup-mode/luasrc/usr/lib/lua/gluon/setup-mode.lua new file mode 100644 index 00000000..3b107bf9 --- /dev/null +++ b/package/gluon-setup-mode/luasrc/usr/lib/lua/gluon/setup-mode.lua @@ -0,0 +1,14 @@ +local platform = require 'gluon.platform' + + +local M = {} + +function M.get_status_led() + if platform.match('ath79', 'nand', { + 'glinet,gl-xe300', + }) then + return "green:wlan" + end +end + +return M diff --git a/targets/ath79-nand b/targets/ath79-nand index 757d24a1..7dff2453 100644 --- a/targets/ath79-nand +++ b/targets/ath79-nand @@ -23,6 +23,9 @@ device('gl.inet-gl-ar750s-nor', 'glinet_gl-ar750s-nor', { packages = ATH10K_PACKAGES_QCA9887, }) +device('gl.inet-gl-xe300', 'glinet_gl-xe300', { + factory = false, +}) -- Netgear