[Fx30] Building a complete R14 customized image


#1

Hello,

I am using a customised Linux and Legato, built on top of the initial Fx30 R13 sources delivery.
I need to upgrade to the R14 firmware to benefit from the improvements.

I retrieved the R14 source package and imported my modifications on it.
My Yocto build environment produce several CWE files but I do not know how to rebuild a complete R14 customised image (including: boot, rmfw mcu yocto legato).

The various built packages I find in my build environment are:
~/fx30/build_bin/tmp/work/swi_mdm9x15-poky-linux-gnueabi/mdm9x15-image-minimal/1.0-r0.0/rmfw-generic.spk
~/fx30/build_bin/tmp/work/swi_mdm9x15-poky-linux-gnueabi/mdm9x15-image-minimal/1.0-r0.0/mcufw.cwe
~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/boot_wp85.cwe
~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/yocto-legato-ubifs-empty_wp85.cwe

If I combine those packages into one CWE image using the swicwe tool, I do not seems to obtain the same arrangement of parts that the default SWI Firmare R14.0.4.002 image (from https://source.sierrawireless.com/resources/airlink/software_downloads/fx30-firmware/fx30-firmware/).

Here is my custom image building command and its output:

$>  swicwe -o ~/R14-Custom.cwe -c ~/fx30/build_bin/tmp/work/swi_mdm9x15-poky-linux-gnueabi/mdm9x15-image-minimal/1.0-r0.0/rmfw-generic.spk ~/fx30/build_bin/tmp/work/swi_mdm9x15-poky-linux-gnueabi/mdm9x15-image-minimal/1.0-r0.0/mcufw.cwe ~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/boot_wp85.cwe ~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/yocto-legato-ubifs-empty_wp85.cwe 

Parsing input file ~/fx30/build_bin/tmp/work/swi_mdm9x15-poky-linux-gnueabi/mdm9x15-image-minimal/1.0-r0.0/rmfw-generic.spk 
 Type	 Size(Exclude Header)	 Product	 Compress	 Version
*SPKG    24549675                9X15            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
*BOOT    528428                  Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 QRPM    104672                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 SBL2    422956                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
*MODM    23976402                Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP1    1861297                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP2    19753073                9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP3    2360832                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
*FILE    43645                   9X15            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
Parsed image is SPKG, finding components
Found BOOT component
Found MODM component
Found FILE component

Parsing input file ~/fx30/build_bin/tmp/work/swi_mdm9x15-poky-linux-gnueabi/mdm9x15-image-minimal/1.0-r0.0/mcufw.cwe 
 Type	 Size(Exclude Header)	 Product	 Compress	 Version
*FILE    14579                   9X15            0               9999999_9999999_MCU_001.011_00_00_00
Parsed image is FILE
Parsing input file ~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/boot_wp85.cwe 
 Type	 Size(Exclude Header)	 Product	 Compress	 Version
*APPL    75244                   Y912            0               Mon Oct 15 09:40:47 CEST 2018
 APBL    74844                   9X15            0               Mon Oct 15 09:40:47 CEST 2018
Parsed image is YOCTO

Parsing input file ~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/yocto-legato-ubifs-empty_wp85.cwe 
 Type	 Size(Exclude Header)	 Product	 Compress	 Version
*APPL    39240455                Y912            0               Mon Oct 15 09:41:05 CEST 2018
 SYST    33151063                9X15            1               Mon Oct 15 09:41:05 CEST 2018
 USER    1827391                 9X15            1               Mon Oct 15 09:41:05 CEST 2018
 APPS    3998257                 9X15            1               Mon Oct 15 09:41:05 CEST 2018
 UAPP    262144                  9X15            0               Mon Oct 15 09:41:05 CEST 2018

Concatenating images
CWE Header Generator 3.00. Copyright Sierra Wireless, Inc., 2012
  Output CWE Header File /tmp/temp.mbn.hdr
  Image size 0x177fb2a, crc32 0x50861097

Here is the analyse of the produced image:

$>  swicwe -P ~/R14-Custom.cwe 
 Type	 Size(Exclude Header)	 Product	 Compress	 Version
*SPKG    24640298                Y912            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
*BOOT    528428                  Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 QRPM    104672                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 SBL2    422956                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
*MODM    23976402                Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP1    1861297                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP2    19753073                9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP3    2360832                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
*FILE    43645                   9X15            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
*FILE    14579                   9X15            0               9999999_9999999_MCU_001.011_00_00_00
*APPL    75244                   Y912            0               Mon Oct 15 09:40:47 CEST 2018
 APBL    74844                   9X15            0               Mon Oct 15 09:40:47 CEST 2018

Here is the analyse of the SWI FW default image:

$> swicwe -P ~/Default-SWI-R14-mcu-rmfw-boot-yocto-legato_wp85.cwe
 Type	 Size(Exclude Header)	 Product	 Compress	 Version
*SPKG    56954777                Y912            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
*BOOT    528428                  Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 QRPM    104672                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 SBL2    422956                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
*MODM    23976402                Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP1    1861297                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP2    19753073                9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
 DSP3    2360832                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
*FILE    43645                   9X15            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
*FILE    14579                   9X15            0               9999999_9999999_MCU_001.011_00_00_00
*APPL    32389723                Y912            0               Tue Jun 12 16:57:45 PDT 2018
 SYST    25881298                9X15            1               Tue Jun 12 16:57:45 PDT 2018
 USER    2434626                 9X15            1               Tue Jun 12 16:57:45 PDT 2018
 APBL    74844                   9X15            0               Tue Jun 12 16:57:45 PDT 2018
 APPS    3997355                 9X15            1               Tue Jun 12 16:57:45 PDT 2018

As you can see, the found parts from my custom image and on the SWI default R14 image are not identical.
The parts SYST, USER, APPS are missing from my custom image.

I’m wondering that if I do upgrade one on my Fx30 (coming initially with a FW R13 default SWI image) with my custom R14 image some parts may be missing.

Could you help me to obtain a complete R14 custom image?

Regards, Christian.


#2

Hi Christian,
First, you’ll want to extract the Legato 16.10.1.m3 source code into your workspace: ~/fx30

Then, rename the Legato folder to just “legato” (ie, without the version)

Then you can build the system normally with “make”.

In your output folder:
~/fx30/build_bin/tmp/deploy/images/swi-mdm9x15/

Hopefully you’ll see 2 files:
boot-yocto_wp85.cwe
legato-image.wp85.cwe

In addition, the radio module image and mcufw are located here:
~/fx30/meta-columbia-x/rootfs/recipes/images/files

mcufw.cwe
rmfw-generic.cwe

You can use swicwe to concatenate these 4 cwe files together. I recommend this order:
rmfw-generic
mcufw
boot-yocto
legato

in order to make the official SWI bundle.

BR,
Chris


#3

Hello Chris,

Thanks for your answer. I have rebuilt my image following your instructions.

Some observations:

  • the “rmfw-generic” in meta-columbia-x/rootfs/recipes/images/files is only available in SPK, not as CWE, but I guess that they are equivalent.
  • I have added at the end the “user1-single-part-ubifs-empty_wp85.cwe” to erase the USER1 partition.

Here is the image I obtain:

                ep@ep-VirtualBox:~/fx30$ swicwe -P EP-Fx30-v2.x-24102018.cwe 
                        Type	 Size(Exclude Header)	 Product	 Compress	 Version
                        *SPKG    63888432                Y912            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
                        *BOOT    528428                  Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                         QRPM    104672                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                         SBL2    422956                  9X15            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                        *MODM    23976402                Y912            0               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                         DSP1    1861297                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                         DSP2    19753073                9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                         DSP3    2360832                 9X15            1               SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
                        *FILE    43645                   9X15            0               9999999_9904559_SWI9X15Y_07.12.09.00_00_GENERIC_001.033_000
                        *FILE    14579                   9X15            0               9999999_9999999_MCU_001.011_00_00_00
                        *APPL    37232335                Y912            0               Wed Oct 24 16:53:15 CEST 2018
                         SYST    33158113                9X15            1               Wed Oct 24 16:53:15 CEST 2018
                         APBL    74844                   9X15            0               Wed Oct 24 16:53:15 CEST 2018
                         APPS    3998178                 9X15            1               Wed Oct 24 16:53:15 CEST 2018
                        *APPL    1827699                 Y912            0               unknown_380c1d136d9c485983c76630451f24c5
                         USER    1827299                 9X15            1               unknown_380c1d136d9c485983c76630451f24c5
                        *APPL    262544                  Y912            0               Wed Oct 24 16:53:29 CEST 2018
                         UAPP    262144                  9X15            0               Wed Oct 24 16:53:29 CEST 2018

Thanks for your help.

Regards, Christian.


#4

Hi Christian,
Glad to help out! Sorry, my mistake, the rmfw-generic is indeed an spk, not cwe, but they are pretty much equivalent. Typically an spk file will also contain carrier information.
BR,
Chris