Versions Compared

Key

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

Table of Contents

Introduction

...

  • Raspberry Pi Official 7" lcd screen display will be working . The 7" touch screen monitor for Raspberry Pi gives users the ability to create all-in-one, integrated projects such as tablets, infotainment systems and embedded projects. 

  • The 800x480 display connects via an adapter board which handles power and signal conversion. 

  •  We can plug keyboard and mouse to the raspberrypi for the userinteraction. 

  • Screen resolution 800 x 480 pixels Connects to the Raspberry Pi board using a ribbon cable connected to the DSI port. 

  • Adapter board is used to power the display and convert the parallel signals from the display to the serial (DSI) port on the Raspberry Pi. 

  • The display works with all existing Raspberry Pi models with RDK images.

Implementation details

  Containers layer - meta-rdk-containers:    

  •     Consists of main container image(rdk-generic-hybrid-lxc-image).
  •     Latest "lxc-container-generator" has been added for container generation at do_rootfs stage.
  •     Distro feature and latest lxc version updated in qemux86hybsecure.conf.

  Emulator layer - meta-rdk-bsp-emulator:

  •        Added emulator specific package groups and plugins to the container image.

  New Container generation process:

     This subsection describes how the new container generation process is replacing the earlier process.

  •       In this process containers will be generated using  "lxc-container-generator"  recipe, which will use corresponding .xml files to generate containers.
  •       All  dependencies(such as required binaries,libraries,script files) will be provided in each container .XML file.
  •       For permissions of files  "add-users-groups-file-owners-and-permissions.inc" file has been added.
  •       At rootfs stage containers will be generated in /container path of rootfs.
  •       Each container will consists of corresponding script (.sh) file for launching that particular container.
  •       Every process will be launched from corresponding component service file. Single (or) multiple processes can be launched/attached to container.

  XML and conf files:

  •     All required XML and configuration files are placed along with lxc-container-generator recipe in meta-rdk-bsp-emulator layer.

  Service files:     

  •   In platformcontrol container: 

                 Three service files added for launching corresponding processes inside container (sysmgr.service, irmgr.service and dsmgr.service) .        

  •   In rmfstreamer container:

                 rmfstreamer.service file has been added.

  •   In rdkbrowser2 container:

                 rdkbrowser2.service file has been added.

Implemented containers

 Platformcontrol

  • runs sysmgr,irmgr and dsmgr processes inside container.
  • sysmgr will be launched in new container using lxc-execute.
  • irmgr and dsmgr processes has been attached to same container using lxc-attach.

 Rmfstreamer

  •  runs rmfstreamer inside container.
  •  rmfstreamer will be launched in new container using lxc-execute.

 Rdkbrowser2

  •  runs rdkbrowser2 browser application inside container.
  •  westeros will be launched in new container using lxc-execute.
  •  rdkbrowser2 will be attached to the same container using lxc-attach.

       Note: As we are in the plan of bringing APPmanager as default application we are not running rdkbrowser2 service file on boot-up.

Building procedure

Hardware requirement

...

  •    Raspberry Pi 3 Model B+
  •    Raspberry Pi Touchscreen LCD Display (7-inch)
  •    MicroSDHC Class 10 98 MB/s (Sandisk ultra)
  •    Power adapter for raspberrypi
  •    Normal headset  for connecting to raspberrypi 3.5mm jack


    Note: Raspberry Pi Touchscreen LCD Display (7-inch) can be ordered from https://www.amazon.in/Raspberry-Pi-Touchscreen-Display-7-inch/dp/B0153R2A9   

Hardware setup

...

  •  This LCD will connects to the Raspberry Pi board using a ribbon cable connected to the DSI port as shown below. 
    Image Added
  •  LCD display will be powered using connected wires as shown below.  From 7-inch lcd power 5v pin (pin1) needs to be connected to raspberrypi 5v (Pin2) and Gnd pin(pin5) needs to be connected to raspberrypi gnd pin (pin6). 
    Image Added
  •  Connections to GPIO pins and DSI port.
    Image Added
  • Headset connection to RPI 3.5mm jack for audio

           Image AddedImage Added

Building procedure

...

  •     repo init -u     repo init -u https://code.rdkcentral.com/r/manifests  -b rdk-next -m rdkv-asp-extsrcnosrc.xml
  •     repo sync --no-tags
  •     source     source meta-cmf-bsp-emulatorraspberrypi/setup-environment
  •     meta-rdk-containers    select meta-cmf-raspberrypi/conf/machine/qemux86hybsecureraspberrypirdkhybrefapp-seven-inch-lcd.conf
  •     bitbake rdkbitbake  rdk-generic-hybrid-lxcrefapp-image

...

Verification

...

  •     pstree can be used to track the list of containers running as below.

              Image Removed

  •      ps -Af | grep lxc also lists the current running containers.
         Image Removed

DEBUG Logs

  • After boot-up we can verify that application(Ex:appmanager) will be fitted into 7-inch display resolution as shown below:

              Image Added        

  •     We can verify inside refapp image also.
         Image Added

DEBUG Logs

...

  • For confirming resolution user can see the logs by watching journalctl on particular service.strace can give more debug information about containers:

          Example:
          strace -f -o lxc-execute.log /usr/bin/lxc-attach -n PLATFORMCONTROL -f /container/PLATFORMCONTROL/conf/lxc.conf

          -u 704 -g 704  -- /usr/bin/dsMgrMain

  • lxc-execute.log for debugging purpose.

Test cases

...

           journalctl -x -u appmanager

  • Also user can launch runAppmanager directly for observing console logs.
    systemctl stop appmanager
    sh /lib/rdk/runAppmanager

Test cases

...

  •     On 7-inch display we can verify all features like 
  1.       westeros_test(compositor test application)
  2.       Browser applications like rdkbrowser2
  3.       playback through gstreamer plugins
  4.       rmfApp playback
  5.       aamp playback
  6.       spark applications, appmanager and refapp etc.
  •    Attached system test plan will covers all these test cases.

Reference

...

...

Reference