SW Compatibility - How to build the .ova file for Legato 17.11 on WP8548?


#1

Dear mangOH team,

I’m experimenting quite a lot of troubleshooting these past days. Still I can’t push any data from my mangOH (WP8548) to the AV platform and I could understand now why possibly. I had to downgrade the embedded FW to R14 instead of R15. The Legato release associated to my VM (following the getting started) is the 17.07.2. After investigating on the forum, it seems that 17.10 or even 17.11 shall be the one to be used. But the question is: is there an .ova file for the 17.11 or do we have to build it for the WP8548?

Thanks in advance to anyone offering help here.

Rudy


#2

Hi Rudy,

We will release an .ova in the next two weeks with latest legato release.

thanks & regards,
Ashish


#3

Hi Rudy,

If you are using release 14, and want to update to latest Legato then you can do the following:

a. cd legato_framework/
b. repo status
c. repo sync
d. repo init -m legato/releases/18.01.0.xml
e. repo sync

Note you can always update to the latest version of legato on the VM, you just need to point to the latest release in step d.

cheers,
Ashish


#4

Hi Rudy,

I have discussed this point with Sierra last Friday. I would wait for the new ova release based on 7.11 and in the meantime keep working on the 16.10.4. If you upgrade the legato framework to 7.05 or later dev studio will keep on complaining that the target is not in line (still 16.10.4).

Gilles


#5

@Gilles

Steps listed above work to upgrade VM to 17.11 or 18.01. It is no different than getting a new VM


#6

Ashish,

Yes this is correct, it is possible to update the legato platform thorugh those steps. I’ve tried it a couple of weeks ago. It works fine.
The problem is that there is no WP8578 FW with legato 17.11 inside and therefore platform and target are not aligned. This results in warning from dev studio and crashed of the target once downloading apps to the target.
A package brings latest platform/target/apps in line with each other and should work fine,

Gilles


#7

Some logs obtained with Dev Studio on redSensorToCloud:


------------ [Tue, 20 Feb 2018 07:57:20 -0800] Connect ------------
Feb 20 15:57:11 | modemDaemon[761]/modemDaemon T=main | le_sms.c CloseSessionEventHandler() 1772 | SessionRef (0x7f304) has been closed
Feb 20 15:57:14 | uartMode[13410]/swiQmi T=main | swiQmi.c InitService() 377 | Init QMI service QMI_SERVICE_DMS (2)
Feb 20 15:57:14 | uartMode[13410]/swiQmi T=main | swiQmi.c PrintServiceDetails() 353 | Service.2: library_version.6 idl_version.1 service_id.0x2 idl_minor_version.35
Feb 20 15:57:14 | uartMode[13410]/swiQmi T=main | swiQmi.c StartService() 113 | qmi_client_get_service_list rc=0, numServices=1
Feb 20 15:57:14 | uartMode[13413]/swiQmi T=main | swiQmi.c InitService() 377 | Init QMI service QMI_SERVICE_DMS (2)
Feb 20 15:57:14 | uartMode[13413]/swiQmi T=main | swiQmi.c PrintServiceDetails() 353 | Service.2: library_version.6 idl_version.1 service_id.0x2 idl_minor_version.35
Feb 20 15:57:14 | uartMode[13413]/swiQmi T=main | swiQmi.c StartService() 113 | qmi_client_get_service_list rc=0, numServices=1
Feb 20 15:57:14 | uartMode[13414]/swiQmi T=main | swiQmi.c InitService() 377 | Init QMI service QMI_SERVICE_DMS (2)
Feb 20 15:57:14 | uartMode[13414]/swiQmi T=main | swiQmi.c PrintServiceDetails() 353 | Service.2: library_version.6 idl_version.1 service_id.0x2 idl_minor_version.35
Feb 20 15:57:14 | uartMode[13414]/swiQmi T=main | swiQmi.c StartService() 113 | qmi_client_get_service_list rc=0, numServices=1
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | app.c CreateTmpFs() 1211 | Mounted tmpfs at /legato/systems/current/appsWriteable/redSensorToCloud/tmp.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | app.c CreateFileLink() 1559 | Created file link ‘/tmp/legato/serviceDirectoryServer’ to ‘/legato/systems/current/appsWriteable/redSensorToCloud/tmp/legato/serviceDirectoryServer’.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | app.c CreateFileLink() 1559 | Created file link ‘/tmp/legato/serviceDirectoryClient’ to ‘/legato/systems/current/appsWriteable/redSensorToCloud/tmp/legato/serviceDirectoryClient’.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxCoreDumpFileBytes to value 102400.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxFileBytes to value 102400.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxLockedMemoryBytes to value 8192.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxFileDescriptors to value 256.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxMQueueBytes to value 512.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxThreads to value 20.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | resourceLimits.c SetRLimitValue() 282 | Setting resource limit maxQueuedSignals to value 100.
Feb 20 15:59:44 | supervisor[468]/supervisor T=main | proc.c proc_Start() 1234 | Starting process ‘redSensorToCloud’ with pid 13914
Feb 20 15:59:44 | supervisor[13914]/supervisor T=main | proc.c proc_Start() 1199 | Execing 'redSensorToCloud’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=unknown | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refPathIteratorMap’ is truncated to 'framework.hashMap_refPathIterat’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refEventHandlers’ is truncated to 'framework.hashMap_refEventHandl’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refDefault Timer SafeRe’ is truncated to 'framework.hashMap_refDefault Ti’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.MessagingClientInterfaces’ is truncated to 'framework.MessagingClientInterf’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refHandlersRef’ is truncated to 'framework.hashMap_refHandlersRe’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_MessagingServices’ is truncated to 'framework.hashMap_MessagingServ’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_MessagingClients’ is truncated to 'framework.hashMap_MessagingClie’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.PipelineSIGCHLD-reports’ is truncated to 'framework.PipelineSIGCHLD-repor’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME fs_Init() 708 | FS prefix path "/tmp/data/le_fs/"
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refFsFileRefMap’ is truncated to 'framework.hashMap_refFsFileRefM’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘framework.DestructorObjs’ overflowed. Expanded to 1 blocks.
Feb 20 15:59:44 | UNKNOWN[13914]/ T=main | _componentMain.c _sensorsComponent_Init() 29 | Initializing sensorsComponent component library.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refle_adc_ClientHandler’ is truncated to 'framework.hashMap_refle_adc_Cli’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME msgMessage_CreatePool() 112 | Pool name truncated to ‘msgs-cca082d3d4d6b9c7c11466ab2e’ for protocol ‘cca082d3d4d6b9c7c11466ab2ea74e4f’.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.msgs-cca082d3d4d6b9c7c11466ab2e’ is truncated to 'framework.msgs-cca082d3d4d6b9c7’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME le_fdMonitor_Create() 672 | FD Monitor object name ‘redSensorToCloud.sensorsComponent.le_adc’ truncated to ‘redSensorToCloud.sensorsCompone’.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘.le_adc_ClientThreadData’ overflowed. Expanded to 1 blocks.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | le_adc_client.c DoConnectService() 328 | ======= Starting client for ‘redSensorToCloud.sensorsComponent.le_adc’ service ========
Feb 20 15:59:44 | UNKNOWN[13914]/ T=main | _componentMain.c avPublisherComponent_Init() 29 | Initializing avPublisherComponent component library.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘framework.SafeRef-Map’ overflowed. Expanded to 11 blocks.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.hashMap_refle_avdata_ClientHand’ is truncated to 'framework.hashMap_refle_avdata

Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME msgMessage_CreatePool() 112 | Pool name truncated to ‘msgs-0bc0f62eed80a3990ef2c1cfc2’ for protocol ‘0bc0f62eed80a3990ef2c1cfc2c25865’.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.msgs-0bc0f62eed80a3990ef2c1cfc2’ is truncated to 'framework.msgs-0bc0f62eed80a399’
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME le_fdMonitor_Create() 672 | FD Monitor object name ‘redSensorToCloud.avPublisherComponent.le_avdata’ truncated to ‘redSensorToCloud.avPublisherCom’.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘.le_avdata_ClientThreadData’ overflowed. Expanded to 1 blocks.
Feb 20 15:59:44 | UNKNOWN[13914]/framework T=main | le_avdata_client.c DoConnectService() 328 | ======= Starting client for ‘redSensorToCloud.avPublisherComponent.le_avdata’ service ========
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | LE_FILENAME InitPool() 303 | Memory pool name ‘framework.msgs-LogControlProtocol’ is truncated to 'framework.msgs-LogControlProtoc’
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘framework.SigMonitor’ overflowed. Expanded to 1 blocks.
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘framework.SigHandler’ overflowed. Expanded to 1 blocks.
Feb 20 15:59:44 | redSensorToCloud[13914]/redSensorToCloud_exe T=main | _main.c main() 64 | == Starting Event Processing Loop ==
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | le_avdata_client.c le_avdata_CreateRecord() 2623 | Sending message to server and waiting for response : 0 bytes sent
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘.le_avdata_ClientData’ overflowed. Expanded to 1 blocks.
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | le_avdata_client.c le_avdata_AddSessionStateHandler() 3388 | Sending message to server and waiting for response : 4 bytes sent
Feb 20 15:59:44 | redSensorToCloud[13914]/framework T=main | le_avdata_client.c le_avdata_RequestSession() 3548 | Sending message to server and waiting for response : 0 bytes sent
Feb 20 15:59:44 | dcsDaemon[755]/dataConnectionService T=main | dcsServer.c LoadSelectedTechProfile() 911 | No value set for ‘SSID’!
Feb 20 15:59:44 | dcsDaemon[755]/dataConnectionService T=main | dcsServer.c TryStartWifiSession() 1808 | Impossible to use Wifi profile, result -1 (LE_NOT_FOUND)
Feb 20 15:59:44 | wifiService[775]/daemon T=main | le_wifiClient.c le_wifiClient_Disconnect() 1198 | Disconnect
Feb 20 15:59:44 | avcDaemon[844]/avcDaemon T=main | avcClient.c avcClient_Connect() 632 | Starting retry timer of 15 min at index 0
Feb 20 15:59:44 | INFO | wifiService[775] | WIFICLIENT_DISCONNECT
Feb 20 15:59:44 | =ERR= | wifiService[775] | Failed to connect to non-global ctrl_ifname: wlan0 error: No such file or directory
Feb 20 15:59:44 | wifiService[775]/daemon T=main | pa_wifi_client_ti.c pa_wifiClient_Disconnect() 1041 | WiFi Client Command Failed: (24832)wlan0 WIFICLIENT_DISCONNECT
Feb 20 15:59:44 | wifiService[775]/framework T=main | le_wifiClient_server.c Handle_le_wifiClient_Disconnect() 1350 | Sending response to client session 0x27dfc : 4 bytes sent
Feb 20 15:59:44 | dcsDaemon[755]/dataConnectionService T=main | dcsServer.c TryStopWifiSession() 2029 | Impossible to disconnect wifi client
Feb 20 15:59:44 | modemDaemon[761]/le_pa T=main | pa_sim_qmi.c MapSimState() 799 | More than one application 2
Feb 20 15:59:44 | modemDaemon[761]/le_pa T=main | pa_sim_qmi.c MapSimState() 799 | More than one application 2
Feb 20 15:59:44 | modemDaemon[761]/le_pa T=main | pa_mrc_qmi.c pa_mrc_GetNetworkRegState() 2200 | called
Feb 20 15:59:44 | modemDaemon[761]/le_pa T=main | pa_sim_qmi.c MapSimState() 799 | More than one application 2
Feb 20 15:59:50 | dcsDaemon[755]/dataConnectionService T=main | dcsServer.c AddNameserversToResolvConf() 1399 | Set DNS ‘8.8.8.8’ '4.2.2.2’
Feb 20 15:59:55 | avcDaemon[844]/avcDaemon T=main | avcClient.c BearerEventCb() 130 | connected 1
Feb 20 15:59:55 | avcDaemon[844]/avcDaemon T=main | avcFs.c ReadFs() 41 | failed to open /avc/param0: LE_NOT_FOUND
Feb 20 15:59:55 | avcDaemon[844]/avcDaemon T=main | avcFs.c DeleteFs() 140 | failed to delete /avc/param0: LE_NOT_FOUND
Feb 20 15:59:55 | secStore[766]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 808 | Sending QMI_SWI_SFS_OPEN_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=48.[0x30]
Feb 20 15:59:55 | secStore[766]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 808 | Sending QMI_SWI_SFS_OPEN_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=48.[0x30]
Feb 20 15:59:56 | secStore[766]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 808 | Sending QMI_SWI_SFS_OPEN_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=48.[0x30]
Feb 20 15:59:56 | secStore[766]/swiQmi T=main | swiQmi.c swiQmi_CheckResponse() 808 | Sending QMI_SWI_SFS_OPEN_REQ_V01 failed: rc=0 (), resp.result=1.[0x01], resp.error=48.[0x30]
Feb 20 15:59:56 | avcDaemon[844]/avcDaemon T=main | osPortSecurity.c lwm2mcore_GetCredential() 100 | Unable to retrieve credentials for 7: -1 LE_NOT_FOUND
Feb 20 15:59:57 | avcDaemon[844]/avcDaemon T=main | osUdp.c lwm2mcore_UdpConnect() 439 | sockfd 36
Feb 20 16:00:16 | avcDaemon[844]/avcDaemon T=main | avcClient.c EventHandler() 376 | Session failure
Feb 20 16:00:16 | avcDaemon[844]/avcDaemon T=main | avcClient.c EventHandler() 382 | Session failure on bootstrap server
Feb 20 16:00:16 | avcDaemon[844]/avcDaemon T=main | avcServer.c avcServer_UpdateHandler() 756 | Update state: Session stopped
Feb 20 16:00:17 | dcsDaemon[755]/dataConnectionService T=main | dcsServer.c SetDefaultGateway() 1180 | Default gateway or interface is empty
Feb 20 16:00:17 | avcDaemon[844]/framework T=main | LE_FILENAME TimerFdHandler() 448 | Stale timer expired
Feb 20 16:00:17 | redSensorToCloud[13914]/avPublisherComponent T=main | avPublisher.c AvSessionStateHandler() 908 | Assert Failed: ‘le_timer_Stop(SampleTimer)’ is not LE_OK (0)
Feb 20 16:00:17 | supervisor[468]/supervisor T=main | proc.c proc_SigChildHandler() 1986 | Process ‘redSensorToCloud’ (PID: 13914) has exited with exit code 1.
Feb 20 16:00:17 | supervisor[468]/supervisor T=main | proc.c GetFaultAction() 1788 | No fault action specified for process ‘redSensorToCloud’. Assuming ‘ignore’.
Feb 20 16:00:18 | supervisor[468]/supervisor T=main | app.c app_SigChildHandler() 3355 | Process ‘redSensorToCloud’ in app ‘redSensorToCloud’ faulted: Ignored.
Feb 20 16:00:18 | _appStopClient[14048]/framework T=main | LE_FILENAME CreateSocket() 550 | Socket opened as standard i/o file descriptor 2!
Feb 20 16:00:18 | supervisor[468]/supervisor T=main | apps.c DeactivateAppContainer() 348 | Application ‘redSensorToCloud’ has stopped.
Feb 20 16:00:59 | posDaemon[764]/le_pa_gnss T=unknown | pa_gnss_qmi.c EngineStatusHandler() 1623 | locSyncPtr->dataPtr is NULL.
Feb 20 16:01:02 | posDaemon[764]/le_pa_gnss T=unknown | pa_gnss_qmi.c EngineStatusHandler() 1623 | locSyncPtr->dataPtr is NULL.
Feb 20 16:17:39 | posDaemon[764]/le_pa_gnss T=unknown | pa_gnss_qmi.c EngineStatusHandler() 1623 | locSyncPtr->dataPtr is NULL.
Feb 20 16:17:43 | posDaemon[764]/le_pa_gnss T=unknown | pa_gnss_qmi.c EngineStatusHandler() 1623 | locSyncPtr->dataPtr is NULL.


I hope it helps.

We would definitely require a new .ova package based on 17.11 or above, OR, an Windows .exe file with embedded FW R14 for WP8548 and Legato 17.11.

Thansk much!

Rudy


#8

Can you an app status? Seems like your unit is trying to connect to WiFi service? did you configure the unit for WiFi?
Is the unit registered to AV?


#9

I didn’t configure the unit for WiFi. For now, I don’t want to even use WiFi. These are default configs. Here is the app status:


root@swi-mdm9x15:~# app status
[running] atService
[running] audioService
[running] avcCompat
[running] avcService
[running] cellNetService
[running] dataConnectionService
[running] dataRouter
[running] devMode
[stopped] drTool
[running] fwupdateService
[running] gpioExpanderServiceRed
[running] gpioService
[running] modemService
[running] mqttClient
[running] positioningService
[running] powerMgr
[stopped] redSensorToCloud
[running] secStore
[stopped] smsInboxService
[running] socialService
[stopped] spiService
[stopped] tools
[stopped] voiceCallService
[stopped] wifi
[stopped] wifiApTest
[stopped] wifiClientTest
[running] wifiService
[stopped] wifiWebAp



#10

Hello Gilles

Just to add your custom legato build to dev studio.

Example : if you build legato 17.11 you can add this to a new package in dev studio.

I think you a tuto in this forum to how add a custom legato build to dev studio.


#11

@rudy.alix
Are you using Dev Studio or command line for building what you are doing? If you follow the getting started guide, and update Legato in VM as described, do you still have a problem?
Note, we dont support Dev Studio from mangOH Team perspective. However if you are interested in using Dev Studio, you can update as shown in instructions here


#12

Hello Ashish,

I’m using the VM terminal for all what is described in the getting started. I’m using the Dev Studio for the logs only for now. Much easier to use. I have still the same issue even after updating the legator version like you described (up to 18.01). Still some api/ apps bindings issues. redSensorToCloud is crashing after a few seconds. Like Gilles said, there seems to be misalignment still between the target and the platform. We’d need a new package for WP85. From what I hear around, all this is resolved when using the WP76. I don’t have any WP76 unfortunately to perform the same tests.

Rudy

Thanks for the support.