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

Compare with Current View Page History

« Previous Version 4 Next »


    

Introduction

  • This document  describes the bring-up of RdkFwUpgradeManager in RPI RDK Broadband devices for firmware upgrade by using HTTP protocol.
  • Downloaded firmware from local/public http server with support of http protocol.

Build procedure to generate R-Pi image with Firmware upgrade

Please refer the below link for host environment set-up & flashing procedure for yocto build ,

Dunfell :

RPI 3B/3B+ Model Reference Platform

Morty:

RDK-B Raspberrypi - Host SetUp and Build Instructions#BRaspberrypi-HostSetUpandBuildInstructions-YoctoBuildSteps

Repo Steps

To  build, follow below instructions


    Dunfell Build
    $ mkdir <workspace dir>
    $ cd <workspace dir> 
    $ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml 
    $ repo sync -j`nproc` --no-clone-bundle
    Morty Build
    $ mkdir <workspace dir>
    $ cd <workspace dir> 
    $ repo init -u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkb-extsrc.xml 
    $ repo sync -j`nproc` --no-clone-bundle

    FwUpgradeManager generic changes,

    FwUpgradeManager
    $cd ~/rdk/components/generic/rdk_logger
    git fetch https://code.rdkcentral.com/r/rdk/components/generic/rdk_logger refs/changes/52/60852/1 && git cherry-pick FETCH_HEAD

    Note : The above bug fixes changes are temporary given as instructions. This is not required once the change is gets merged into the appropriate repo.

    Image Generation Steps


    Build steps
    $ MACHINE=raspberrypi-rdk-broadband source meta-cmf-raspberrypi/setup-environment
    $ bitbake rdk-generic-broadband-image

    Control Flow

    Following diagram depicts the flow of control among the components,

    FwUpgradeManager

    Flashing the image


    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-broadband-image-raspberrypi-rdk-broadband.rpi-sdimg of=/dev/sdb bs=4M

    The SD card is 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

    Creating checksum file

    It is necessary to flash the stable image during upgrade. So checksum file has to be created for the image to be uploaded using below command

    md5sum checksum creation

    md5sum "<imagefile_name>.rootfs.rpi-sdimg" > imagefile_name.txt

    After checksum file is created, place this file in tftp location along with actual image file which is expected by firmware upgrade script. Without which firmware upgrade wont be allowed by scripts

    Creating Multi-Boot compatible SD-CARD if RDKB is Flashed for first time


    If firmware upgrade is intended for multi-boot, it is necessary to have partizion size matching to  RDKB image size ( especially rootfs ). 

    To make compatible, size of RDKB rootfs partition should be increased to 2 GB ( 2098 MB) from 300MB default

    This resize can be achieved using gpartedui tool which should be available in host pc


    gparted tool Install and usage


    Please resize the rootfs partition to 2098 MB or 2GB (/dev/sdb1) accordingly from below procedure as captured in various stages

    1. Select gparted tool from menu


    2. Select the rootfs partition of format ext3 for resize/move option



    3. Resize the rootfs partition by giving new size image to 2098 MiB


    4. After resize , position stands as below



    5.After modifying size, "Apply all operations" using tick symbol in UI which displays icon as below




    6. After giving "Apply icon" position stands as below



    7. After resizing is completed 

    8. After applying close size increased to 2 GB can be seen

     

    With selection of HTTP Protocol

    Server Set-up :

    1. Install the apache2 http server in local pc
    2.  Add the below line in /etc/hosts (192.168.0.107(wan IP) http://www.myfirmware.com)
    3.  place the rpi image and checksum files in document root directory.


    RPI Target :


    9.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 : 192.168.0.128 www.myfirmware.com)
    iii) Save the file.

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










    HTTP Location folder

    Verify that image file and its respective md5 checksum file is present in the http folder:

    keerthana@keerthana-INVALID:/var/www/html$ ls
    rdkb-generic-broadband-image_default_20200529140558.rootfs.rpi-sdimg
    folder rdkb-generic-broadband-image_default_20200529140558.txt


    RPi - Board

    1. Flash the RDKB image supported for Firmware upgrade feature in the Rpi and verify the 2 partitions(ex. mmcblk0p1, mmcblk0p2) present under dev folder (use command ls /dev)
    2. Device auto-reboots and verify there are 2 more additional partitions are created (ex. mmcblk0p3, mmcblk0p4).
    3. Open /etc/include.properties file and verify the CLOUDURL parameter where XConf Server URL is configured
    4. Verify the image version ( cat /version.txt) displays the flashed image version
    5. Open /rdklogs/logs/swupdate.log to verify the communication from RPI board with XConf Server and the download status
    6. Verify the tftp download is happening by noticing the change of file size using below command:cd /extblock/tftpimage/imagedwnldls -lh  (use this command frequently to verify the file size change) if tftp protocol was selected in XCONF UI
    7. Verify the http download is happening by noticing the change of file size using below command : cd /extblock/httpimage/imagedwnldls -lh(use this command frequently to verify the file size change)if http protocol was selected in XCONF UI
    8. Once image download completed, the Rpi board will auto reboot and come up with downloaded image
    9.  Verify the version of booted image which shows the downloaded image version

    TroubleShooting

    1.  If output.json will not be generated in /nvram folder. Please check the network connection in RPI Device.
    2. Also, check the status of swupdate service by using the below command,
      1.  systemctl status swupdate.service
    3. Check the swupdate logs in below path,
      1. cat /rdklogs/logs/swupdate.log

    Conclusion

    Please find the summary on firmware upgrade explained above

    • Build the image ( RDKB ).
    • Ensure 8GB sd-card is available for flashing
    • Flash the build image to sd-card
    • If Firmware upgrade is targeted for multi boot and RDKB image is flashed for the first time follow resize procedure
    • Setup xconf server ready with rules and download location for RPI device
    • Place the new image in xconf server
    • Boot the flashed image

    Note : 1. RPI will go for reboot while booting for the first time, since two more partition needs to be created which requires reboot. Depends on the image present in xconf and RPI, further reboot will happen for upgrade. Please refer to design (RDKB RPI Firmware Upgrade with support of HTTP protocol - Design - 2020 M6) for how firmware upgrade works with bank switching

    2. SD card should be zero filled formatted before starting the firmware upgrade procedure. DriveWipe software is used for this. Please refer the you-tube video link for the SD card full format process.

    https://youtu.be/CZhsVBEMYuk

    3. If the user wants to view swupdate.log file then follow below steps:
        a) Disable log rotation feature - This wipes out the log file if size exceeds after 1min
            For B image  command - systemctl disable rdkbLogMonitor
           
       b) Reboot the box - This will make swupdate.service restart and user can start getting swupdate.log for B image

    4. Broadband(size 292MB) image takes roughly 20 min time from Cloud server(Xconf).

    5. Minimum extended partition should be 1GB, to verify firmware feature.


    • No labels