[openwrt/openwrt] comgt: add quirk for Mikrotik modems based on Mikrotik R11e-LTE6

LEDE Commits lede-commits at lists.infradead.org
Wed Mar 29 08:33:18 PDT 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/91eca7b04ff1309c7408baa1f1631d7623ce50cf

commit 91eca7b04ff1309c7408baa1f1631d7623ce50cf
Author: Szabolcs Hubai <szab.hu at gmail.com>
AuthorDate: Fri Mar 24 22:24:26 2023 +0100

    comgt: add quirk for Mikrotik modems based on Mikrotik R11e-LTE6
    
    The MikroTik R11e-LTE6 modem goes into flight mode (CFUN=4) at startup
    and the radio is off (*RADIOPOWER: 0):
    
        AT+RESET
        OK
    
        OK
    
        *SIMDETEC:2,NOS
    
        *SIMDETEC:1,SIM
    
        *ICCID: 8936500119010596302
    
        *EUICC: 1
    
        +MSTK: 11, D025....74F3
    
        *ADMINDATA: 0, 2, 0
    
        +CPIN: READY
    
        *EUICC: 1
    
        *ECCLIST: 5, 0, 112, 0, 000, 0, 08, 0, 118, 0, 911
    
        +CREG: 0
    
        $CREG: 0
    
        +CESQ: 99,99,255,255,255,255
    
        *CESQ: 99,99,255,255,255,255,0
    
        +CGREG: 0
    
        +CEREG: 0
    
        +CESQ: 99,99,255,255,255,255
    
        *CESQ: 99,99,255,255,255,255,0
    
        *RADIOPOWER: 0
    
        +MMSG: 0, 0
    
        +MMSG: 0, 0
    
        +MMSG: 1, 0
    
        +MPBK: 1
    
    While the chat script is able to establish the PPP connection,
    it's closed instantly by the modem: LCP terminated by peer.
    
        local2.info chat[7000]: send (ATD*99***1#^M)
        local2.info chat[7000]: expect (CONNECT)
        local2.info chat[7000]: ^M
        local2.info chat[7000]: ATD*99***1#^M^M
        local2.info chat[7000]: CONNECT
        local2.info chat[7000]:  -- got it
        local2.info chat[7000]: send ( ^M)
        daemon.info pppd[6997]: Serial connection established.
        kern.info kernel: [  453.659146] 3g-mikrotik: renamed from ppp0
        daemon.info pppd[6997]: Renamed interface ppp0 to 3g-mikrotik
        daemon.info pppd[6997]: Using interface 3g-mikrotik
        daemon.notice pppd[6997]: Connect: 3g-mikrotik <--> /dev/ttyACM0
        daemon.info pppd[6997]: LCP terminated by peer
        daemon.notice pppd[6997]: Connection terminated.
        daemon.notice pppd[6997]: Modem hangup
        daemon.info pppd[6997]: Exit.
        daemon.notice netifd: Interface 'mikrotik' is now down
    
    Sending "AT+CFUN=1" to modem deactivates the flight mode and
    solves the issue:
    
        daemon.notice netifd: Interface 'mikrotik' is setting up now
        daemon.notice netifd: mikrotik (7051): sending -> AT+CFUN=1
        daemon.notice pppd[7137]: pppd 2.4.9 started by root, uid 0
        local2.info chat[7140]: abort on (BUSY)
        local2.info chat[7140]: abort on (NO CARRIER)
        local2.info chat[7140]: abort on (ERROR)
        local2.info chat[7140]: report (CONNECT)
        local2.info chat[7140]: timeout set to 10 seconds
        local2.info chat[7140]: send (AT&F^M)
        local2.info chat[7140]: expect (OK)
        local2.info chat[7140]: ^M
        local2.info chat[7140]: +CESQ: 99,99,255,255,255,255^M
        local2.info chat[7140]: ^M
        local2.info chat[7140]: *CESQ: 99,99,255,255,255,255,0^M
        local2.info chat[7140]: AT&F^MAT&F^M^M
        local2.info chat[7140]: OK
        local2.info chat[7140]:  -- got it
        ...
        local2.info chat[7140]: send (ATD*99***1#^M)
        local2.info chat[7140]: expect (CONNECT)
        local2.info chat[7140]: ^M
        local2.info chat[7140]: ATD*99***1#^M^M
        local2.info chat[7140]: CONNECT
        local2.info chat[7140]:  -- got it
        local2.info chat[7140]: send ( ^M)
        daemon.info pppd[7137]: Serial connection established.
        kern.info kernel: [  463.094254] 3g-mikrotik: renamed from ppp0
        daemon.info pppd[7137]: Renamed interface ppp0 to 3g-mikrotik
        daemon.info pppd[7137]: Using interface 3g-mikrotik
        daemon.notice pppd[7137]: Connect: 3g-mikrotik <--> /dev/ttyACM0
        daemon.warn pppd[7137]: Could not determine remote IP address: defaulting to 10.64.64.64
        daemon.notice pppd[7137]: local  IP address 100.112.63.62
        daemon.notice pppd[7137]: remote IP address 10.64.64.64
        daemon.notice pppd[7137]: primary   DNS address 185.29.83.64
        daemon.notice pppd[7137]: secondary DNS address 185.62.131.64
        daemon.notice netifd: Network device '3g-mikrotik' link is up
        daemon.notice netifd: Interface 'mikrotik' is now up
    
    To send this AT command to the modem the "runcommand.gcom" script
    dependency is moved from comgt-ncm to comgt.
    As the comgt-ncm package depends on comgt already, this change
    is a NOOP from that point of view.
    But from the modem's point it is a low hanging fruit as the modem
    is usable with installing comgt and kmod-usb-ncm packages.
    
    Signed-off-by: Szabolcs Hubai <szab.hu at gmail.com>
---
 package/network/utils/comgt/Makefile    | 4 ++--
 package/network/utils/comgt/files/3g.sh | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/package/network/utils/comgt/Makefile b/package/network/utils/comgt/Makefile
index 24dae2521e..429c938602 100644
--- a/package/network/utils/comgt/Makefile
+++ b/package/network/utils/comgt/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=comgt
 PKG_VERSION:=0.32
-PKG_RELEASE:=34
+PKG_RELEASE:=35
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=@SF/comgt
@@ -79,6 +79,7 @@ define Package/comgt/install
 	$(INSTALL_DATA) ./files/getcarrier.gcom $(1)/etc/gcom/getcarrier.gcom
 	$(INSTALL_DATA) ./files/getcnum.gcom $(1)/etc/gcom/getcnum.gcom
 	$(INSTALL_DATA) ./files/getimsi.gcom $(1)/etc/gcom/getimsi.gcom
+	$(INSTALL_DATA) ./files/runcommand.gcom $(1)/etc/gcom/runcommand.gcom
 	$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
 	$(INSTALL_CONF) ./files/3g.usb $(1)/etc/hotplug.d/tty/30-3g
 	$(INSTALL_DIR) $(1)/lib/netifd/proto
@@ -96,7 +97,6 @@ endef
 define Package/comgt-ncm/install
 	$(INSTALL_DIR) $(1)/etc/gcom
 	$(INSTALL_DATA) ./files/ncm.json $(1)/etc/gcom/ncm.json
-	$(INSTALL_DATA) ./files/runcommand.gcom $(1)/etc/gcom/runcommand.gcom
 	$(INSTALL_DIR) $(1)/lib/netifd/proto
 	$(INSTALL_BIN) ./files/ncm.sh $(1)/lib/netifd/proto/ncm.sh
 endef
diff --git a/package/network/utils/comgt/files/3g.sh b/package/network/utils/comgt/files/3g.sh
index 9220cbf5a0..42ba894e59 100644
--- a/package/network/utils/comgt/files/3g.sh
+++ b/package/network/utils/comgt/files/3g.sh
@@ -72,6 +72,8 @@ proto_3g_setup() {
 					*) CODE="2,2";;
 				esac
 				export MODE="AT^SYSCFG=${CODE},3FFFFFFF,2,4"
+			elif echo "$cardinfo" | grep -q "MikroTik"; then
+				COMMAND="AT+CFUN=1" gcom -d "$device" -s /etc/gcom/runcommand.gcom || return 1
 			fi
 
 			if [ -n "$pincode" ]; then




More information about the lede-commits mailing list