FOTA for FX30S how to

Hi @claudio.baldini ,
Please use this version of repo:
repo.7z (10.3 KB)

Ubuntu 18.04 should be fine, there’s not issues building with it.

BR,
Chris

the new repo is working it did go through lots of more updates and new tags now.

Something is not quite all right, I still get the 2 compile errors when building:
~/legatoWorkspace/legato-src/legato$ make wp77xx
*
*
*
/bin/sh: /gcc: No such file or directory
[10/52] Compiling liblegato source file
FAILED: /home/claudio/legatoWorkspace/legato-src/legato/build/wp77xx/framework/obj/clock.c.o
/gcc -MMD -MF /home/claudio/legatoWorkspace/legato-src/legato/build/wp77xx/framework/obj/clock.c.o.d -c /home/claudio/legatoWorkspace/legato-src/legato/framework/liblegato/linux/clock.c -o /home/claudio/legatoWorkspace/legato-src/legato/build/wp77xx/framework/obj/clock.c.o -Wall -Werror -DLEGATO_EMBEDDED -fPIC -I/home/claudio/legatoWorkspace/legato-src/legato/framework/daemons/linux -g -O2 -fno-omit-frame-pointer -I/home/claudio/legatoWorkspace/legato-src/legato/framework/liblegato/linux -DLE_COMPONENT_NAME=framework -I/home/claudio/legatoWorkspace/legato-src/legato/framework/include -I/home/claudio/legatoWorkspace/legato-src/legato/framework/liblegato -DDISABLE_SMACK=0 -DLE_SVCDIR_SERVER_SOCKET_NAME=""/tmp/legato/serviceDirectoryServer"" -DLE_SVCDIR_CLIENT_SOCKET_NAME=""/tmp/legato/serviceDirectoryClient""
/bin/sh: /gcc: No such file or directory
ninja: build stopped: subcommand failed.
Makefile.framework:147: recipe for target ‘liblegato’ failed
make[1]: *** [liblegato] Error 1
make[1]: Leaving directory ‘/home/claudio/legatoWorkspace/legato-src/legato’
Makefile:379: recipe for target ‘framework_wp77xx’ failed

when I compile the full yocto:
~/legatoWorkspace/swi-linux-src$ make

| ERROR: oe_runmake failed
| …/arm-poky-linux-gnueabi-libtool --tag=CC --mode=link arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=softfp --sysroot=/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/sysroots/swi-mdm9x28-wp -Wall -Wstrict-prototypes -Werror=declaration-after-statement -Werror=missing-prototypes -Werror=implicit-function-declaration -Werror=pointer-arith -Werror=init-self -Werror=format=2 -Werror=missing-include-dirs -DSIERRA -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/armv7a-neon-poky-linux-gnueabi/glib-2.0/1_2.48.2-r0=/usr/src/debug/glib-2.0/1_2.48.2-r0 -fdebug-prefix-map=/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/sysroots/x86_64-linux= -fdebug-prefix-map=/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/sysroots/swi-mdm9x28-wp= -Wl,-O1 -Wl,–hash-style=gnu -Wl,–as-needed -o glib-compile-schemas gvdb-builder.o glib-compile-schemas.o …/glib/libglib-2.0.la
| arm-poky-linux-gnueabi-libtool: error: ‘…/glib/libglib-2.0.la’ is not a valid libtool archive
| Makefile:2189: recipe for target ‘glib-compile-schemas’ failed
| make[4]: *** [glib-compile-schemas] Error 1
| make[4]: *** Waiting for unfinished jobs…
| arm-poky-linux-gnueabi-libtool: error: ‘libgio_2_0_la-gappinfo.lo’ is not a valid libtool object
| Makefile:2005: recipe for target ‘libgio-2.0.la’ failed
| make[4]: *** [libgio-2.0.la] Error 1
| make[4]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/armv7a-neon-poky-linux-gnueabi/glib-2.0/1_2.48.2-r0/build/gio’
| Makefile:4208: recipe for target ‘all-recursive’ failed
| make[3]: *** [all-recursive] Error 1
| make[3]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/armv7a-neon-poky-linux-gnueabi/glib-2.0/1_2.48.2-r0/build/gio’
| Makefile:1873: recipe for target ‘all’ failed
| make[2]: *** [all] Error 2
| make[2]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/armv7a-neon-poky-linux-gnueabi/glib-2.0/1_2.48.2-r0/build/gio’
| Makefile:1205: recipe for target ‘all-recursive’ failed
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/armv7a-neon-poky-linux-gnueabi/glib-2.0/1_2.48.2-r0/build’
| Makefile:847: recipe for target ‘all’ failed
| make: *** [all] Error 2
| ERROR: Function failed: do_compile (log file is located at /home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/armv7a-neon-poky-linux-gnueabi/glib-2.0/1_2.48.2-r0/temp/log.do_compile.22052)
ERROR: Task (/home/claudio/legatoWorkspace/swi-linux-src/poky/meta/recipes-core/glib-2.0/glib-2.0_2.48.2.bb:do_compile) failed with exit code ‘1’
NOTE: Tasks Summary: Attempted 649 tasks of which 647 didn’t need to be rerun and 1 failed.

Summary: 1 task failed:
/home/claudio/legatoWorkspace/swi-linux-src/poky/meta/recipes-core/glib-2.0/glib-2.0_2.48.2.bb:do_compile
Summary: There were 4 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Makefile:300: recipe for target ‘image_bin’ failed
make: *** [image_bin] Error 1

Did you change any config params in your workspace?

Did you confirm the Makefile is pointing to:
Makefile → meta-columbia-x/meta-columbia-x-catm/external.mk

These builds have been tested and validated. Are you using a fresh workspace?

I have removed the previous repo from ~/bin and copied the one you sent to the /bin folder.
Then started a fresh workspace, created and configured the profile to the fx30-catm.
At this point I download the source leaf getsrc swi-linux and after this step is completed I replace the external.mk with the one you sent, the Makefile is pointing to it:
Makefile → meta-columbia-x/meta-columbia-x-catm/external.mk

Now withing the swi-linux-src folder I will try to make the binary and this fails with:

| …/…/m4-1.4.17/lib/freadahead.c: In function ‘freadahead’:
| …/…/m4-1.4.17/lib/freadahead.c:91:3: error: #error “Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib.”
| 91 | #error “Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib.”
| | ^~~~~
| …/…/m4-1.4.17/lib/fseeko.c: In function ‘rpl_fseeko’:
| …/…/m4-1.4.17/lib/fseeko.c:109:4: error: #error “Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib.”
| 109 | #error “Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib.”
| | ^~~~~
| make[3]: *** [Makefile:1842: freadahead.o] Error 1
| make[3]: *** Waiting for unfinished jobs…
| make[3]: *** [Makefile:1842: fseeko.o] Error 1
| make[3]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/x86_64-linux/m4-native/1.4.17-r0/build/lib’
| make[2]: *** [Makefile:1602: all] Error 2
| make[2]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/x86_64-linux/m4-native/1.4.17-r0/build/lib’
| make[1]: *** [Makefile:1506: all-recursive] Error 1
| make[1]: Leaving directory ‘/home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/x86_64-linux/m4-native/1.4.17-r0/build’
| make: *** [Makefile:1461: all] Error 2
| ERROR: Function failed: do_compile (log file is located at /home/claudio/legatoWorkspace/swi-linux-src/build_bin/tmp/work/x86_64-linux/m4-native/1.4.17-r0/temp/log.do_compile.64369)
ERROR: Task (/home/claudio/legatoWorkspace/swi-linux-src/poky/meta/recipes-devtools/m4/m4-native_1.4.17.bb:do_compile) failed with exit code ‘1’
NOTE: Tasks Summary: Attempted 105 tasks of which 93 didn’t need to be rerun and 1 failed.

Summary: 1 task failed:
/home/claudio/legatoWorkspace/swi-linux-src/poky/meta/recipes-devtools/m4/m4-native_1.4.17.bb:do_compile
Summary: There were 4 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
make: *** [Makefile:300: image_bin] Error 1

This is on my linux machine (not VM) running a ubuntu 20.04, I am not at the office so can`t run it on ubuntu 18.04 at the moment, but if you think this may be the problem I will try to setup a VM for this task and the to try again.

@cchenry I did manage to build the image( VM running ubuntu 18.04), I was missing the java apt which makes me wonder why this wasn`t included in the dependencies.
Anyhow, after the image was built (3 warning were present but no errors) I did download and install the image:
swi-linux-src/build_bin/tmp/deploy/images/swi-mdm9x28-wp/legato-image.wp77xx.cwe
but when I tried to use the AT commands both AT+WDSI? and AT+WDSS=1,1 return NOT SUPPORTED.
So I installed the full image for the Generic GCF, while I could still ping the target, I did lose the ssh port for root, I had to backup the target to the FX30_WP77xx_full_R11.0.0.007-sierra-SWI9X06Y_02.22.12.00.

Now after a few days of trials I am back from beginning, where it would be helpful to understand why leaf legato is not syncing to the latest patches where the mksys command would really be our favorite method to build our system`s image for the target.

@cchenry I have now setup an ubuntu 18.04 VM running on my workstation, it is a lot more powerful so I dont need to wait the whole day for building the image. I confirm that I need to manually install java or the make fails, but once this is done, then the image is built correctly. Please see the full compile log here, if you want to check it executed properly as it still indicates 2 WARNINGS which I dont know if I should be worried about.
compile_log.txt (5.9 KB)

Just to clarify the steps I have followed:

  1. leaf init
  2. leaf profile create TEST
  3. leaf profile config -p swi-fx30-catm_2.0.0
  4. leaf getsrc swi-linux
  5. replaced the repo with the file you have sent:
    /usr/share/bash-completion/completions/repo
    /usr/bin/repo
  6. replaced the swi-linux-src/meta-columbia-x/meta-columbia-x-catm/external.mk with the file you have sent and confirmed that the MakeFile is pointing to it.
  7. make
  8. copy the swi-linux-src/build_bin/tmp/deploy/images/swi-mdm9x28-wp/legato-image.wp77xx.cwe into the target
  9. fwupdate download legato-image.wp77xx.cwe
  10. reboot
  11. tried with AT commands, both AT+WDSI? and AT+WDSS=1,1 will return NOT IMPLEMENTED

Please advise where we go from here.

Could you please post the output of the following commands:

legato version
cm info
app status
fwupdate query

Also, try doing:
rm -rf /data/le_fs

And then try the AT commands again

BR,
Chris

legato version
18.09.4.27c5a593_4a17dea9e75cbfd7142afab8a65a692d_modified

cm info
Device: FX30(WP7702)
IMEI: 354723090144204
IMEISV: 3
FSN: VU007185430210
Firmware Version: SWI9X06Y_02.22.12.00 eaf79c jenkins 2019/04/24 18:48:27
Bootloader Version: SWI9X06Y_02.22.12.00 eaf79c jenkins 2019/04/24 18:48:27
MCU Version: 002.011
PRI Part Number (PN): 9907957
PRI Revision: 001.000
Carrier PRI Name: SIERRA
Carrier PRI Revision: 001.021_000
SKU: 1103882
Last Reset Cause: Reset, User Requested
Resets Count: Expected: 5 Unexpected: 0

app status
[running] atService
[running] audioService
[running] avcService
[running] cellNetService
[running] dataConnectionService
[running] fwupdateService
[running] gpioService
[running] modemService
[running] portService
[running] positioningService
[running] powerMgr
[running] secStore
[stopped] smsInboxService
[stopped] spiService
[stopped] tools
[stopped] voiceCallService
[running] columbiaAtService
[running] factoryRecoveryService

fwupdate query
Connecting to service …
Firmware Version: SWI9X06Y_02.22.12.00 eaf79c jenkins 2019/04/24 18:48:27
Bootloader Version: SWI9X06Y_02.22.12.00 eaf79c jenkins 2019/04/24 18:48:27
Linux Version: 3.18.44 #2 PREEMPT Thu Jun 18 02:45:08 UTC 2020
FX30 Version: R11.0.0.007

root@fx30s:~# rm -rf /data/le_fs
root@fx30s:~# microcom /dev/ttyAT
at+wdsi?
+WDSI: NOT IMPLEMENTED

OK
at+wdss=1,1
+WDSS: NOT IMPLEMENTED

OK

same result, see above.

@cchenry how do we troubleshoot what is happening and how to move from here?

Could you please try doing an FX30 factory reset using the small push button? Remove power, press and hold, apply power, release after about 12s

I have already done that before, factory reset and then updated the stock firmware. Tested the AT commands, then downloaded my system and tested the AT commands again. AT commands to connect to AV didnt work after I downloaded the system I compiled. Last time was two days ago, as the legato-image.wp77xx.cwe wasnt working as expected, I tried to download the full generic image but then lost the ssh connectivity. Did factory reset the modem and also re-flash the stock firmware from windows. After factory reset I need to re-store the ssh key, so I am confident it did work properly.

This all seems very odd to me, is there any geo limitation when downloading and syncing leaf to your server? We are in Perth Australia, I have done this several times on different VM instances and if I have done somethin wrong this is not a clear error as I can compile without problems with the mksys and also the make now.

What is the next step to see try solving this problem? We are in a hurry to get this sorted now.

FX30 factory reset is not via AT command, it’s by the pushbutton. The FX30 factory reset won’t erase ssh keys.

Did you execute RMARESET? I’m I’m not clear how you factory reset your device…

I have used the reset button at the front of the fx30 and I am fairly confident that after reset I can’t ssh into the target unless I store the new ssh keys

@cchenry what do we need to do to fix this? As we have been troubleshooting this with different methods and it just seems that AV is not supported. I did also try the reset with the AT command you have mentioned above with the same result. Leaf syncs and builds fine but the system we build will just not connect to AV. We would need to sort this as soon as possible as this is not a dyo project but actually something we are marketing right now. The application we have built works well, only missing point is this AV connectivity which should be a ready-to-go functionality of the device. Could u escalate this issue internally?

Hi @claudio.baldini,
Have you executed the FX30 factory reset to resolve the WDSx NOT IMPLEMENTED issues?

@cchenry these are the steps I have followed:

  1. fwupdate download legato-image.wp77xx.cwe
  2. the the AT+WDSI? and AT+WDSS=1,1 will return NOT IMPLEMENTED
  3. hardware reset the FX30 with the front push button
  4. re-stored the ssh key as these are changed
  5. re-configured the root password
  6. tried with the AT commands again, same result, NOT IMPLEMENTED
  7. downloaded and installed FX30_WP77xx_full_R11.0.0.007-sierra-SWI9X06Y_02.22.12.00.cwe, reboot
  8. now the AT commands will work, AT+WDSI=4479 and AT+WDSS=1,1 and the unit can successfully connect to airvantage.

please advice

@claudio.baldini ,
Please follow this procedure exactly:

  1. Install FX30_WP77xx_full_R11.0.0.007-sierra-SWI9X06Y_02.22.12.00.cwe
  2. Confirm AT+WDSS=1,1 is successful connecting and +WDSI:23,1 is returned
  3. Install your legato cwe image built from your leaf fx30-catm_2.0.0 swi-linux workspace
  4. Check AT+WDSS=1,1 and AT+WDSC? is working
  5. If not, perform the FX30 push button factory reset only
  6. Confirm the factory reset was successful by checking the nagger is invoked. Please post the output
  7. The FX30 push button factory reset does not delete ssh keys. If this occurs, then something else is wrong

I can confirm the swi-linux legato image that is built from leaf has no issues.

BR,
Chris

I have performed this sequence and the result is as above, also when I factory reset the unit it will erase the ssh keys, I can confirm this as I always need to ssh-keygen new keys for my client when I connect to the target after reset.
Factory reset is done by holding the RESET button at the front of the unit, power off, then on, holding the button for more then 12s, release the button and power cycle the unit.

How do I check the nagger is invoked?

After I download the legato-image made from source, the AT commands will return NOT IMPLEMENTED, I have done this already three times and this is always the result.

The physical hardware I have is a FX30S (as per post) but I would assume there is no difference between this and the FX30 firmware wise.

It seems something is wrong, either on the leaf legato syncing or on the target side.

  1. with the stock firmware FX30_WP77xx_full_R11.0.0.007-sierra-SWI9X06Y_02.22.12.00.cwe:
    root@fx30s:~# microcom /dev/ttyAT
    at+wdsi?
    +WDSI: 4479

OK
at+wdss=1,1
OK

+WDSI: 4

+WDSI: 6

+WDSI: 23,1
at+wdsc?
+WDSC: 0,0
+WDSC: 1,0
+WDSC: 2,0
+WDSC: 3,120
+WDSC: 4,15,60,240,480,1440,2880,0,0
+WDSC: 5,0
+WDSC: 6,0

OK

at+wdss=1,0
OK

+WDSI: 8

  1. built the swi-linux from source, this is the workspace:
    Workspace: /home/claudio/legatoWorkspace
    │ Profile: TESTING [current] (sync)
    │ Packages │ Identifier │ Description │
    ────────────────────────────┤
    │ Included │ swi-fx30-catm_2.0.0 │ SDK for FX30-CATM (Release R11.0.0.007 + Legato 18.09.4)

run the make:
~/legatoWorkspace/swi-linux-src$ make



Initialising tasks: 100% |###################################################################################################################################################################| Time: 0:00:04
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 3548 tasks of which 3456 didn’t need to be rerun and all succeeded.

Summary: There were 3 WARNING messages shown.

  1. scp the legato image to the target:
    ~/legatoWorkspace/swi-linux-src/build_bin/tmp/deploy/images/swi-mdm9x28-wp$ scp legato-image.wp77xx.cwe root@192.168.2.2:/tmp
    this is the file if you want to validate it:
    legato-image.wp77xx.zip (3.5 MB)

  2. fwupdate download legato-image.wp77xx.cwe

  3. try with the AT commands, they return the NOT IMPLEMENTED

  4. hardware reset the unit with the reset button (please let me know how to check the nagger is changed) I am assuming the factory reset is working

  5. need to ssh-keygen the key every single time after factory reset

  6. try with the AT commands, they return the NOT IMPLEMENTED

  7. fwupdate download FX30_WP77xx_full_R11.0.0.007-sierra-SWI9X06Y_02.22.12.00.cwe

  8. reboot

  9. AT commands now work again.

Hi @claudio.baldini,
I’ve tried your image and observe the same issues.

Let me consult with the Leaf team and I’ll get back to you.

BR,
Chris