Page 1 of 1

FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Mon Jul 16, 2018 10:08 pm
by nontheist
I just flashed a dev build from ofmodemsandmen and they mention doing some builds for The Wireless Haven. Not sure if this is the best place to post this but this is a link to the dev builds.

UPDATE 03-08-2019: Our latest WiFiX 2019 version of GoldenOrb contains an internal ping script that runs in the background that resets/reboots the modem upon loss of internet. As always when upgrading a router's firmware, be certain to UNCHECK the box to Save Settings.

All GoldenOrb 2019 stock firmware builds.

The OEM firmware for the WE826 and the WG3526 | WE1326 can be downloaded from HERE

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Jul 20, 2018 11:43 am
by curdean
If I tried this firmware, and I wanted to return back to the current golden orb, how would I do that? When I go to the firmware flashing option, it returns an error about not being a correct image format.
Thank you
Curdean

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Jul 20, 2018 11:53 am
by JimHelms
curdean wrote: Fri Jul 20, 2018 11:43 am If I tried this firmware, and I wanted to return back to the current golden orb, how would I do that?
If you are down grading from a newer kernel you can use the boot loader mode.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Jul 20, 2018 12:22 pm
by curdean
JimHelms wrote: Fri Jul 20, 2018 11:53 am If you are down grading from a newer kernel you can use the boot loader mode.
thank you.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Aug 08, 2018 10:31 pm
by RockinBandit
New GO Image for WE826 released today.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Oct 10, 2018 4:36 pm
by jameshilliard
So I recently bought a WG3526-P with the MC7455 LTE modem and needed to update the firmware on the MC7455 but it seems these firmware builds don't have the correct firmware update tools compiled in for some reason, I was able to update it using these firmware files successfully after compiling my own custom OpenWRT firmware with the modemmanager packages.
These are the commands I used to update it:

Code: Select all

qmicli -d /dev/cdc-wdm0 --dms-set-firmware-preference="02.30.01.01,002.045_000,GENERIC"
qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=offline
qmicli -d /dev/cdc-wdm0 --dms-set-operating-mode=reset
qmi-firmware-update --update-qdl -t /dev/ttyUSB0 SWI9X30C_02.30.01.01.cwe SWI9X30C_02.30.01.01_GENERIC_002.045_000.nvu
FYI the SWI9X30C_02.30.01.01.cwe firmware update file is too large to fit on the onboard flash so I had to put it on a SD card(see this guide for mounting the SD card).

Is there any reason why these tools aren't built into the WiFiX firmware already? I couldn't find another way to update the MC7455 without taking the card out of the router and putting it in an adapter(which I don't have) and connecting to a normal computer to do the update.

By the way where can I find the source code for the WiFiX firmware, it's different from the GoldenOrb firmware source I assume?

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Oct 10, 2018 5:41 pm
by JimHelms
jameshilliard wrote: Wed Oct 10, 2018 4:36 pm So I recently bought a WG3526-P with the MC7455 LTE modem and needed to update the firmware on the MC7455 but it seems these firmware builds don't have the correct firmware update tools compiled in for some reason
Yes, this would be a great tool to have compiled into the GoldenOrb firmware.
Is there any reason why these tools aren't built into the WiFiX firmware already? I couldn't find another way to update the MC7455 without taking the card out of the router and putting it in an adapter(which I don't have) and connecting to a normal computer to do the update.
There is no specific reason. I generally use a USB to Mini PCI-E adapter to update the firmware or the Sierra Wireless AirVantage platform.

GoldenOrb/ROOter has been around for a good while, but only in the past year has it implemented the drivers and support for the line of Sierra Wireless (and other Mini PCI-e and M.2) modems. The firmware update addition is well worth exploring.

By the way where can I find the source code for the WiFiX firmware, it's different from the GoldenOrb firmware source I assume?
The WiFiX uses a newer kernel that the stable release of GoldenOrb, but it uses the same ROOter packages with a small amount of customization.

You may try THIS which is fairly new. Or, you might want to visit the Whirlpool forum and ask about the latest source code.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Oct 10, 2018 6:00 pm
by jameshilliard
JimHelms wrote: Wed Oct 10, 2018 5:41 pm Yes, this would be a great tool to have compiled into the GoldenOrb firmware.
I'll attach my build to this post in case anyone needs it, it's essentially stock OpenWRT master with the modemmanager package feed added. I also compiled in the necessary packages for mounting and formatting the SD card. I'm able to flash back and forth between it and the The Wireless Haven GoldenOrb/ROOter builds using the normal webif sysupgrade.
JimHelms wrote: Wed Oct 10, 2018 5:41 pm There is no specific reason. I generally use a USB to Mini PCI-E adapter to update the firmware or the Sierra Wireless AirVantage platform.

GoldenOrb/ROOter has been around for a good while, but only in the past year has it implemented the drivers and support for the line of Sierra Wireless (and other Mini PCI-e and M.2) modems. The firmware update addition is well worth exploring.
I wonder if modemmanager conflicts with the GoldenOrb/ROOter customizations, it seems to use the mmcli tool for configuration of the LTE modem instead of raw AT commands like GoldenOrb/ROOter. Using raw AT commands seems a bit sketchy to me and I suspect it may be the source of reliability issues.
JimHelms wrote: Wed Oct 10, 2018 5:41 pm The WiFiX uses a newer kernel that the stable release of GoldenOrb, but it uses the same ROOter packages with a small amount of customization.

You might want to visit the Whirlpool forum and ask about the source code.
I did a github search and think I found it here.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Thu Oct 11, 2018 4:46 am
by jameshilliard
I managed to get my WG3526-P to connect to sprint using my custom OpenWRT build(I'm attaching an updated version where I removed a package that could potentially conflict with modemmanager), I had to manually configure a number of the settings.

I set these AT commands, I'm not entirely sure if these are all necessary or if there's a way to do this without using the AT command interface(modemmanager is designed to be used without having to use manual AT commands), the command syntax is a little different from normal, you must escape quotes otherwise you will get errors and you should not put "AT" at the start like normal as mmcli automatically adds it to the start of the command:

Code: Select all

mmcli -m 0 --command=!entercnd=\"A710\"
mmcli -m 0 --command=!usbcomp = 1,1,1009
mmcli -m 0 --command=!selrat=06
mmcli -m 0 --command=!custom=\"IPV6ENABLE\",1
mmcli -m 0 --command=!reset
The mmcli AT command interface only works when you run modemmanager in debug mode, to do this edit the file /etc/init.d/modemmanager and change

Code: Select all

procd_set_param command /usr/sbin/ModemManager
to

Code: Select all

procd_set_param command /usr/sbin/ModemManager --debug
and reboot or restart the modemmanager service.

You'll need to add an entry like this for modemmanager in /etc/config/network, make sure the "option device" line matches what you see in "mmcli -m 0" under System->device, note that the -m flag selects the modem(usually you only have one), you can get a list of your modems using "mmcli -L":

Code: Select all

config interface 'broadband'
	option device '/sys/devices/platform/1e1c0000.xhci/usb1/1-2'
	option proto 'modemmanager'
	option apn 'n.ispsn'
You'll also need to add the "broadband"(or whatever you name the interface in /etc/config/network) interface to the wan zone in /etc/config/firewall otherwise only the router itself will have internet access and not any LAN clients:

Code: Select all

config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'
	option network 'wan wan6 broadband'
Once I got this working it appears to be more reliable at reconnecting and maintaining a connection compared to other firmware builds probably since modemmanager automatically handles a lot of things instead of a bunch of shell scripts doing AT commands like GoldenOrb/ROOter uses.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Oct 12, 2018 7:20 pm
by jameshilliard
I found that the bearer can sometimes get stuck in a disconnected state, you can run this script as a cronjob every minute to fix it:

Code: Select all

#!/bin/sh

# save dog.sh in /root/dog.sh. 
# You can use winscp with scp protocol to do this.
# Using ssh set executation permission and replace the crontab:
# chmod +x /root/dog.sh
# echo "* * * * * /root/dog.sh" | crontab -

modemmanager_get_field() {
  local text=$1
  local inblock=$2
  local infield=$3
  local fieldindex=${4:-0}

  [ -z "${text}" ] || [ -z "${infield}" ] || [ -z "${inblock}" ] && return

  # Sample output:
  #
  # /org/freedesktop/ModemManager1/Modem/0 (device id '391a4fbdb14113ecdd101a23c927ab1e82c51a8e')
  # -------------------------
  # Hardware |   manufacturer: 'QUALCOMM INCORPORATED'
  #      |      model: '8'
  #      |     revision: '8200C-FACPASZQ-30350  1  [Dec 15 2011 15:00:00]'
  #      |    supported: 'gsm-umts'
  #      |      current: 'gsm-umts'
  #      |   equipment id: '863745010845895'
  # -------------------------
  # System   |       device: '/sys/devices/pci0000:00/0000:00:16.0/usb1/1-1/1-1.3'
  #      |      drivers: 'option, qmi_wwan'
  #      |       plugin: 'Generic'
  #      |   primary port: 'cdc-wdm0'
  #      |      ports: 'ttyUSB0 (qcdm), ttyUSB2 (at), cdc-wdm0 (qmi), wwan0 (net)'
  # -------------------------
  # Numbers  |       own : 'unknown'
  # -------------------------
  # Status   |       lock: 'sim-pin2'
  #      | unlock retries: 'sim-pin (3), sim-pin2 (3), sim-puk (10), sim-puk2 (10)'
  #      |      state: 'registered'
  #      |    power state: 'on'
  #      |    access tech: 'umts'
  #      | signal quality: '54' (recent)
  # -------------------------
  # Modes  |    supported: 'allowed: 2g; preferred: none
  #      |          allowed: 3g; preferred: none
  #      |          allowed: 2g, 3g; preferred: none
  #      |          allowed: 2g, 3g; preferred: 2g
  #      |          allowed: 2g, 3g; preferred: 3g'
  #      |      current: 'allowed: any; preferred: none'
  # -------------------------
  # Bands  |    supported: 'unknown'
  #      |      current: 'unknown'
  # -------------------------
  # IP     |    supported: 'ipv4, ipv6, ipv4v6'
  # -------------------------
  # 3GPP   |       imei: '863745010845895'
  #      |  enabled locks: 'none'
  #      |    operator id: '21401'
  #      |  operator name: 'vodafone ES'
  #      |   subscription: 'unknown'
  #      |   registration: 'home'
  # -------------------------
  # SIM    |       path: '/org/freedesktop/ModemManager1/SIM/0'
  #
  # -------------------------
  # Bearers  |      paths: 'none'

  # Iterate block by block
  echo ${text} | awk '{
      split($0,array,"-------------------------")
      for(i in array) {
        print array[i];
      }
    }' | while read -r line ; do
    # Look for a matching block title
    local block=$(echo ${line} | awk -F '\|' '{print $1}')
    block="$(echo -e "${block}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
    [ "${block}" = "${inblock}" ] && {
      # Iterate field by field
      echo ${line} | awk '{
          split($0,array,"|")
          for(i in array) {
            print array[i];
          }
        }' | while read -r subline ; do
        local field=$(echo ${subline} | awk -F ':' '{print $1}')
        field="$(echo -e "${field}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
        [ "${field}" = "${infield}" ] && {
          local realindex=$(expr 2 \* ${fieldindex} + 2)
          local value=$(echo ${subline} | awk -F "'" "{print \$${realindex}}")
          echo "$value"
          return 0
        }
      done
    }
  done

  # Not found
  return 2
}

modemmanager_list_bearers() {
  /usr/bin/mmcli --modem $1 --list-bearers | grep "/org/freedesktop/ModemManager1/Bearer/" 2>/dev/null
}

modemmanager_get_bearer() {
  local device="$1"

  local bearers n_bearers

  bearers=$(modemmanager_list_bearers "${device}")
  n_bearers=$(echo "${bearers}" | wc -l)
  [ ${n_bearers} -eq 1 ] || return
  echo $bearers
}

# Load connected bearer information
device="0"
bearerpath=$(modemmanager_get_bearer "${device}")
bearerstatus=$(/usr/bin/mmcli --bearer "${bearerpath}")

# Load network interface and method information
beareriface=$(modemmanager_get_field "${bearerstatus}" "Status" "interface")
bearermethod=$(modemmanager_get_field "${bearerstatus}" "IPv4 configuration" "method")
echo "connection setup required in interface ${beareriface}: ${bearermethod}"
if [ $bearermethod = "unknown" ]; then
  echo "connection reset required in interface ${beareriface}: ${bearermethod}"
  ifup broadband
fi

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Oct 24, 2018 3:37 pm
by latic
James

Just letting you know that your image and config files (network, firewall, modem manager) work with a reset MC7455 and do not require a mode adjust (QMI mode fully working).

Going to run this to see if i'm still getting disconnects etc. before trying a firmware upgrade.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Oct 24, 2018 3:46 pm
by JimHelms
JamesO'Hara wrote: Wed Oct 24, 2018 3:37 pm
Going to run this to see if i'm still getting disconnects etc. before trying a firmware upgrade.
Nice, I almost installed it myself on a unit to test...and have added it to list of things I would sure like to do.

Please keep us updated on how it works out.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Mon Feb 25, 2019 8:14 am
by Twoods196
Any updates on this firmware? As it would be nice to have modemmanager but seems no responses since October.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Mon Feb 25, 2019 9:06 am
by JimHelms
Twoods196 wrote: Mon Feb 25, 2019 8:14 am Any updates on this firmware? As it would be nice to have modemmanager but seems no responses since October.
For which router?

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Sep 06, 2019 12:22 pm
by jameshilliard
Here's a new build for the WG3526 with updated OpenWRT and modemmanager, seems a little more reliable.
openwrt-ramips-mt7621-zbt-wg3526-16M-squashfs-sysupgrade.bin.zip
The previous cronjob doesn't work with this version, this new one should:

Code: Select all

#!/bin/sh

# save dog.sh in /root/dog.sh. 
# You can use winscp with scp protocol to do this.
# Using ssh set executation permission and replace the crontab:
# chmod +x /root/dog.sh
# echo "* * * * * /root/dog.sh" | crontab -

# This method expects as first argument a list of key-value pairs, as returned by mmcli --output-keyvalue
# The second argument must be exactly the name of the field to read
#
# Sample output:
#     $ mmcli -m 0 -K
#     modem.dbus-path                                 : /org/freedesktop/ModemManager1/Modem/0
#     modem.generic.device-identifier                 : ed6eff2e3e0f90463da1c2a755b2acacd1335752
#     modem.generic.manufacturer                      : Dell Inc.
#     modem.generic.model                             : DW5821e Snapdragon X20 LTE
#     modem.generic.revision                          : T77W968.F1.0.0.4.0.GC.009\n026
#     modem.generic.carrier-configuration             : GCF
#     modem.generic.carrier-configuration-revision    : 08E00009
#     modem.generic.hardware-revision                 : DW5821e Snapdragon X20 LTE
#     ....
modemmanager_get_field() {
  local list=$1
  local field=$2
  local value=""

  [ -z "${list}" ] || [ -z "${field}" ] && return

  # there is always at least a whitespace after each key, and we use that as part of the
  # key matching we do (e.g. to avoid getting 'modem.generic.state-failed-reason' as a result
  # when grepping for 'modem.generic.state'.
  value=$(echo "${list}" | grep "${field} " | awk -F ':' '{print $2}' | awk '{$1=$1};1')

  # not found?
  [ -n "${value}" ] || return 2

  # only print value if set
  [ "${value}" != "--" ] && echo "${value}"
  return 0
}

# Load connected bearer information
device="0"
modemstatus=$(/usr/bin/mmcli --modem="${device}" --output-keyvalue)
bearerpath=$(modemmanager_get_field "${modemstatus}" "modem.generic.bearers.value\[1\]")
bearerstatus=$(/usr/bin/mmcli --bearer "${bearerpath}" --output-keyvalue)

# Load network interface and method information
beareriface=$(modemmanager_get_field "${bearerstatus}" "bearer.status.interface")
[ -n "${beareriface}" ] || {
  echo "couldn't load bearer interface, resetting connection"
  ifup broadband
  exit 0
}

bearermethod=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.method")
[ -n "${bearermethod}" ] || {
  echo "couldn't load bearer method, resetting connection"
  ifup broadband
  exit 0
}

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Thu Oct 10, 2019 6:03 am
by peejhaymakots
jameshilliard wrote: Fri Sep 06, 2019 12:22 pm Here's a new build for the WG3526 with updated OpenWRT and modemmanager, seems a little more reliable.

openwrt-ramips-mt7621-zbt-wg3526-16M-squashfs-sysupgrade.bin.zip

The previous cronjob doesn't work with this version, this new one should:

Code: Select all

#!/bin/sh

# save dog.sh in /root/dog.sh. 
# You can use winscp with scp protocol to do this.
# Using ssh set executation permission and replace the crontab:
# chmod +x /root/dog.sh
# echo "* * * * * /root/dog.sh" | crontab -

# This method expects as first argument a list of key-value pairs, as returned by mmcli --output-keyvalue
# The second argument must be exactly the name of the field to read
#
# Sample output:
#     $ mmcli -m 0 -K
#     modem.dbus-path                                 : /org/freedesktop/ModemManager1/Modem/0
#     modem.generic.device-identifier                 : ed6eff2e3e0f90463da1c2a755b2acacd1335752
#     modem.generic.manufacturer                      : Dell Inc.
#     modem.generic.model                             : DW5821e Snapdragon X20 LTE
#     modem.generic.revision                          : T77W968.F1.0.0.4.0.GC.009\n026
#     modem.generic.carrier-configuration             : GCF
#     modem.generic.carrier-configuration-revision    : 08E00009
#     modem.generic.hardware-revision                 : DW5821e Snapdragon X20 LTE
#     ....
modemmanager_get_field() {
  local list=$1
  local field=$2
  local value=""

  [ -z "${list}" ] || [ -z "${field}" ] && return

  # there is always at least a whitespace after each key, and we use that as part of the
  # key matching we do (e.g. to avoid getting 'modem.generic.state-failed-reason' as a result
  # when grepping for 'modem.generic.state'.
  value=$(echo "${list}" | grep "${field} " | awk -F ':' '{print $2}' | awk '{$1=$1};1')

  # not found?
  [ -n "${value}" ] || return 2

  # only print value if set
  [ "${value}" != "--" ] && echo "${value}"
  return 0
}

# Load connected bearer information
device="0"
modemstatus=$(/usr/bin/mmcli --modem="${device}" --output-keyvalue)
bearerpath=$(modemmanager_get_field "${modemstatus}" "modem.generic.bearers.value\[1\]")
bearerstatus=$(/usr/bin/mmcli --bearer "${bearerpath}" --output-keyvalue)

# Load network interface and method information
beareriface=$(modemmanager_get_field "${bearerstatus}" "bearer.status.interface")
[ -n "${beareriface}" ] || {
  echo "couldn't load bearer interface, resetting connection"
  ifup broadband
  exit 0
}

bearermethod=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.method")
[ -n "${bearermethod}" ] || {
  echo "couldn't load bearer method, resetting connection"
  ifup broadband
  exit 0
}
Hi James,

I just acquired my wg3526 and barely new on this kind of router. (so please bear with my noob questions :D) I'm planning to buy DW5821e and insert it to my wg3526, I don't need any special configuration and I just need to make the carrier aggregation (and the internet ofcourse :D) works since all rules/etc is terminated on my pfsense multiWAN setup.
So all I have to do is to use the file that you have attached here and the modem should work right? or do I have to change anything. Thanks! (btw the active lte bands in my location are B1, B3, B5, B28, B40 and B42)

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Jan 24, 2020 1:52 pm
by jameshilliard
peejhaymakots wrote: Thu Oct 10, 2019 6:03 am Hi James,

I just acquired my wg3526 and barely new on this kind of router. (so please bear with my noob questions :D) I'm planning to buy DW5821e and insert it to my wg3526, I don't need any special configuration and I just need to make the carrier aggregation (and the internet ofcourse :D) works since all rules/etc is terminated on my pfsense multiWAN setup.
So all I have to do is to use the file that you have attached here and the modem should work right? or do I have to change anything. Thanks! (btw the active lte bands in my location are B1, B3, B5, B28, B40 and B42)
Well you need to configure the network interface(config at /etc/config/network) as well.

This is what I added for sprint:

Code: Select all

config interface 'broadband'
	option device '/sys/devices/platform/1e1c0000.xhci/usb1/1-2'
	option proto 'modemmanager'
	option apn 'r.ispsn'
Here's an updated cron script that seems to be more reliable as well:

Code: Select all

#!/bin/sh

# save dog.sh in /root/dog.sh. 
# You can use winscp with scp protocol to do this.
# Using ssh set executation permission and replace the crontab:
# chmod +x /root/dog.sh
# echo "* * * * * /root/dog.sh" | crontab -

# This method expects as first argument a list of key-value pairs, as returned by mmcli --output-keyvalue
# The second argument must be exactly the name of the field to read
#
# Sample output:
#     $ mmcli -m 0 -K
#     modem.dbus-path                                 : /org/freedesktop/ModemManager1/Modem/0
#     modem.generic.device-identifier                 : ed6eff2e3e0f90463da1c2a755b2acacd1335752
#     modem.generic.manufacturer                      : Dell Inc.
#     modem.generic.model                             : DW5821e Snapdragon X20 LTE
#     modem.generic.revision                          : T77W968.F1.0.0.4.0.GC.009\n026
#     modem.generic.carrier-configuration             : GCF
#     modem.generic.carrier-configuration-revision    : 08E00009
#     modem.generic.hardware-revision                 : DW5821e Snapdragon X20 LTE
#     ....
modemmanager_get_field() {
  local list=$1
  local field=$2
  local value=""

  [ -z "${list}" ] || [ -z "${field}" ] && return

  # there is always at least a whitespace after each key, and we use that as part of the
  # key matching we do (e.g. to avoid getting 'modem.generic.state-failed-reason' as a result
  # when grepping for 'modem.generic.state'.
  value=$(echo "${list}" | grep "${field} " | awk -F ':' '{print $2}' | awk '{$1=$1};1')

  # not found?
  [ -n "${value}" ] || return 2

  # only print value if set
  [ "${value}" != "--" ] && echo "${value}"
  return 0
}

# Load connected bearer information
devices=$(/usr/bin/mmcli -L --output-keyvalue)
device=$(modemmanager_get_field "${devices}" "modem-list.value\[1\]")
[ -n "${device}" ] || {
  echo "couldn't load device interface, resetting connection"
  ifup broadband
  exit 0
}
modemstatus=$(/usr/bin/mmcli --modem="${device}" --output-keyvalue)
enabledstatus=$(modemmanager_get_field "${modemstatus}" "modem.generic.state")
if [ "${enabledstatus}" = disabled ]; then
  echo "modem is disabled, enabling"
  /usr/bin/mmcli --modem="${device}" --enable
  exit 0
fi
bearerpath=$(modemmanager_get_field "${modemstatus}" "modem.generic.bearers.value\[1\]")
bearerstatus=$(/usr/bin/mmcli --bearer "${bearerpath}" --output-keyvalue)

# Load network interface and method information
beareriface=$(modemmanager_get_field "${bearerstatus}" "bearer.status.interface")
[ -n "${beareriface}" ] || {
  echo "couldn't load bearer interface, resetting modemmanager"
  /etc/init.d/modemmanager restart
  exit 0
}

bearermethod=$(modemmanager_get_field "${bearerstatus}" "bearer.ipv4-config.method")
[ -n "${bearermethod}" ] || {
  echo "couldn't load bearer method, resetting connection"
  ifup broadband
  exit 0
}

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Fri Aug 14, 2020 7:55 pm
by teg50886
i have a wg3526 and i want to use a vpn to tunnel all my traffic. i get one l2tp vpn setup with the stock firmware but would like something with more speed. with no vpn i get about 80 mbps and with the l2tp i get about 25 mpbs. i would like to utilize the full speed of the connection. will another protocol be faster like going to openvpn? and if so how can i get another firmware to flash to the device. everything i tried does not flash.

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Wed Aug 19, 2020 10:39 pm
by jameshilliard
teg50886 wrote: Fri Aug 14, 2020 7:55 pm will another protocol be faster like going to openvpn?
You might try using wireguard.
teg50886 wrote: Fri Aug 14, 2020 7:55 pm everything i tried does not flash.
Did you try my firmware above?

Re: FIRMWARE FOR WE826 | WG3526 | WE3926 | WE1326 | WE1026

Posted: Thu Aug 19, 2021 4:29 am
by jameshilliard
I updated the builds to the latest OpenWRT release candidate with some additional packages like modemmanager and USB/filesystem support needed for mounting external storage(required for modem firmware updates since modem firmware is too big to fit into ram/flash).

ModemManager's OpenWRT integration seems to be significantly improved, the reset script isn't needed anymore looks like.