FX30s - Installed APP is gone


I have been testing my app for many month now and today when I came to check on it, the app was gone.

It seems to me that the modem was set to factory settings. Is there any scenario where the modem would do this on its own? If yes, how can I disable?

I see in my Installed Applications list, factoryRecoveryService, I searched for instructions on it but didn’t find any. Could this service have caused my app to be deleted? Any information on it is appreciated.

Thanks in advance!



If your module was set to factory settings, so how can you know that factoryRecoveryService was installed to your module?
If your legato status is not marked with “good” status, it will rollback to previous good version. I think this version does not include your apps.
To prevent this issue, you can incorporate your apps to the image.
Use the systocwe tool to turn your app in to a cwe file.
Use the swicwe tool to create your new image.
Ex: swicwe -o my_firmware.spk -c carrier.spk yocto_linux.cwe legato.cwe app.cwe


Thanks for your response jerdung,

I’m running Developer Studio for Windows 3.5.1

In the “Installed applications” list, one of the services listed is factoryRecoveryService. I don’t know that this service caused my app to be deleted or not, I’m just trying to figure out what happened and wondered if this service could have something to do with it.

When I loaded my app, I loaded it as marked good so that it wouldn’t rollback, plus, it had been running for three months without any problems.

I would like to incorporate my app and my specific configuration into an image file, but I’m not familiar with how to do that. Is there any documentation that I can use as a guide to creating an image file?

Also, I’m using Developer Studio for window, is it possible to create the image as you described above, or do I need a LINUX environment?

Thanks for the help!


Hi eddie435,
I am not familiar with Developer studio for Windows. But you can follow this document to add your apps to the image



1 Like

Hi Eddie,
The factoryRecovery application isn’t responsible for removing the application. This app handles the FX30 factory reset after the reset button is pressed and held at powerup.

The only reasons your app would be lost are:

  1. Manual intervention by using DevStudio to reset
  2. Legato rollback
  3. Module EFS recovery mechanism due to some form of corruption

As stated by jerdung, the best way to ensure your apps are permanent is to build them into the image.


Thanks for the info Chris!

I’m trying to follow Jerdung’s suggested link above for creating an image file, but having some problems.

In the example “Add your Apps in Base Legato System with Developer Studio”, in step #9 when I try to build system, I get this error:

12:33:57 **** Build of configuration Target_Legato_Release for project FX30S-Infraguard-Image ****
make -C Target_Legato_Release clean
make: Entering directory ‘C:\Legato\workspace\FX30S-Infraguard-Image/Target_Legato_Release’
cd …;mksys -t wp77xx -o /tmp/build/FX30S-Infraguard-Image/Target_Legato_Release -w /tmp/build/FX30S-Infraguard-Image/Target_Legato_Release -i “/legato/interfaces/supervisor” -i “/legato/interfaces/airVantage” -i “/legato/interfaces/secureStorage” -i “/legato/interfaces/watchdog” -i “/legato/interfaces” -i “/legato/interfaces/airVantage/legacy” -i “…/FX30S_Infraguard” -i “/legato/interfaces/positioning” -i “/legato/interfaces/wifi” -i “/legato/interfaces/logDaemon” -i “/legato/interfaces/atServices” -i “/legato/interfaces/modemServices” -i “/legato/interfaces/portService” -s “/legato/components/dataConnectionService/platformAdaptor/default” -s “/legato/apps/proprietary/atQmiLinker/bin/wp77xx” -s “/legato/apps/platformServices/airVantageConnector” -s “/legato/components/airVantage” -s “/legato/modules/WiFi/apps/tools/wifi” -s “/legato/apps/platformServices/airVantage” -s “/legato/components/positioning” -s “/legato/apps/proprietary/atAirVantage/bin/wp77xx” -s “/legato/components/secStore” -s “/legato/components/uartMode/platformAdaptor/default” -s “/legato/components/portService” -s “/legato/components/modemServices/platformAdaptor/default” -s “/legato/components/audio/platformAdaptor/default” -s “/legato/components/3rdParty” -s “/legato/apps/tools” -s “/legato/components/fwupdate/platformAdaptor/default” -s “/legato/modules/WiFi/service” -s “/legato/components/dataConnectionService” -s “/legato/components/airVantage/platformAdaptor/default” -s “…/FX30S_Infraguard” -s “/legato/components/fwupdate” -s “/legato/components/positioning/platformAdaptor/default” -s “/legato/components/devMode” -s “/legato/components/secStore/platformAdaptor/default” -s “/legato/apps/proprietary/qmiAirVantage/bin/wp77xx” -s “/legato/components/modemServices” -s “/legato/components/atServices” -s “/legato/components” -s “/legato/components/uartMode” -s “/legato/apps/platformServices” FX30S-Infraguard-Image.sdef
/ds/workspace/FX30S_Infraguard/FX30S_Infraguard.adef:11:1: error: Binding to non-existent server interface ‘le_mdc’ on app ‘dataConnectionService’.
make: *** [target] Error 1
Makefile:37: recipe for target ‘target’ failed
make: Leaving directory ‘C:\Legato\workspace\FX30S-Infraguard-Image/Target_Legato_Release’

Any thoughts on why I get this error? When I build the app by itself, I don’t get this error.




Disregard previous question. I found the problem. I corrected a line in the MyApp.adef file and I was able to add my app to a .cwe file successfully.

I do have another question though:
How can I capture other configuration changes in my environment and add them to my image. For example, I changed the iptables.rules file and I disable the wifiService. How do I make these changes also part of my image?



Hi Eddie,
There’s one more condition in which your app could be stopped, but I don’t think the app is removed. The Legato framework has a built in protection mechanism called the faultLimit. If your app crashes twice within a short time period, the app is stopped.

For your firewall rules, you could do a full yocto build and add it to the root file system, or you could create a Legato application to run the script and convert it to a cwe as jerdung suggested.
I haven’t tried the cwe method though.