RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
RDK Emulator
Host Requirements
Requirement | Remarks |
---|---|
Linux | 32 bit Ubuntu 16.04 operating system |
Free HDD Space | Minimum 100GB Free Memory |
Oracle Virtual Box | 4.3.18 or higher |
Install OS - Ubuntu 16.04
The instructions provided below are meant to be executed via the command line on an Ubuntu machine:
Install the following packages for setting up your host VM:
$ sudo apt-get install build-essential gettext bison libfile-slurp-perl gawk libncurses-dev autoconf flex doxygen libtool automake libpcre3-dev zlib1g-dev libbz2-dev subversion minicom putty libssl-dev rpm python-pexpect python-svn python-argparse vim tofrodos meld dos2unix cmake uuid-dev ruby transfig libglib2.0-dev xutils-dev lynx-cur gperf autopoint python-dulwich python-dev curl vim diffstat texinfo chrpath openjdk-7-jre
Configure bash as default command interpreter for shell scripts:
$ sudo dpkg-reconfigure dash
Select “No”
To choose bash, when the prompt asks if you want to use dash as the default system shell - select “No”
Also install the below list of packages for Yocto build:
$ sudo apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff
Configure Git:
Upgrade your Git version to 1.8.x or higher
On Ubuntu 12.04 LTS, if you are unable to upgrade your git version using apt-get, then follow the below steps in order to upgrade
$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:git-core/ppa $ sudo apt-get update $ sudo apt-get install git |
Once git is installed, configure your name and email using the below commands
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
Configure repo
In order to use Yocto build system, first you need to make sure that repo is properly installed on the machine:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Trivia: Repo is a repository management tool that is built on top of Git. Its main purpose is to help manage projects that consist of many Git repositories, it can also be used to manage uploads to the CMF Gerrit instance and automate aspects of the development workflow.
Repo does not replace Git, it simply aids management of projects that contain multiple Git repositories into a single local working directory. Git will still be used for local operation such as commits etc.
Repo manages this for you by means of an XML based Manifest file. The Manifest file defines which repositories the project uses and links to appropriate revisions of each git repository, i.e where the upstream repositories reside and where they should be cloned locally. It is the manifest.xml (or default.xml) that determines which Git repositories and revisions repo will manage. This manifest.xml file is hosted in a Git repository along with all the other git repositories.
Setting up .netrc for RDK emulator
CMF git uses https. This step prevents the password prompt every now and then during code checkout and build.
Create a file .netrc in home directory.
$ vi .netrc
The contents of the .netrc should be as follows:
machine code.rdkcentral.com login <gerrird_userid> password <gerrit_password>
The following commands fetches the source code of emulator using repo tool
$ mkdir emulator && cd emulator
$ repo init -u https://code.rdkcentral.com/r/manifests -m emulator.xml
Note: For latest code iteration, check the RDK-V Releases page to get the latest iteration branch |
---|
|
$ repo sync
$ source meta-cmf/setup-environment
The above step configures and sets up your directory to start an appropriate build for hybrid or media client.
There are different kinds of builds listed. Please read the options and select the number of the build you need.
Next, you would need to initiate the build using the following command:
$ bitbake image
On Successful build, the ROOTFS (in vmdk format) would be available at the following reference location based on your build type :
- ${HOME}/emulator/build-qemux86hyb-morty/tmp/deploy/images/(Build Type)
Note: The qt3d repo has changed and this causes older builds (10/24 and earlier) to fail while fetching qt. A fix can be applied by changing the repo in the qt3d recipe. Before you build, you need to edit the file /meta-qt5/recipes-qt/qt5/qt3d_git.bb and set the QT_MODULE_BRANCH to "dev" instead of "master" as outlined below: For more information regarding the change, please refer: https://github.com/meta-qt5/meta-qt5/commit/adeaa6128b665920eb98eb7c064f4aacbd74b873 |
---|
QT_MODULE_BRANCH = "dev" |
Install Virtual Box and follow the following steps to bring up RDK Emulator on Virtual Box:
In the following steps, it is recommended to review the description and screenshot completely before proceeding with steps.
Open Virtualbox
Select New [A popup will come up]
Select Type as ‘Linux’
Select Version as ‘Other Linux (32 Bit)’
Click on “Next”
Your VM has been built with very limited hard drive space. In order to run emulator and play video files, you need to copy your video files into the file system for playback. For this, you will need to setup a virtual external hard drive.
$ ssh root@x.x.x.x |
---|
$ mount |
---|
$ fdisk -l |
---|
$ fdisk /dev/hdb |
---|
Review the description of the steps during fdisk operation below and the following screenshot for reference before proceeding.
$ Command (m for help): n |
---|
$ Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p |
---|
$ Partition number (1-4, default 1): 1 |
---|
$ Command (m for help): p |
---|
$ Command (m for help): w |
---|
$ mkfs.ext3 /dev/hdb1 |
---|
$ mkdir /ext_hdd $ mount /dev/hdb1 /ext_hdd |
---|
$ scp <your_spts_file_name>.ts root@<your_emulator_vm_ip>:/ext_hdd |
---|
$ ln -sf /ext_hdd/<your_spts_file_name> <your_spts_file_name> |
---|
As described in the previous section, you can log in to your emulator VM from your Host Machine using the ssh command.
$ ssh root@x.x.x.x |
---|
Note: In order to learn the IP address of your VM, use the RDK Browser application “tab” key to navigate to "Device Info" which will provide you the IP address. Press "Enter" key to enter Device Info
1)Boot the VM in NAT mode and ssh in to the VM to get the console.
ex: ssh -p 3022 root@localhost
2)To check the closedcaption in rmfapp start the rmfapp and launch a video as shown below
ex: cd /usr/bin; ./rmfApp
rmfApp->launch -source hnsource -sink mediaplayersink http://127.0.0.1:50050/received_spts1.ts
now you will be able to see ccdata displayed on sccsreen
3)To enable or disable closedcaption rendering in rmfApp user “e” or “enable” to enable closedcaption and “d” or “disable” to disable the closedcaption
ex: rmfApp->d
expexted output: closedcaption rendering should stop on screen.
To enable closedcaption again type the command "e" as shown below.
rmfApp->e
expected output: Closedcaption rendering should start on screen
4)To show and hide the closedcaption after enabling the cc rendering user “s” or “show” tp show the cc window and “h” or “hide” to hide the cc window
example: rmfApp->h
expected output: CC window should not be visible on screen
To show the closedcaption again type the command "s" in rmfapp as shown below.
rmfApp->s
expected output: CC window should be visible on screen.
5)To pause and play the video after launching the video as shown below
ex: rmfApp->launch -source hnsource -sink mediaplayersink http://127.0.0.1:50050/received_spts1.ts
rmfApp->p (To Pause the video)
expected output: Stop the playing video also closedcaption rendering should stop
To resume the video paused type the command "p" again in rmfapp as shown below.
rmfApp->p (To play the video)
expected output: Video playing should resume and closedcaption rendering aswell.
6)To test for the video playing with tsb do as shown below.
Ex: rmfApp-> launch -source hnsource -sink mediaplayersink -tsb http://127.0.0.1:8080/vldms/tuner?ocap_locator=ocap://0x125d&tsb=60
rmfApp->p (to pause the video)
expected output: The video playing should stop and cc rendering aswell.
rmfApp->l (to switch to live)
expected output: Video should switch back to live and cc rendering should resume
7)Checking closedcaptioning in recorded content.
After recording the video using the method provided in the above link using rmfApp try to play the recorded content.
Ex: To view the recording list
rmfApp-> l
expected output : To show the list.
total Space: 1886208000 bytes
free Space: 358744064 bytes
number of recordings= 1
-------------------------------------
recording 0 id 30 title "Recording_tile"
-------------------------------------
Now play the recorded content as shown below.
RmfApp->launch -source dvrsource -sink mediaplayersink dvr://local/30
expected output: Recording content should play along with closedcaption rendering.
Note: To play the recorded content use dvr://local/id where id is the recordingid.
8) To exit from the rmfApp first kill the running proccess and then press q to quit
Ex: rmfApp->kill 1
rmfApp->q
Install VMplayer in Host Machine
Use the below Link download to install VMware Player on host
After downloading
sudo ./VMware-Player-<Version>.bundle (LInux OS)
Run VMware-Player-<Version>.exe (Windows OS)
Reason for VMplayer: in Mesa Higher versions EGL-PLATFORM fbdev is not available as it is deprecated so we tried using DRM (Direct Rendering Manager driver for graphics)
for DRM driver is available only in vmware only (vmwgfx so we have gone for VMware Player)
1 Once VMware Player is installed, open the VMWare Player using the command
|
2 Click File --> Create a New Virtual Machine --> Select 'i will install my operating system later' --> click Next
3 Select 'Linux' --> Version 'Other Linux 3.x kernel' --> Click Next --> Give name --> Click Next
4 Maximum Disk Size : 8 Gb --> Select 'Store Virtual Disk as a Single File' --> Click Next --> Memory for this Virtual Machine '512 Mb' --> Click 'Close' --> Click 'Finish'
5 Click 'Edit virtual machine settings' --> select Hard Disk (IDE) --> Click 'Remove' -->Click 'Add' --> Select Hard Disk --> Select 'Use existing Virtual Hard disk'
6 File browse and set the path to the *.vmdk file --> Click Finish --> Click 'Keep Existing Format'
7 Network Adapter select Bridge Adapter --> Click Save
8 Click Play Virtual Machine
Cannot connect the virtual device ide1:0 because no corresponding device is available on the host.
Do you want to try to connect this virtual device every time you power on the virtual machine? [YES] [NO]
You select [NO]
9 This will bring the emulator up with the initial splash screen followed by RDK-Browser as startup application.
*** Note : No support for Shared Folder.
step 1:
Step 2:
Step3:
Step 4:
Step 5:
Click 'Save' --> Click 'Finish'
Click 'Edit virtual machine settings' --> select Hard Disk (IDE) --> Click 'Remove' -->Click 'Add' --> Select Hard Disk --> Select 'Use existing Virtual Hard disk'
Step 6:
Step 7:
Step 8:
Step 9:
Step 10:
Step 11:
step 12:
WPELauncher (wpewebkit default browing Application)
1) ssh login to the Emulator
systemctl stop wpe-launcher ( this will stop the wpe-webkit browser
to launch any url through wpe launcher use this script sh startWPE.sh
ex:
sh startWPE.sh http://www.easyhtml5video.com
sh startWPE.sh http://www.google.com
for using morty emulator WPE image we can validate pxscene examples in emulator
Pxscene works over the wayland compositor (westeros compositor)
Before launching pxscene examples need to export these parameters and run pxscene examples
|
Please find screen shots attached
2.Fancy.js
Gallery.js
Picturepile.js
for using morty emulator WPE image we can validate rdkbrowser2 examples in emulator
works over the wayland compositor (westeros compositor)
For testing rdkbrowser2
|
Cursor will work with rdkbrowser2
Ex: Picture-1 google.com
Ex 2: Youtube.com playback with westeros-sink
Ex 3 easyhtml5video.com