Pre-requisite
- Access to Raspberry Pi terminal.
- Access to Xconf server from browser https://xconf.rdkcentral.com:9093/admin/
- For Admin mode(read and writ permission) -> username : admin, password: RdkXcadm$2120
- For User mode(only read mode) -> username: user ,password: RdkXcusr@2210
- Disable log rotation in RPI using below command. (This is optional)
- systemctl disable rdkbLogMonitor
- reboot
Admin UI: Common Configuration
Flow: Xconf-server -> Common -> Environments
Click on Create Button.
...
vi /etc/xinetd.d/tftp
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/tftphome ( Give upgrading file and checksum file maintained directory ) disable = no } |
---|
File : /etc/xinetd.d/tftp
...
vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/xyz/tftphome" ( Give upgrading file and checksum file maintained directory ) TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure" |
---|
File: /etc/default/tftpd-hpa
...
- Restart the service using below command
root@RaspberryPi-Gateway:~# systemctl restart swupdate.service
else reboot the board.
Note: For the 1st time board go for automatic reboot when we give restart of swupdate service and creates 2 more partitions in sd card. - Check the response, xconf_curl_httpcode and swupdate log files under /rdklogs/logs/
- This log file contains the below details
service status, http code , MAC address , JSONSTR, cloud prototype (TFTP), cloud version , RPI version , Checksum ,Number of partitions Device type, Active and Passive bank partitions ,Upgrade successful message.
![](/download/attachments/188515290/Capture44.PNG?version=1&modificationDate=1639983038000&api=v2)
- Sample Log
root@RaspberryPi-Gateway:/rdklogs/logs# root@RaspberryPi-Gateway:/rdklogs/logs# cat swupdate.log Started executing swupdate_utility.sh and device type is :broadband Main app & Triggering deviceInitiatedFWDnld.sh URL_CMD: curl -w %{http_code} 'https://xconf.rdkcentral.com:9092/xconf/swu/stb?eStbMac=B8:27:EB:22:16:36' -o /tmp/cloudurl.txt >> /tmp/cloudhttpresp.txt No error in curl command and curl http code is:200 cloud version is rdkb-generic-broadband-image_rdk-next_20211118174413 RPI version is rdkb-generic-broadband-image_rdk-next_20211118184509 Active bank is:2 rpiimageModel in dev is :rdkb cloudimageModel is :rdkb no of parts is :4 active bank is 0 so fetch info from passive and partition is:2 rpipassivebankimageModel: passivebankVersion: since bank1 p3 is broadband and pass bank is rdkv cloud is broadband check broadband version and upgrade if mismatches check broadband versions and upgrade if mismatches !! Device type is broadband !! Image Upgrade During Bootup ..! Main APP of devinitFWDNLD--- 2021-11-22 07:15:14 version = rdkb-generic-broadband-image_rdk-next_20211118184509 2021-11-19 07:15:14 buildtype = dev Mac in jsonstr:B8:27:EB:22:16:36&model=RPI&capabilities=RCDL&capabilities=supportsFullHttpUrl 2021-11-22 07:15:14 JSONSTR: B8:27:EB:22:16:36&model=RPI&capabilities=RCDL&capabilities=supportsFullHttpUrl Trying to communicate with XCONF server URL_CMD: curl -w %{http_code} 'https://xconf.rdkcentral.com:9092/xconf/swu/stb?eStbMac=B8:27:EB:22:16:36&model=RPI&capabilities=RCDL&capabilities=supportsFullHttpUrl' -o /rdklogs/logs/response.txt >> /rdklogs/logs/xconf_curl_httpcode CKP: got no error in curl command!!!!!!!!!!!!!200 Curl return code : 0 ret = 0, http_code: 200 for XCONF communication 2021-11-22 07:15:15 HTTP request success. Processing response.. OUTPUT1 : 2021-11-22 07:15:16 cloudFWFile: rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic 2021-11-22 07:15:16 cloudFWLocation: 192.168.1.4 2021-11-22 07:15:16 cloudFWVersion: rdkb-generic-broadband-image_rdk-next_20211118174413 2021-11-22 07:15:16 cloudProto: tftp 2021-11-22 07:15:16 cloudImmediateRebootFlag: false 2021-11-22 07:15:16 myFWVersion = rdkb-generic-broadband-image_rdk-next_20211118184509 2021-11-22 07:15:16 myFWFile = 2021-11-22 07:15:16 lastDnldFile: 2021-11-22 07:15:16 cloudFWVersion: rdkb-generic-broadband-image_rdk-next_20211118174413 2021-11-22 07:15:16 cloudFWFile: rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic Xconf image Check Firmware versions are different myFWVersion : rdkb-generic-broadband-image_rdk-next_20211118184509 cloudFWVersion : rdkb-generic-broadband-image_rdk-next_20211118174413 cloudFWLocation192.168.1.4 cloudfile :rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic protocol1 2021-11-22 07:15:16 Starting Image Flashing ... 2021-11-22 07:15:16 Upgrade Server = 192.168.1.4 2021-11-22 07:15:16 Upgrade File = rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic 2021-11-22 07:15:16 Reboot Flag = 0 2021-11-22 07:15:16 Upgrade protocol = 1 2021-11-22 07:15:16 PDRI Upgrade = CKP !!!!!!!!! calling rpi_sw_install Checking available partition for bank switch and image upgrade... Creating additional partition for storage area and box will go for reboot... storage partition mmcblk0p4 is available file system type check count partition p3 is 0 Creating ext4 file system for partition mmc0blkp3... Discarding device blocks: done Creating filesystem with 524288 4k blocks and 131072 inodes Filesystem UUID: 2fbcfc3a-6b84-48b0-a171-86dd13cbf82b Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done file system type check count partition p4 is 0 Creating ext4 file system for partition mmc0blkp4... Discarding device blocks: done Creating filesystem with 524288 4k blocks and 131072 inodes Filesystem UUID: 1c2075c1-9de9-4fb0-b9ab-f9ca277f54d7 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 cloud proto is :1 set IPtable rules for tftp !! cloudfile is:rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic cloudlocation is:192.168.1.4 Downloading already deployed checksum file from server rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic tftp download checksum file checksum file to download is rdkb-generic-broadband-image_rdk-next_20211118174413.txt Downloading rdkb-generic-broadband-image_rdk-next_20211118174413.rootfs.wic ... |
---|
- Verify the tftp download is happening by noticing the change of file size using below command:
ls /extblock/tftpimage/imagedwnldls -sh (use this command frequently to verify the file size change)
...
NOTE : Every time need to flash the different images . Because, here they are using the bank switching approach (https://wiki.rdkcentral.com/display/RDK/RDKB+RPI+Firmware+Upgrade+-+Design+-+2019+M7) where the images will be stored in the cloud.
So for the next time, when you try to flash the same image to SD card , the firmware upgrade will not happen . The reason is, it will check in the bank (cloud – active and passive banks). If the image is already available in any one of the bank, then it will not go for image upgrade.
Sample Log: After retries...No error in curl command and curl http code is:200 cloud version is rdkb-generic-broadband-image_rdk-next_20211118174413 RPI version is rdkb-generic-broadband-image_rdk-next_20211118174413 Active bank is:2 rpiimageModel in dev is :rdkb cloudimageModel is :rdkb no of parts is :4 active bank is 0 so fetch info from passive and partition is:2 rpipassivebankimageModel:rdkb passivebankVersion:rdkb-generic-broadband-image_rdk-next_20211118174413 since both banks has broadband alone and cloud also has broadband-compare versions with cloud atleast one bank matches broadband root@RaspberryPi-Gateway:/rdklogs/logs# tail -f swupdate.log RPI version is rdkb-generic-broadband-image_rdk-next_20211118174413 Active bank is:2 rpiimageModel in dev is :rdkb cloudimageModel is :rdkb no of parts is :4 active bank is 0 so fetch info from passive and partition is:2 rpipassivebankimageModel:rdkb passivebankVersion:rdkb-generic-broadband-image_rdk-next_20211118174413 since both banks has broadband alone and cloud also has broadband-compare versions with cloud atleast one bank matches broadband |
---|