Plan of K.K

Separate development platform and reference of product embedded

  • Development platform
    • Reusing agl-image-weston (because we need to use nested compositor architecture until DRM release manager will come)
  • Introduce new layer to add-on container features on it
    •  add LXC support
    • add  container configuration for  agl-ivi  (for agl-demo-platform) and agl-ic (for agl-cluster-demo-platform)
      • recipes and patches are common, identified by name, 'agl-ivi' and 'agl-ic' (default name, can be changed by variable in recipes/local.conf)
      • network configuration
        • use lxc-net by default  (sharing host network adapter by containers to access internet)
        • TBD: introduce guest pass-through (e.g. internet access permitted only to agl-ivi) and make these selectable
      • very basic container manager
        • To support nested compositor easily, add easy-launcher, lxc-launcher(runlxc)
        • easy to select one from predefined configurations
          • running 1 container, agl-ic or agl-ivi
          • running 2 container, agl-ic and agl-ivi 
        • Because multiple monitors cannot be usable on QEMU with AGL image
          • QEMU + SPICE can support multiple monitors but it requires spice-vdagent and xwayland(xserver + xrandr/Xinerama)
          • not yet investigation: whether weston + xwayland can do the same above
  • Reference of product embedded
    • TBD

NOTE: QEMU's multi-monitor (1 seat with multiple heads) support appears to be limited

#
# QEMU + VirGL(GPU acceleration) + Multiple monitors
#
# using GTK UI frontend
PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"
# enable GPU acceleration
PACKAGECONFIG_append_pn-qemu-system-native = " glx virglrenderer"
#
# Results
#
# GTK UI Frontend
# OK: 1 monitor + GPU accelerated
# -device virtio-vga,virgl=on -display gtk,gl=on
# OK: 2 monitors
# -device virtio-vga,max_outputs=2 -display gtk
# NG: 2 monitors + GPU accelerated (QEMU not launched)
# -device virtio-vga,virgl=on,max_outputs=2 -display gtk,gl=on
#
# SDL2 UI Frontend
# OK: 1 monitor + GPU accelerated
# -device virtio-vga,virgl=on -display sdl,gl=on
# NG: 2 monitors (only 1 monitor is on)
# -device virtio-vga,max_outputs=2 -display sdl
# NG: 2 monitors + GPU accelerated (QEMU not launched)
# -device virtio-vga,virgl=on,max_outputs=2 -display sdl,gl=on
#