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

Compare with Current View Page History

« Previous Version 8 Next »


 RDK Emulator

  • Executes on x86-based platforms including virtualization environments such as Virtual Box and QEMU.
  • Multiple build types - media client, hybrid etc
  • Supports the RDK Browser startup application.
  • Up to date with the RDK generic trunk and any x86-specific platform code.
  • Built using Yocto and RDK build frameworks

Build Setup Instructions


Setting up the Host Environment


Host Requirements

RequirementRemarks
Linux                           32 bit Ubuntu 16.04 operating system
Free HDD SpaceMinimum 100GB Free Memory
Oracle Virtual Box4.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>


Downloading Source Code & Building


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 releases page of your desired platform.

$ repo sync

$ source meta-cmf/setup-environment       

  • Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access.
  • Please login to code.rdkcentral.com before attempting to clone.


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 folder name>/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"

Bringing up the Emulator on Virtual Box


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.

STEP 1: Create your new VM Instance:

  • Open Virtualbox

  • Select New [A popup will come up]

  • Select Type as ‘Linux’

  • Select Version as ‘Other Linux (32 Bit)’

  • Click on “Next”

  • Choose a Memory Size of 512 MB


  • Use an existing virtual hard drive file which would be your newly built image in *.vmdk format and create your VM:

STEP 2: Configure your new VM Instance:

  • Click on “Settings” tab to configure your new VM instance

  • Configure your VMs network settings
  • Choose “Bridged Adapter” mode as shown in the screenshot below

STEP 3: Create an external hard drive:

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.

  • Select the vm instance on the main menu of Virtual Box
  • Click Settings -> Storage -> Add Hard disk [icon]
  • Click ‘Create new disk’ (Note: In the screenshot below, "Choose existing disk" may seem highlighted. Please select "Create new disk")


  • Select VDI (VirtualBox Disk Image) as your Hard Drive file type:

  • Select "Dynamically allocated" storage: 

STEP 4: Formatting and partitioning your new external hard drive:

  • Boot up your VM
  • Your emulator VM boots up to show the RDK Browser HTML application which can be used to select and launch multiple other applications using the Tab key & Enter key
  • Use BACKSPACE to come out of Readme, WatchTV, iHeartRadio and Sample Video
  • To come out of the X2 guide, use Ctrl+Backspace
  • In order to learn your VM IP, use the RDK Browser application “tab” key to chose the various applications. Choose Device Info which will provide you the IP address as shown in the screenshot below:

  • Once you have the IP address you may SSH into your VM from your linux shell console. Use root as the ssh user.
  • Use the “mount” command to see the current status of connected hard disks
$ mount

  • Use fdisk command to list out connected hard drives. You may note that in the screenshot below, there are two hard drives listed. hda and hdb. hdb is the external hard drive that we have created in the previous step.
$ fdisk -l

  • Use fdisk to create your new hard disk partition
$ fdisk /dev/hdb

Review the description of the steps during fdisk operation below and the following screenshot for reference before proceeding.

  • Use fdisk to create your new hard disk partition
    • Use the command "n" to add a new partition
$ Command (m for help): n
    • Select partition type as the suggested default "p" for primary partition

$ Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

    • Set your partition number as the suggested default. In the example case: 1
$ Partition number (1-4, default 1): 1
    • Press "Enter" key for First sector & Last sector prompts
    • Select the command "p" to print the partition table on screen for review
$ Command (m for help): p
    • Select the command "w" to write the partition table to disk and exit fdisk
$ Command (m for help): w


  • Format your newly created partition with ext3 file system
$ mkfs.ext3 /dev/hdb1

  • Create a folder for mounting your new partition at /ext_hdd
  • Mount your newly created hard disk partition to /ext_hdd

$ mkdir /ext_hdd

$ mount /dev/hdb1 /ext_hdd

STEP 5: Copy a Single Program Transport stream to your file system to be used for emulator video playback.

  • Pre-requisite to the step is assumed that /ext_hdd is already mounted with the external hard disk partition on your emulator VM
  • Copy your SPTS video file from your host machine to /ext_hdd folder on the emulator VM 
  • Note: The following command is performed from your Host Machine
$ scp <your_spts_file_name>.ts root@<your_emulator_vm_ip>:/ext_hdd
  • Back on your emulator VM, create a link in /opt/www/ to point to the external hard drive at its mount point /ext_hdd
$ ln -sf /ext_hdd/<your_spts_file_name> <your_spts_file_name>
  • In the screenshot below<your_spts_file_name> is assumed to be "received_spts1.ts" as an example.


Logging into your VM


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



Step 9:

Step 10:

Step 11:

step 12:


Applications testing over westeros Compositor


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


PXSCENE Support Test Procedure in Emulator


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

$ export XDG_RUNTIME_DIR=/run/user/0/
$ export WAYLAND_DISPLAY=WPE
Example 1 :
$ ./pxscene ( will launch default browser.js)
Example 2 :
$ ./pxscene http://www.pxscene.org/examples/px-reference/gallery/fancy.js
Example 3 :
$ ./pxscene http://www.pxscene.org/examples/px-reference/gallery/gallery.js
Example 4 :
$ ./pxscene http://www.pxscene.org/examples/px-reference/gallery/picturepile.js


Please find screen shots attached

  1. Browser.js

2.Fancy.js



Gallery.js

Picturepile.js



RDKBROWSER2 Support Test Procedure in Emulator


for using morty emulator WPE image we can validate rdkbrowser2 examples in emulator

works over the wayland compositor (westeros compositor)


For testing rdkbrowser2

$ export XDG_RUNTIME_DIR=/run/user/0/
$ export WAYLAND_DISPLAY=WPE
 
 Example 1 :
$ ./rdkbrowser2 ( will launch http://www.example.com)
Example 2 :
$ ./rdkbrowser2 --url http://www.google.com
Example 3 :
$ ./rdkbrowser2 --url http://www.youtube.com/tv
Example 4 :
$ ./rdkbrowser2 --url http://www.easyhtml5video.com
 
Note: Video performance is gittery in emulator with westerosink ( software of emulator
WEBBGL related urls not suported as graphics GPU available in the VMplayer is having limitation
with 3d graphics renderering
 
  

Cursor will work with rdkbrowser2

Ex: Picture-1 google.com


Ex 2: Youtube.com playback with westeros-sink


Ex 3 easyhtml5video.com




  • No labels