CMF![](/images/icons/linkext7.gif)
RDK Releases![](/images/icons/linkext7.gif)
Documentation![](/images/icons/linkext7.gif)
CMF Videos![](/images/icons/linkext7.gif)
Support
Support for CMF is provided by the RDK Support group.
To contact RDK Support:
Enter a ticket: https://jira.rdkcentral.com/
or
E-mail: support@rdkcentral.com
...
Template Tickets (these are cloned for each task)
Task | Template Ticket | ||||||||
---|---|---|---|---|---|---|---|---|---|
TDK Intake |
| ||||||||
RDK-B Iteration/Release |
| ||||||||
RDK-V Iteration/Release |
| ||||||||
RDK-B CODEMGMT Iteration |
| ||||||||
RDK-B CODEMGMT Quarterly Release |
| ||||||||
RDK-V CODEMGMT Iteration |
| ||||||||
RDK-V CODEMGMT Quarterly Release |
| ||||||||
RDK-C CODEMGMT Quarterly Release |
|
CMF Sanity Test Monitoring Test Descriptions
Emulator and RPI Reference Platform Documentation
...
draw.io Diagram | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Sanity Test Flows
TDK Documentation and Releases
...
All of which are kicked off with a set of input parameters to their various Jenkins jobs. Currently supporting 4 'RUNTYPE' options – 'release', 'nightly', 'nightly-full', and 'master' (no longer used).
...
Test Metrics | Link |
---|---|
Nightly | CMF Nightly Test Metrics |
Iteration | CMF Iteration Test Metrics |
Quarterly | CMF Release Test Metrics |
...
Code Block |
---|
# clone the test repo git clone "https://code.rdkcentral.com/r/cmf/test" # browse code in browser via gitiles (must be logged into gerrit) https://code.rdkcentral.com/r/plugins/gitiles/cmf/test # TDK test results repo (soon to be deprecated, used to store TDK reference results) git clone "https://code.rdkcentral.com/r/tata/test-results" # clone the jenkins dsl test repo where all our test jenkins jobs are maintained git clone "https://code.rdkcentral.com/r/cmf/jenkins-dsl/jobs/test" # setup the commit hook if you want push changes for review in CMF Gerrit cd <repo> gitdir=$(git rev-parse --git-dir); curl -o ${gitdir}/hooks/commit-msg https://code.rdkcentral.com/r/tools/hooks/commit-msg ; chmod +x ${gitdir}/hooks/commit-msg # useful git commands/workflow sequence if/when working on branches rather than pushing changes directly on master git checkout master git pull —rebase git checkout -b <branch name> … make changes git add <files> git commit -m "CMFLAB-XXX <commit msg>" git push origin <branch name> if single commit: git checkout master git cherry-pick <commit ID> git push origin HEAD:refs/for/master if multiple commits: git rebase -i HEAD~<# of commits from HEAD> … pick top commit; squash all others git log (**check to see that squashed commit has Change-ID) if no Change-ID in commit: git commit —amend; exit editor (Change-ID should now be there) git push origin HEAD:refs/for/master |
S3 Bucket | Purpose |
---|---|
s3://rdkcmf-test-results/ |
|
s3://rdkcmf-test-logs/ |
|
s3://rdkcmf-artifacts/jobs/ |
|
s3://rdkcmf-artifacts/jobs/test-manual-artifacts/ |
|
s3://rdkcmf-community-artifacts/jobs/ |
|
The test team maintain their own build scripts which we use to build and test debug images for defect investigations. These scripts are run on personal build slaves and can be used to build on any branch we support in CMF.
...
Code Block | ||
---|---|---|
| ||
# check if tftp server is running on the TDK Manager VM vagrant@tdk-emulator-rdkb:~$ ps -ef | grep tftp vagrant 12660 12630 0 12:17 pts/0 00:00:00 grep --color=auto tftp root 13444 13389 0 Sep18 ? 00:00:00 sudo python /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tftp_server.py 69 /var/lib/tomcat6/webapps/rdk-test-tool/logs/logs/ root 13446 13444 0 Sep18 ? 00:00:05 python /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tftp_server.py 69 /var/lib/tomcat6/webapps/rdk-test-tool/logs/logs/ # Manually start TDK TFTP Server on a TDK VM (tftp server is used on manager to transfer agent logs from DUT) sudo python /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tftp_server.py 69 /var/lib/tomcat6/webapps/rdk-test-tool/logs/logs/ & # kill tftp serrver sudo pkill -f tftp # to manually set the route on TDK Manager VM (this is needed if you can't connect to the webui of VM via your browser), e.g. can happen when VM was restarted abnormally route del default sudo route del default; sudo route add default gw 192.168.32.1 dev eth1 # to change interface or mechanism for agent log transfer (can be set to tftp/REST) edit tm.config file and restart tomcat vi /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tm.config sudo pkill -f tftp sudo service tomcat6 stop sudo service tomcat6 start |
...
...
The CMF procedure for flashing RPI's using UBOOT for automated testing is documented in RPI flashing procedure documentation
To format SD card using SD Formatter
To flash SD cardRDK SD cards with a prebuilt sd image:
...
Best results on linux seen with GNOME Partition Editor (gparted)
Install from universal repositories, requires super user permissions to run the program.
Partitioning Info:
16GB SSD Layout:
Partition | Label | Designation | File System | Size (MiB) |
---|---|---|---|---|
1 | BOOT | Primary | Fat32 | 488 |
2 | RDK | Primary | EXT4 | 2048 |
3 | UBU | Primary | EXT4 | 10240 |
4 | DATA | Primary | EXT4 | (Remaining Space) |
32GB SSD Layout:
Partition | Label | Designation | File System | Size (MiB) |
---|---|---|---|---|
1 | BOOT | Primary | Fat32 | 488 |
2 | RDK | Primary | EXT4 | 10240 |
3 | UBU | Primary | EXT4 | 10240 |
4 | DATA | Primary | EXT4 | (Remaining Space) |
Important: the boot partition must be populated at a bare minimum before the ssd is put into a DUT for the CMF Automation to succeed.
The partitions created in the previous section should be mounted to your filesystem, in recent ubuntu, these should mount to
...
# Acquire an RDK Build archive:
$ aws s3 ls s3://rdkcmf-artifacts/jobs/community-build-rdkv-raspberrypi/
# Choose latest build number, e.g. 1472, check files therein, then copy the build to your local workspace:
$ aws s3 cp s3://rdkcmf-artifacts/jobs/community-build-rdkv-raspberrypi/1472/test-archive-rdk-hybrid-raspberrypi-community-nightly-<build-id>.tar.gz .
# Extract the archive into a local directory:
$ mkdir rdk-hybrid && tar xvzf test-archive-rdk-hybrid-raspberrypi-community-nightly-<build-id>.tar.gz -C rdk-hybrid
# Configure u-boot as explicit kernel image for first time sd provisioning:
# Edit the file rdk-hybrid/boot/config.txt, find the line `#kernel=""` and change it to `kernel=u-boot.bin`, save and close the file.
# Copy the boot contents to BOOT partition
$ cp -r rdk-hybrid/boot /media/($USER)/BOOT
# Extract the root filesystem to RDK partition
$ tar xvjf rdk-hybrid/rootfs/rdk-generic-hybrid-wpe-image-raspberrypi-rdk-hybrid.tar.bz2 -C /media/($USER)/RDK
# Provisioning RDK-CMF-UBUNTU (WiFi Client):
# Acquire RDK-CMF-Ubuntu:
$ aws s3 ls s3://rdkcmf-artifacts/test-artifacts/test-ubuntu-artifacts
# Choose latest build number, e.g. 3, check files therein, then copy the build root file system (rootfs) to your local workspace (No need for boot filesystem):
$ aws s3 cp s3://rdkcmf-artifacts/test-artifacts/test-ubuntu-artifacts/3/ubuntu_rootfs_<build-sha>.tar.bz2 .
# Extract the archive into the SSD UBU Partition:
$ tar xvjf ubuntu_rootfs_<build-sha>.tar.bz2 -C /media/($USER)/UBU
# Ensure all Read/Write cases complete
$ sudo sync
Unmount/Eject the sd card and transfer to the DUT
...