You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Introduction

  • The Firmware upgrade will upgrade higher or lower version of the current image for Turris-Omnia with the help of Xconf server and Local TFTP/HTTP server.

  • This page dedicated to bringing up and validation of Firmware upgrade in Turris-Omnia. 

Environment Setup

Build procedure

Follow the wiki page to make yocto's RDK-B image from yocto workspace in your PC.

Wifi-Extender Yocto Build Instructions

Image Flash procedure

Refer the below link for image flashing

Turris Omnia Reference Platform: Flashing Instruction

Test Setup Block Diagram 

Firmware Upgrade validation Procedure

Server Setup for Downloading Image

Either TFTP/ HTTP server can be used to download the image, depends on the requirement.

Things to be done before checking for the server configurations:

STEP 1:

Create a .tar file and place the image files.

For Example, the image files are,

  • zImage--4.14.22-r0-turris-20200629035029.bin
  • rdkb-generic-broadband-image_default_20200629035029.rootfs.tar.gz

tar -cvf <imagefile_name>.tar <path-of-rdkb*.rootfs.tar.gz> <path-of-zImage*.bin>

For Ex:
tar -cvf rdkb-generic-broadband-image_default_20200629035029.tar /home/kaviya/rdkb-generic-broadband-image_default_20200629035029.rootfs.tar.gz /home/kaviya/zImage--4.14.22-r0-turris-20200629035029.bin


STEP 2:

Create checksum file for the upgrading image.
md5sum checksum creation

md5sum "<imagefile_name>.tar" > imagefile_name.txt
 
For Ex:
md5sum "rdkb-generic-broadband-image_default_20200629035029.tar" > rdkb-generic-broadband-image_default_20200629035029.txt

TFTP Server Setup

STEP 1:

Install xinetd and tftpd-hpa application in your local PC to setup tftp server by using below command
TFTP Server Installation Step

sudo apt-get install xinetd
sudo apt-get install tftpd-hpa


STEP 2:

Create new folder for example "tftp" in your PC home directory and place the checksum file and upgrading image file (the .tar file generated).

STEP 3:

Check for tftp file in /etc/xinetd.d/ directory. If not, then create tftp file under this /etc/xinetd.d/ directory and add below content.

vi /etc/xinetd.d/tftp
TFTP File Content

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = -c -v -s /home/xyz/tftp ( upgrading file and checksum file  maintained in this directory )
disable         = no
}


STEP 4:

Verify /etc/default/tftpd-hpa file content

vi /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa
 
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/xyz/tftp" ( upgrading file and checksum file  maintained in this directory )
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"


STEP 5:

Start tftp server and xinetd server

sudo service tftpd-hpa restart
/etc/init.d/xinetd restart

HTTP Server Setup

STEP 1:

Ensure the http server in running in the local PC. If not, then activate or install it (For Example, Lighttpd)

STEP 2:

Once the server is running, place the necessary files in the below path.

Path of the image file to be placed: /var/www/html

This directory should contain the image file and the checksum file:

For Ex:
rdkb-generic-broadband-image_default_20200629035029.tar

rdkb-generic-broadband-image_default_20200629035029.txt

XCONF Server Setup

XConf URL

http://35.155.171.121:9093/admin/ux

Create Environment

Select  common → Environments. Then click edit and enter the device environment detail.

Create Model

Select common → Models. Then add your device model detail.

Create Mac List

Select common → MAC Lists. Then add your device MAC detail


NOTE: Before configuring Firmware essentials, Ensure application type is stb. (If the application type is xhome then change it)

Create Firmware Config

Select Firmware → Firmware Configs. 

Give Description,File name ( Upgrading image name ),Version( Upgrading image name without extension) and select your model name and save the details in xconf server.

Create Firmware Rules

Select Firmware → Firmware Rules

Choose MAC_RULE in the list of Template displayed.

Once entered into Firmware Rule page, If any estbmac present under build condition then remove that estmac before adding the device specific Firmware rules.

Add your device specific eStbMac under build condition option.

Select your firmware config under Action option and save your Firmware rule in XConf server.


Edit Download Location Round Robin Filter

Select Firmware → Download Location Filter

After entered Download Location Round Robin filter, then edit your image downloading details.

For TFTP Server

STEP 1:

Enable Never use HTTP and select your Rongue model.

Give TFTP server running IP address to download image.


STEP 2:

Verify that XConf Server configuration displays the Json response from the mentioned URL:

http://<Xconf Server IP:port no.>/xconf/swu/stb?eStbMac=<MAC address>

Example, http://35.155.171.121:9092/xconf/swu/stb?eStbMac=D8:58:D7:00:A6:B4

For HTTP Server

STEP 1:

1) Enter the "Location (FQDN)" field is local/Public http server (fully qualified domain name ) (ex : www.myfirmware.com)
2) Enter the "Location (full URL)" field is full location path of local/Public http server (ex : http://www.myfirmware.com)
3) Unclick the check box of Never use HTTP
4) Removed the model name from Rogue Models and removed the firmware version (If it's not updated earlier, please ignore this step).
5) click the save button.
6) In DUT, please edit the following file with below format,If it's local http server
i) Open the /etc/hosts
ii) Add your local http server ip with DNS ( Ex : <Machine IP where http server is running> www.myfirmware.com)
iii) Save the file.

Note : Every reboot, You need to add the above three steps if it's local http server.

7) If it's local http server, please add the below line in /etc/hosts

 <wan IP of board> http://myfirmware.com

STEP 2:

Verify that XConf Server configuration displays the Json response from the mentioned URL:

http://<Xconf Server IP:port no.>/xconf/swu/stb?eStbMac=<MAC address>

Example, http://35.155.171.121:9092/xconf/swu/stb?eStbMac=D8:58:D7:00:A6:B4


Turris-Omnia Board

U-boot-fw-Utils Configuration:

1) Add the necessary firmware utilities in armada_38x_defconfig

2) In fw_env.config, set MTD device specifications

3) Device specific details are added  and try to retrieve the data by executing fw_printenv

4) Once, that is done try to set the bootargs by using fw_setenv and verify the same

Note: The U-boot Configuration is added to handle the uboot environment in linux. This is specifically to change the root value in bootargs ( to avoid the old rootfs in mmcblk0p5 and  load the downloaded rootfs that has been placed in the mmcblk0p7). And so, the new rootfs comes up while the reboot.

Firmware upgrade :

1) Flash the image and confirm for the 7 partitions in the turris-omnia board(ex. mmcblk0p1, mmcblk0p2, mmcblk0p3, mmcblk0p4, mmcblk0p5, mmcblk0p6, mmcblk0p7)

2) Ensure Partition7 is of ext2 file system

3) verify the CLOUDURL parameter where XConf Server URL is configured

4) Start the swupdate.service that initiates the firmware upgrade

5) Verify the image version ( cat /version.txt) displays the flashed image version

6) Download the image in the /tmp folder and move the rootfs filesystem(rdk*.rootfs.tar.gz) into the 7th partition and kernel (zImage*.bin) image into 3rd partition

7) By changing the Active partition (mmcblk0p5) by target partition (mmcblk0p7) the downloaded rootfs is loaded 

8) On reboot, the turris board comes up with the downloaded image

9) Verify the version of booted image which shows the downloaded image version

Conclusion:

Please find the summary on firmware upgrade explained above

  • Build the Rdkb Turris Image
  • Flash the build image 
  • Setup xconf server ready with rules and download location for Turris-Omnia device
  • Place the upgrading image and checksum file in tftp/http server as needed
  • Boot the flashed image

Limitations/TroubleShooting:

Image Download is verified only with TFTP server

  • No labels