Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

...

Deck of Cards
idRepo Steps
Repo
Card
idRepo steps
labelDunfell Build
Code Block
languagebash
themeDJango
titleDunfell 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
Card
id



Image Generation Steps


Morty
labelMorty Build
Code Block
languagebash
themeDJango
title
Build steps
$ 
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,

Code Block
languagebash
themeDJango
titleFwUpgradeManager
collapsetrue
$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

Code Block
languagebash
themeDJango
titleBuild steps
$ MACHINE=raspberrypi-rdk-broadband source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic-broadband-image

Overall Architecture

Following diagram depicts the flow of control among the components,

Gliffy Diagram
macroIdbe245e43-7738-4b49-b245-d822ea9d2818
displayNameFwUpgradeManager
nameFwUpgradeManager
pagePin2

TR-181 Data Model Parameters 

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

Overall Architecture

Following diagram depicts the flow of control among the components,

Gliffy Diagram
macroIdbe245e43-7738-4b49-b245-d822ea9d2818
displayNameFwUpgradeManager
nameFwUpgradeManager
pagePin3

TR-181 Data Model Parameters 


Device.FirmwareDownloadURL
S.NODMValueDescription
1Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURLhttp://192.168.0.8 Value should be local/public http server url
2Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadProtocolhttpValue should be auto-generated based on above parameter Input
3Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownloadrdkb-generic-broadband-image_rdk-next_20210525055548.rootfs.wicValue should be Firmware Image Name .

Note: This API does not reboot the device.

4Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadStatusCompletedReturns the current state of the Firmware Download operation.
5Device.
S.NODMValueDescription
1DeviceInfo.X_RDKCENTRAL-COM_http://192.168.0.8 Value should be local/public http server url
2Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadProtocolhttpValue should be auto-generated based on above parameter Input
3Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownloadrdkb-generic-broadband-image_rdk-next_20210525055548.rootfs.wicValue should be Firmware Image Name .

Note: This API does not reboot the device.

4Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadStatusCompletedReturns the current state of the Firmware Download operation.
5Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNowTrue 

Downloads and upgrades the firmware. The firmware is updated in the passive bank and marks it as active.

Reboots the device and the device boots up with the active bank and updated firmware.

Pre-requisites - I

Flashing the image

Info
titlesd-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:

...

bzip2 -d <path to ImageName.wic.bz2>
$ sudo -E bmaptool copy --nobmap <path to ImageName.wic> <path to SD card space>

Ex:

...

$ bzip2 -d rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic.bz2
$ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic /dev/sdb

FirmwareDownloadNowTrue 

Downloads and upgrades the firmware. The firmware is updated in the passive bank and marks it as active.

Reboots the device and the device boots up with the active bank and updated firmware.


Pre-requisites - I

Flashing the image


Info
titlesd-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:

bzip2 -d <path to ImageName.wic.bz2>
$ sudo -E bmaptool copy --nobmap <path to ImageName.wic> <path to SD card space>

Ex:

$ bzip2 -d rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic.bz2
$ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic /dev/sdb

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

Increasing the rootfs partition size in SD-CARD if Flashed for first time

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 5 GB ( 5098 MB) from 300MB default

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

Here , example we given as 2GB.

Info
titlegparted tool Install and usage

sudo apt-get install gparted

https://gparted.org/display-doc.php%3Fname%3Dmoving-space-between-partitions


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

Image Added


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

Image Added


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

Image Added


4. After resize , position stands as below

Image Added


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


Image Added


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


Image Added


7. After resizing is completed 

Image Added

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

Image Added

Local Apache2 server set up

Server Set-up 

  1.  Install the apache2 http server in local pc
  2.  place the rpi image in document root directory.

HTTP Location folder

Verify that rpi image file  is present in the http folder. Here , document root directory as "/var/www/html"

Code Block
languagebash
themeDJango

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

Increasing the rootfs partition size in SD-CARD if Flashed for first time

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 gparted ui tool which should be available in host pc

Info
titlegparted tool Install and usage

sudo apt-get install gparted

https://gparted.org/display-doc.php%3Fname%3Dmoving-space-between-partitions

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

Image Removed

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

Image Removed

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

Image Removed

4. After resize , position stands as below

Image Removed

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

Image Removed

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

Image Removed

7. After resizing is completed 

Image Removed

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

Image Removed

Local Apache2 server set up

Server Set-up 

  1.  Install the apache2 http server in local pc
  2.  place the rpi image in document root directory.

HTTP Location folder

Verify that rpi image file  is present in the http folder. Here , document root directory as "/var/www/html"

Code Block
languagebash
themeDJango
titleLocal Http server Document root path
collapsetrue
keerthana@keerthana-INVALID:/var/www/html$ pwd
/var/www/html
keerthana@keerthana-INVALID:/var/www/html$ ls -lh rdkb-generic-broadband-image_rdk-next_20210813104338.rootfs.wic
-rw-r--r-- 1 root root 316M Aug 13 17:29 rdkb-generic-broadband-image_rdk-next_20210813104338.rootfs.wic
keerthana@keerthana-INVALID:/var/www/html$ 

...

Code Block
languagebash
themeDJango
titleLog file
root@RaspberryPi-Gateway:~# cat /rdklogs/logs/FwUpgradeManagerLog.txt.0 
210805-16:04:07.534093 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872] 
After daemonize before signal
210805-16:04:07.535782 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872] Connect to bus daemon...
210805-16:04:07.536150 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] DBus is enabled
210805-16:04:07.549648 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872] INFO: bus_handle: 0x 169ce08 
210805-16:04:08.556185 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.
210805-16:04:08.556397 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.cisco.
210805-16:04:08.556525 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.cisco.spvtg.
210805-16:04:08.556656 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.cisco.spvtg.ccsp.
210805-16:04:08.558086 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] DM Library module name = CCSP Base Data Model
210805-16:04:08.558481 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872]  Download_Control_Flag is 1 
210805-16:04:08.558714 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872]  Current FW Version is rdkb-generic-broadband-image_rdk-next_20210813103706 
210805-16:04:08.558846 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] syscfg_get failed
210805-16:04:08.566939 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] DM Library module name = TR181_RdkFirmwareUpgradeManager
210805-16:04:08.568084 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Search for empty object in 'dslhCpeCheckEmptyObject'
root@RaspberryPi-Gateway:~# 

Execution Steps

                   Please run the below commands for FwUpgrade Manager,


210805-16:04:07.535782 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872] Connect to bus daemon...
210805-16:04:07.536150 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] DBus is enabled
210805-16:04:07.549648 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872] INFO: bus_handle: 0x 169ce08 
210805-16:04:08.556185 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.
210805-16:04:08.556397 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.cisco.
210805-16:04:08.556525 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.cisco.spvtg.
210805-16:04:08.556656 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Register empty object : com.cisco.spvtg.ccsp.
210805-16:04:08.558086 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] DM Library module name = CCSP Base Data Model
210805-16:04:08.558481 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872]  Download_Control_Flag is 1 
210805-16:04:08.558714 [mod=FWUPGRADEMANAGER, lvl=INFO] [tid=872]  Current FW Version is rdkb-generic-broadband-image_rdk-next_20210813103706 
210805-16:04:08.558846 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] syscfg_get failed
210805-16:04:08.566939 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] DM Library module name = TR181_RdkFirmwareUpgradeManager
210805-16:04:08.568084 [mod=FWUPGRADEMANAGER, lvl=WARN] [tid=872] Search for empty object in 'dslhCpeCheckEmptyObject'
root@RaspberryPi-Gateway:~# 

Execution Steps

                   Please run the below commands for FwUpgrade Manager,

Using dmcli commands

                 Below steps are used to validate the FwUpgrade by using dmcli commands,

Code Block
languagebash
themeDJango
titledmcli commands
root@RaspberryPi-Gateway:~# dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL string "http://192.168.0.7"
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL
Execution succeed.

root@RaspberryPi-Gateway:~# dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload string "rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic"
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload
Execution succeed.

root@RaspberryPi-Gateway:~# dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow bool true
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow
Execution succeed.

root@RaspberryPi-Gateway:~# 

Code Block
languagebash
themeDJango
titleGet Commands
root@RaspberryPi-Gateway:/# dmcli eRT getv Device.DeviceInfo.
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): Device.DeviceInfo.
Execution succeed.
Parameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadStatus
               type:     string,    value: Completed
Parameter    2 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadProtocol
               type:     string,    value: HTTP 
Parameter    3 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL
               type:     string,    value: http://192.168.0.7 
Parameter    4 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload
               type:     string,    value: rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic 
Parameter    5 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow
               type:       bool,    value: false 
Parameter    6 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadAndFactoryReset
               type:        int,    value: 0 
Parameter    7 name: Device.DeviceInfo.X_RDKCENTRAL-COM_xOpsDeviceMgmt.RPC.DeferFWDownloadReboot
               type:       uint,    value: 290 

The New Firmware Image is downloaded at /firmware/imagedwld and Use 'ls -lh' command to check the image size.

Code Block
languagebash
themeDJango
titleNewFw_Imagedwld_path
root@RaspberryPi-Gateway:/firmware/imagedwld# pwd
/firmware/imagedwld
root@RaspberryPi-Gateway:/firmware/imagedwld# ls -lh rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic 
-rw-r--r--    1 root     root      316.0M Aug 20 09:40 rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic
root@RaspberryPi-Gateway:/firmware/imagedwld# 

Use 'fdisk  -l'  & mount command to check the available partitions.


Code Block
languagebash
themeDJango
titlefdisk
collapsetrue
Device         Boot    Start      End Sectors  Size Id Type
/dev/mmcblk0p1 *        8192   112525  104334   51M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        114688  9822207 9707520  4.6G 83 Linux
/dev/mmcblk0p3       9822208 14016512 4194305    2G 83 Linux
/dev/mmcblk0p4      14016513 18210817 4194305    2G 83 Linux

root@RaspberryPi-Gateway:/ df -h | grep extblock
/dev/mmcblk0p4            1.9G    246.9M      1.5G  13% /extblock
/dev/mmcblk0p1           50.8M     29.2M     21.6M  58% /extblock/bank0_linux
/dev/mmcblk0p2            4.5G     95.0M      4.2G   2% /extblock/bank0_rootfs

root@RaspberryPi-Gateway: mount | grep extblock
/dev/mmcblk0p4 on /extblock type ext4 (rw,relatime)
/dev/mmcblk0p1 on /extblock/bank0_linux type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/mmcblk0p2 on /extblock/bank0_rootfs type ext4 (rw,relatime)
 

Using Webpa

               Below steps are used to validate the fwupgrade by using webpa commands,

prerequisite

               Please use the below command to check the webpa & parodus process are running successfully or not.

Code Block
languagebash
themeDJango
titlewebpa
collapsetrue
root@RaspberryPi-Gateway:~# ps aux | grep webpa
 5827 root      0:01 /usr/bin/parodus --hw-model=RPI --hw-serial-number=00000000a31b564c --hw-manufacturer=Raspberry --hw-last-reboot-reason= --fw-name=rdkb-generic-broadband-image_rdk-next_20210813103706 --boot-time=1629896069 --hw-mac=B8:27:EB:1B:56:4C --webpa-ping-time=180 --webpa-interface-used=erouter0 --webpa-url=http://54.148.37.189:8080 --webpa-backoff-max=9 --parodus-local-url=tcp://127.0.0.1:6666 --partner-id=comcast --ssl-cert-path=/etc/ssl/certs/ca-certificates.crt --force-ipv4
 5884 root      0:02 /usr/bin/webpa &
28195 root      0:00 webpa
28608 root      0:00 grep webpa
root@RaspberryPi-Gateway:~# 

Curl Commands

WebPA Set 

Code Block
languagebash
themeDJango
titlecurl - set
root@RaspberryPi-Gateway:~# curl -X PATCH http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config -d '{"parameters": [ {"dataType": 0, "name": "Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL", "value": "http://192.168.0.10"}]}' -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK'
{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL","message":"Success"}],"statusCode":200}
root@RaspberryPi-Gateway:~#

root@RaspberryPi-Gateway:~# curl -X PATCH http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config -d '{"parameters": [ {"dataType": 0, "name": "Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload", "value": "rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic"}]}' -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK'
{"parameters":[{"name":"
Code Block
languagebash
themeDJango
titledmcli commands
root@RaspberryPi-Gateway:~# dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL string "http://192.168.0.7"
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL
Execution succeed.

FirmwareToDownload","message":"Success"}],"statusCode":200}

root@RaspberryPi-Gateway:~#   root@RaspberryPi-Gateway:~# dmclicurl eRT-X setv Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload string "rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic"
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): PATCH http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config -d '{"parameters": [ {"dataType": 3, "name": "Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow", "value": "true"}]}' -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK'
{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload
Execution succeed.FirmwareDownloadNow","message":"Success"}],"statusCode":200}

root@RaspberryPi-Gateway:~# dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow bool true
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
setv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): 
 

WebPA Get

Code Block
languagebash
themeDJango
titlecurl - Get
collapsetrue
root@RaspberryPi-Gateway:~# curl -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK' -i http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config?names=Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow
Execution succeed.

root@RaspberryPi-Gateway:~# 

Code Block
languagebash
themeDJango
titleGet Commands
root@RaspberryPi-Gateway:/# dmcli eRT getv Device.DeviceInfo.
CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.fwupgrademanager): Device.DeviceInfo.
Execution succeed.
Parameter    1 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadStatus
               type:     string,    value: Completed
Parameter    2 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadProtocol
               type:     string,    value: HTTP 
Parameter    3 name: FirmwareDownloadURL
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Scytale-Build: 0.1.4-1
X-Scytale-Flavor: mint
X-Scytale-Region: east
X-Scytale-Server: 54.148.37.189
X-Scytale-Start-Time: 23 Jul 19 11:55 UTC
X-Talaria-Build: 0.1.3-1
X-Talaria-Flavor: mint
X-Talaria-Region: east
X-Talaria-Server: 54.148.37.189
X-Talaria-Start-Time: 22 Jul 19 09:34 UTC
X-Tr1d1um-Build: 0.1.2-1
X-Tr1d1um-Flavor: mint
X-Tr1d1um-Region: east
X-Tr1d1um-Server: 54.148.37.189
X-Tr1d1um-Start-Time: 22 Jul 19 07:07 UTC
X-Webpa-Transaction-Id: fC0LI-meLU0OIKStT94L_w
X-Xmidt-Span: "http://localhost:8080/api/v2/device/send","2021-08-25T14:03:21Z","252.811878ms"
Date: Wed, 25 Aug 2021 14:03:22 GMT
Content-Length: 181

{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadURL
               type:     string,    value: ","value":"http://192.168.0.7 
Parameter    4 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload
               type:     string,    value: rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic 
Parameter    5 name: 10","dataType":0,"parameterCount":1,"message":"Success"}],"statusCode":200}

root@RaspberryPi-Gateway:~# curl -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK' -i http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config?names=Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadNow
FirmwareToDownload   
HTTP/1.1            type:       bool,    value: false 
Parameter    6 name: Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadAndFactoryReset
               type:        int,    value: 0 
Parameter    7 name: Device.DeviceInfo.X_RDKCENTRAL-COM_xOpsDeviceMgmt.RPC.DeferFWDownloadReboot
               type:       uint,    value: 290 

The New Firmware Image is downloaded at /firmware/imagedwld and Use 'ls -lh' command to check the image size.

Code Block
languagebash
themeDJango
titleNewFw_Imagedwld_path
root@RaspberryPi-Gateway:/firmware/imagedwld# pwd
/firmware/imagedwld
root@RaspberryPi-Gateway:/firmware/imagedwld# ls -lh rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic 
-rw-r--r--    1 root     root      316.0M Aug 20 09:40 200 OK
Content-Type: application/json; charset=utf-8
X-Scytale-Build: 0.1.4-1
X-Scytale-Flavor: mint
X-Scytale-Region: east
X-Scytale-Server: 54.148.37.189
X-Scytale-Start-Time: 23 Jul 19 11:55 UTC
X-Talaria-Build: 0.1.3-1
X-Talaria-Flavor: mint
X-Talaria-Region: east
X-Talaria-Server: 54.148.37.189
X-Talaria-Start-Time: 22 Jul 19 09:34 UTC
X-Tr1d1um-Build: 0.1.2-1
X-Tr1d1um-Flavor: mint
X-Tr1d1um-Region: east
X-Tr1d1um-Server: 54.148.37.189
X-Tr1d1um-Start-Time: 22 Jul 19 07:07 UTC
X-Webpa-Transaction-Id: jpdlC7t-S8vMwLjENt1niA
X-Xmidt-Span: "http://localhost:8080/api/v2/device/send","2021-08-25T14:06:59Z","254.980233ms"
Date: Wed, 25 Aug 2021 14:06:59 GMT
Content-Length: 224

{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareToDownload","value":"rdkb-generic-broadband-image_rdk-next_20210818080531.rootfs.wic.rootfs.wic","dataType":0,"parameterCount":1,"message":"Success"}],"statusCode":200}

root@RaspberryPi-Gateway:/firmware/imagedwld# 

Use 'fdisk  -l'  & mount command to check the available partitions.

Code Block
languagebash
themeDJango
titlefdisk
collapsetrue
Device         Boot    Start      End Sectors  Size Id Type
/dev/mmcblk0p1 *        8192   112525  104334   51M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        114688  9822207 9707520  4.6G 83 Linux
/dev/mmcblk0p3       9822208 14016512 4194305    2G 83 Linux
/dev/mmcblk0p4      14016513 18210817 4194305    2G 83 Linux

root@RaspberryPi-Gateway:/ df -h | grep extblock
/dev/mmcblk0p4            1.9G    246.9M      1.5G  13% /extblock
/dev/mmcblk0p1           50.8M     29.2M     21.6M  58% /extblock/bank0_linux
/dev/mmcblk0p2            4.5G     95.0M      4.2G   2% /extblock/bank0_rootfs

root@RaspberryPi-Gateway: mount | grep extblock
/dev/mmcblk0p4 on /extblock type ext4 (rw,relatime)
/dev/mmcblk0p1 on /extblock/bank0_linux type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/mmcblk0p2 on /extblock/bank0_rootfs type ext4 (rw,relatime)
 ~# curl -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK' -i http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config?names=Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadProtocol
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Scytale-Build: 0.1.4-1
X-Scytale-Flavor: mint
X-Scytale-Region: east
X-Scytale-Server: 54.148.37.189
X-Scytale-Start-Time: 23 Jul 19 11:55 UTC
X-Talaria-Build: 0.1.3-1
X-Talaria-Flavor: mint
X-Talaria-Region: east
X-Talaria-Server: 54.148.37.189
X-Talaria-Start-Time: 22 Jul 19 09:34 UTC
X-Tr1d1um-Build: 0.1.2-1
X-Tr1d1um-Flavor: mint
X-Tr1d1um-Region: east
X-Tr1d1um-Server: 54.148.37.189
X-Tr1d1um-Start-Time: 22 Jul 19 07:07 UTC
X-Webpa-Transaction-Id: MS7xPwO8ZsClcJpUSkqxjQ
X-Xmidt-Span: "http://localhost:8080/api/v2/device/send","2021-08-25T14:10:13Z","253.576482ms"
Date: Wed, 25 Aug 2021 14:10:13 GMT
Content-Length: 171

{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadProtocol","value":"HTTP","dataType":0,"parameterCount":1,"message":"Success"}],"statusCode":200}   root@RaspberryPi-Gateway:~# curl -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK' -i http://54.148.37.189:9003/api/v2/device/mac:B8:27:EB:1B:56:4C/config?names=Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadStatus
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Scytale-Build: 0.1.4-1
X-Scytale-Flavor: mint
X-Scytale-Region: east
X-Scytale-Server: 54.148.37.189
X-Scytale-Start-Time: 23 Jul 19 11:55 UTC
X-Talaria-Build: 0.1.3-1
X-Talaria-Flavor: mint
X-Talaria-Region: east
X-Talaria-Server: 54.148.37.189
X-Talaria-Start-Time: 22 Jul 19 09:34 UTC
X-Tr1d1um-Build: 0.1.2-1
X-Tr1d1um-Flavor: mint
X-Tr1d1um-Region: east
X-Tr1d1um-Server: 54.148.37.189
X-Tr1d1um-Start-Time: 22 Jul 19 07:07 UTC
X-Webpa-Transaction-Id: PzFVh-jdOQoM4BkeJxz32Q
X-Xmidt-Span: "http://localhost:8080/api/v2/device/send","2021-08-25T14:32:35Z","332.992262ms"
Date: Wed, 25 Aug 2021 14:32:36 GMT
Content-Length: 174

{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_FirmwareDownloadStatus","value":"Completed","dataType":0,"parameterCount":1,"message":"Success"}],"statusCode":200}




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. Verify the image version ( cat /version.txt) displays the flashed image version
  4. Verify FwUpgradeManagerLog.txt file is generated in /rdklogs/logs directory.
  5. Verify the http download is happening by noticing the change of file size using below command : cd /firmware/imagedwld ls -lh(use this command frequently to verify the file size change)
  6. Once image download completed, the Rpi board will auto reboot and come up with downloaded image
  7.  Verify the version of booted image which shows the downloaded image version

...

Code Block
languagebash
themeDJango
titleversion txt
collapsetrue
root@RaspberryPi-Gateway:~# cat /version.txt 
imagename:rdkb-generic-broadband-image_rdk-next_20210818080531
BRANCH=rdk-next
YOCTO_VERSION=dunfell
VERSION=4.08.18.21
SPIN=0
BUILD_TIME="2021-08-18 08:05:31"
Generated on Wed Aug 18  08:05:31 UTC 2021
root@RaspberryPi-Gateway:~# 

Limitation

                   Every Firmware Upgrade , it's boots with default values of all dmcli parameters & LastRebootReason value always return as "unknown" because rpi doesn't have the support of NVRAM.