Update Process hangs after Payload is copied completely


I am using a FX30S with Legato 16.10.1. Now I tried to update an app via serial interface (/dev/ttyHSL0). But the process just stops after copying the Payload:

updateDaemon.c le_update_Start() 1710 | Update request accepted.

updateUnpack.c CopyBytesToPipeline() 554 | Payload copied: 838/147236

updateUnpack.c CopyBytesToPipeline() 554 | Payload copied: 147236/147236

after that nothing happens anymore…
If I use a local file (on the modem) instead, it works fine!
I would like to add a progress handler using le_update_AddProgressHandler(), but the handler is never called.

By the way: The API interface seems to be incorrect and/or outdated. While in the sample Code (http://legato.io/legato-docs/latest/c_update.html#update_example) le_update_Start() is called with three parameters, in the Api Reference (http://legato.io/legato-docs/latest/le__update__interface_8h.html#a5b2d287f2403b1228df7ac257f3becd7) it’s called only with one parameter. Also the Api Guide doesn’t match the Legato version I’m using at all.

Is there any timeout (copying payload takes 13 seconds) or what could be the reason the updateDeamon stops after that?

Would be great if somebody knows a solution! :grinning:


My solution is to copy the update file on the modem. Then I open this file and pass the fd to UpdateStart().