# \[Fx30\] Building a complete R14 customized image

**URL:** <https://forum.sierrawireless.com/t/fx30-building-a-complete-r14-customized-image/14171>\
**Category:** FX30\
**Created:** [October 16, 2018, 8:51am UTC](https://forum.sierrawireless.com/t/fx30-building-a-complete-r14-customized-image/14171 "2018-10-16T08:51:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![CGuyot](https://avatars.discourse-cdn.com/v4/letter/c/e56c9b/32.png) [@CGuyot](https://forum.sierrawireless.com/u/CGuyot)\
**Post date:** [October 16, 2018, 8:51am UTC](https://forum.sierrawireless.com/t/fx30-building-a-complete-r14-customized-image/14171/1 "2018-10-16T08:51:09Z")

</div>

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/](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.

---

<div class="post-metadata">

**Author:** ![cchenry](https://avatars.discourse-cdn.com/v4/letter/c/a183cd/32.png) [@cchenry](https://forum.sierrawireless.com/u/cchenry)\
**Post date:** [October 23, 2018, 7:15pm UTC](https://forum.sierrawireless.com/t/fx30-building-a-complete-r14-customized-image/14171/2 "2018-10-23T19:15:37Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![CGuyot](https://avatars.discourse-cdn.com/v4/letter/c/e56c9b/32.png) [@CGuyot](https://forum.sierrawireless.com/u/CGuyot)\
**Post date:** [October 24, 2018, 3:59pm UTC](https://forum.sierrawireless.com/t/fx30-building-a-complete-r14-customized-image/14171/3 "2018-10-24T15:59:38Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![cchenry](https://avatars.discourse-cdn.com/v4/letter/c/a183cd/32.png) [@cchenry](https://forum.sierrawireless.com/u/cchenry)\
**Post date:** [October 24, 2018, 10:13pm UTC](https://forum.sierrawireless.com/t/fx30-building-a-complete-r14-customized-image/14171/4 "2018-10-24T22:13:29Z")

</div>

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
