LTE CPE Firmware Upgrade Issue


I have created Preset named ‘FirmwareUpgrade’ and triggered on ‘1 BOOT’ Event. And my Provisioning script like below. Does ‘Downloads.URL’ method works in genieacs? as per the tr-069 protocol it should work. But below didn’t work. If any one have an idea please help.

log(">>> Event = Firmware Upgrade Check Start");
let serialNumber = declare("DeviceID.SerialNumber", { value: 1 }).value[0];
let sModel = declare("DeviceID.ProductClass", { value: 1 }).value[0];
let version = declare("InternetGatewayDevice.DeviceInfo.SoftwareVersion", { value: 1 }).value[0];

if(sModel == 'MODEL1'){
    log(`${serialNumber} >>> ${sModel} >>> ${version} Firmware Upgrade Start`);
    declare("Downloads.[FileType:1 Firmware Upgrade Image]", {path: 1}, {path: 1});
    declare("Downloads.[FileType:1 Firmware Upgrade Image].FileName", {value: 1}, {value: "firmware_name.bin"});
    declare("Downloads.[FileType:1 Firmware Upgrade Image].URL", {value: 1}, {value: "ftp://x.x.x.x/firmware_name.bin"});
    declare("Downloads.[FileType:1 Firmware Upgrade Image].Username", {value: 1}, {value: "user"});
    declare("Downloads.[FileType:1 Firmware Upgrade Image].Password", {value: 1}, {value: "pass"});
    declare("Downloads.[FileType:1 Firmware Upgrade Image].Download", {value: 1}, {value: now});
    log(`${serialNumber} >>> ${sModel} >>> ${version} Firmware Upgrade Completed`);

Why host the firmware files on an alternate server? GenieACS has a built-in file server for this exact purpose.

Thanks. I got the idea. Now I have tried using file upload method. But it pops up download failure error,

faultCode: "9010"
faultString: Download failure
setParameterValuesFault: null

curl --location 'http://localhost:32334/devices/D8D866-ZLT%2520S10-S1086434535768/tasks?connection_request=null' --header 'Content-Type: application/json' --data '{"name": "download", "fileType": "1 Firmware Upgrade Image", "file": "S10_V3E_S10-Sfdfdfd_dff_RF01_E_signature_1.23.1.img"}'

Firmware upgrade initiated using above API call. Seeking your expert support on this issue.

You would need to look in the logs on the CPE. Where is it actually trying to download the file from? Check the fs logs to see if the CPE is even attempting.

You may need to set the GENIEACS_FS_URL_PREFIX option in the genieacs.env file. Mine is set to http://<ip_address>:7567/

1 Like

This worked. Thanks for the support.