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

Compare with Current View Page History

« Previous Version 6 Next »

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


  •     repo init -u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkv-asp-extsrc.xml
  •     repo sync --no-tags
  •     source meta-cmf-bsp-emulator/setup-environment
  •     meta-rdk-containers/conf/machine/qemux86hybsecure.conf
  •     bitbake rdk-generic-hybrid-lxc-image

Container verification


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

              

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

DEBUG Logs


  • 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


  •    RMFAPP can be used to verify rmfstreamer container. 
       Example: play  http://192.168.2.68:8080/vldms/tuner?ocap_locator=ocap://0x125d
  •    RDKBROWSER2 can be used to launch any URL.
       Example: systemctl enable rdkbrowser2.service 
                       systemctl start rdkbrowser2.service - user can see the webpage in rdkbrowser2.

       If user wants to change URL, then we need to enter into this container and need to change rdkbrowser2.sh binary  as below:
       systemctl stop rdkbrowser2.service
       systemctl stop westeros-setup.service\
       use command:
       /usr/bin/lxc-execute -n RDKBROWSER2    -f /container/RDKBROWSER2/conf/lxc.conf – /bin/sh
       and then change url in /usr/bin/rdkbrowser2.sh file inside this container environment.

Reference



  • No labels