Issue with --gas-dms-set-active-firmware/Telit modems

Aleksander Morgado aleksander at aleksander.es
Thu Aug 5 13:19:44 UTC 2021


Hey,

> I am trying to use --gas-dms-set-active-firmware to set a carrier firmware on Telit LM960A18 modems using Libqmi 1.28.4. Libqmi is reporting that the preference has successfully changed, however it has not - nothing changes.
>
> This happened on three modems and worked on my others, same firmware - the xx6 latest firmware. The command has always worked thus far, and the only difference is that I upgraded the firmware on all these modems, however that does not explain things as there are mixed results.
>
> I then tried with AT commands and it says "ERROR", so it is not working there either. It turns out the culprit is found in the AT doc:
>
>> Note: Firmware switch <op_mode>1-3 operation should be
>> discarded until automatic sim detection mode(#ACTIVEFW=0,2) is
>> disabled.
>
>
> Basically you can not set the carrier firmware if the mode is in an auto switch mode:
>
>>  If <op_mode> is 0
>> <option> is decimal number of auto firmware detection mode by SIM
>> 0: one shot: carrier firmware is loaded based on currently inserted
>> SIM
>> 1: automatically at reboot, or in case of hot swap enabled, when
>> new SIM is inserted – switch only occurs if SIM is not matched to
>> the currently running firmware
>> 2: disable automatic mode
>
>
> To get this working you have to disable automatic mode with AT#ACTIVEFW=0,2
> and subsequently the AT commands and libqmi commands work to change the carrier.
> I have no view over how or why this setting was suddenly enabled, and there does not seem to be a way with AT commands to read that it is enabled from a quick look, so I have to set it to be sure before switching firmware.

If you ask me, carrier config auto switching is a nice thing to have.
If the module itself can do it, it's great as we don't need to have 10
different implementations on top of the modem.

> At present Libqmi is saying that everything is working fine when this automatic setting is enabled, so you don't have a view that it actually didn't work until you query the firmware after.

Well, libqmi will tell you that the request you sent was completed
without an error, that's it. If that doesn't mean the operation
actually succeeded, maybe it's something to ask to Telit to see if
they can improve it in the firmware side?

-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list