EM20-G Downgrading the firmware
Posted: Thu May 14, 2020 4:51 pm
OpenWRT based firmware does not support the EM20-G other than MBIM with no AT COM port. Therefore, a patch must be used to communicate with the modem.
The drivers for the modems like Option, QMI, MBIM, etc are "kmod" packages which means they are included in the compiled kernel of OpenWrt. They are programs written in C that get compiled at build time.
Linux has a method that allows changes to be made to the C program when the firmware is being compiled, referred to as "patching". This means extra lines of codes may be added or deleted from the C file before it is compiled.
In Option and QMI drivers there is a list of the supported modem IDs and how to handle that modem. If it isn't on that list it doesn't supported.
Dairyman (who compiles the WiFiX/GoldenOrb/ROOTer images) makes the patch and adds numerous modems so the that their drivers are compiled in an image modified from stock.
With the newest modem firmware on the EM20-G, the router firmware patch looks for the COM Port on ttyUSB2 as opposed to ttyUSB1 where it now located. This results in ttyUSB2 accessing the modem in MBIM without having access to the AT Com port.
We have downgraded several EM20-G's to the EM20GRAR01A06M4G firmware which then allows WiFiX/GoldenOrb/Rooter (with the EM20-G patch) to again access the AT Command port at ttyUSB2.
We are expecting our new WiFiX versions of GoldenOrb (due out soon) to be compatible with the newest EM20-G firmware. Until then, or if using a different version of GoldenOrb with the EM20-G patch, one may consider downgrading the firmware on the EM20-G to the earlier version.
The drivers for the modems like Option, QMI, MBIM, etc are "kmod" packages which means they are included in the compiled kernel of OpenWrt. They are programs written in C that get compiled at build time.
Linux has a method that allows changes to be made to the C program when the firmware is being compiled, referred to as "patching". This means extra lines of codes may be added or deleted from the C file before it is compiled.
In Option and QMI drivers there is a list of the supported modem IDs and how to handle that modem. If it isn't on that list it doesn't supported.
Dairyman (who compiles the WiFiX/GoldenOrb/ROOTer images) makes the patch and adds numerous modems so the that their drivers are compiled in an image modified from stock.
With the newest modem firmware on the EM20-G, the router firmware patch looks for the COM Port on ttyUSB2 as opposed to ttyUSB1 where it now located. This results in ttyUSB2 accessing the modem in MBIM without having access to the AT Com port.
We have downgraded several EM20-G's to the EM20GRAR01A06M4G firmware which then allows WiFiX/GoldenOrb/Rooter (with the EM20-G patch) to again access the AT Command port at ttyUSB2.
We are expecting our new WiFiX versions of GoldenOrb (due out soon) to be compatible with the newest EM20-G firmware. Until then, or if using a different version of GoldenOrb with the EM20-G patch, one may consider downgrading the firmware on the EM20-G to the earlier version.