Introduction

     This document describes the firmware update of RPI board using FirmwareControl plugin.Plugin can be enabled via controller UI once image is booted. Based on the request given to board, tarred firmware image is downloaded to RPI board from the given HTTP server and the image is updated accordingly.

Environment Setup

 The build procedure is as follows:

  • Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access.
  • Please login to code.rdkcentral.com before attempting to clone.

Flashing the image

   Image is flashed to SD card before inserting to RPI board.   

sd-card size requisite

It is must to have minimal size of 8GB SD-Card for Firmware upgrade support

Command to flash the image

    Generated image has to be flashed to an SD card using this command in local PC:

$ sudo dd if=<path to ImageName.rpi-sdimg> of=<path to SD card space> bs=4M


Ex: 

$ sudo dd if=rdk-generic-hybrid-thunder-image_default_20200302130659.rootfs.rpi-sdimg of=/dev/sdc bs=4M
317+0 records in
317+0 records out
1329594368 bytes (1.3 GB, 1.2 GiB) copied, 104.88 s, 12.7 MB/s
$ sync


The SD card is then inserted to the Raspberry Pi board and booted to check for containers created.

The Raspberry Pi board is connected to the PC via a USB to serial converter and the logs can be checked in console or can be connected via HDMI cable to a TV and logs will be shown in the terminal

Test Setup

        For testing Firmware Control plugin , we need HTTP server that hosts the tarred image.

   


Setting up a HTTP server:

    For setting up a HTTP server we can use Apache 2.0 or lighttpd. Below are the steps for HTTP server using Apache 2 

Enabling the FirmwareControl Plugin:

   FirmwareControl plugin is enabled or disabled via Controller UI. Controller UI is launched using browser via http://<board ip>

   Ex: http://192.168.2.20

Upon booting the image, firmwareControl plugin will be disabled

Plugin needs to be enabled before proceeding with firmware update.

 

RPi - Board :

Eg: sha256sum mediaclient.tar.gz
21dd673fad68fbfd418e7bd9f0f16cb359c5743b4724c9af7347278e3183f2e4 mediaclient.tar.gz

Conclusion

Please find the summary on firmware upgrade explained above

Limitations: 

TroubleShooting 

   

root@raspberrypi-rdk-hybrid-thunder:~# df -h
Filesystem       Size      Used        Available Use% Mounted on
/dev/root      1.1G      607.4M     443.3M   58%      /
devtmpfs     300.5M   0            300.5M      0%       /dev
tmpfs           305.0M   4.0K       305.0M      0%      /dev/shm
tmpfs           305.0M   8.4M       296.6M     3%     /run
tmpfs           305.0M   0              305.0M    0%     /sys/fs/cgroup
tmpfs           305.0M   292.0K     304.7M    0%    /tmp
tmpfs           305.0M   292.0K     304.7M    0%    /etc/snmp/snmpd.conf
tmpfs           305.0M   28.0K       305.0M    0%    /var/volatile
/dev/root    1.1G        607.4M    443.3M   58%   /var/lib
root@raspberrypi-rdk-hybrid-thunder:~#