RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
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.
The build procedure is as follows:
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 |
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
For testing Firmware Control plugin , we need HTTP server that hosts the tarred image.
For setting up a HTTP server we can use Apache 2.0 or lighttpd. Below are the steps for HTTP server using Apache 2
Server can be connected using http request, http://<ip of device> (ex: http://192.168.2.8)
We should place tar file to document root folder for accessing it. Check document root folder mentioned in conf file. This can be found in path /etc/apache2/sites-available/.
Ex: vim /etc/apache2/sites-available/000-default.conf <VirtualHost *:80> |
---|
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.
cat /etc/WPEFramework/plugins/FirmwareControl.json { "locator":"libWPEFrameworkFirmwareControl.so", "classname":"FirmwareControl", "autostart":false, "configuration":{ "download":"/var/lib", "waittime":600000 } }root@raspberrypi-rdk-hybrid-thunder:~# |
---|
Execute curl request for firmware update
|
---|
Eg: sha256sum mediaclient.tar.gz 21dd673fad68fbfd418e7bd9f0f16cb359c5743b4724c9af7347278e3183f2e4 mediaclient.tar.gz |
---|
Please find the summary on firmware upgrade explained above
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:~# |
---|