Versions Compared

Key

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

...

  • A container may be only tens of megabytes in size, whereas a virtual machine with its own entire operating system may be several gigabytes in size.
  • Containerization allows for greater modularity. Rather than run an entire complex application inside a single container, the application can be split in to modules.

Implementation details

...

  Containers layer - meta-rdk-containers:    

...

                 rmfstreamer.service file has been added.

  •   In rdkbrowser2 container:

                 rdkbrowser2.service file has been added.

...

  • 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

...

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

              Image Removed Image Added

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

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

...

  •    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

...

...