Versions Compared

Key

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

Instructions

  1. To build wayland-protocols with 1.18 version(Required for weston 7.0.0):

      ...

        1. Copy wayland-protocols_1.18.bb file in "meta-agl/meta-agl-bsp/recipes-graphics/wayland" path.
      1. To build Weston with Transmitter-backend:
        1. Copy  weston_7.0.0.bb  file in "meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/" path.
        2.  Add below line in local.conf
          BBMASK += "${METADIR}/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend"
          IMAGE_INSTALL_remove = " weston-conf"
      2. To Build wayland-ivi-extension compatible with  weston 7.0.0:
        1. For AGL 8.0.2:

      ...

        1. Apply 0001-make-ivi-extension-compatible-with-weston-7.0.0.patch in "meta-agl/" folder.

      OR

      instead of above steps just checkout the below sandbox for met-agl below. The sand box has updated weston_7.0.0.bb file which fetch the latest source code with fixes.

      https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl.git;a=shortlog;h=refs/heads/sandbox/vkadasani/ces2020_waltham_backend


      1. Rebuild weston and wayland-ivi-extension and copy the libraries to target

        Code Block
        $bitbake -c cleansstate weston wayland-ivi-extension
        $bitbake wayland-ivi-extension


      2. copy waltham libraries
        build/tmp/work/aarch64-agl-linux/waltham/git-r0/image/usr/* to target /usr

      3. run, use below files in rcar board:

        1. Code Block
          title/etc/xdg/weston/weston.ini
          [core]
          shell=ivi-shell.so
          backend=transmitter-backend.so
          require-input=false
          modules=ivi-controller.so
          #repaint-window=34
          
          # A display is connected to HDMI-A-1 and needs to be rotated 270 degrees
          # to have a proper orientation of the homescreen.  For example the various sizes
          # of the GeChic display or the Dell display.
          #[output]
          #name=HDMI-A-1
          #transform=270
          
          [desktop-app-default]
          default-surface-id=2000000
          default-surface-id-max=2001000
          
          [ivi-shell]
          ivi-input-module=ivi-input-controller.so
          ivi-id-agent-module=ivi-id-agent.so
          transition-duration=300
          cursor-theme=default
          
          [shell]
          locking=true
          panel-position=none
          
          [transmitter-output]
          output-name=transmitter_1
          server-address=192.168.2.52
          port=34400
          width=1920
          height=1080


        2. define pipeline

          1. jpeg enc/dec

            Code Block
            title/etc/xdg/weston/transmitter_pipeline.cfg on transitter side
            appsrc name=src max-bytes=0 ! vspfilter ! video/x-raw,format=I420 ! jpegenc ! rtpjpegpay ! udpsink name=sink host=192.168.2.52 port=34400 sync=false async=false


            Code Block
            title/etc/xdg/weston/receiver_pipeline.cfg on receiver side
            udpsrc port=34400  caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG,payload=(int)26" ! rtpjpegdepay ! jpegdec ! waylandsink name=sink


          2. rcar specific HW end/dec
            This ticked should be fixed to use HW setup on v8.0.2. https://jira.automotivelinux.org/browse/SPEC-2934

            Code Block
            title/etc/xdg/weston/transmitter_pipeline.cfg on transitter side
            appsrc name=src ! videoconvert ! video/x-raw,format=I420 ! omxh264enc bitrate=3000000 control-rate=2 ! rtph264pay ! udpsink name=sink host=192.168.2.52 port=34400 sync=false async=false


            Code Block
            title/etc/xdg/weston/receiver_pipeline.cfg on receiver side
            udpsrc port=34400 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96" ! rtpjitterbuffer latency=0 ! rtph264depay ! h264parse config-interval=1  disable-passthrough=true ! omxh264dec no-reorder=true ! waylandsink name=sink


      4. Command to run in following sequence:

        StepsTransmitter sideReceiver side
        1


        Code Block
        ifconfig eth0 192.168.2.51



        2


        Code Block
        systemctl stop weston
        ifconfig eth0 192.168.2.52
        export XDG_RUNTIME_DIR=/tmp
        sleep 1
        weston --tty=1 &
        sleep 1
        waltham-receiver -p 34400 &
        sleep 1
        layer-add-surfaces -s 1 -l 1 -d HDMI-A-1 &


        3


        Code Block
        weston --tty=2 &
        layer-add-surfaces  1 1 &
        EGLWLMockNavigation




      Issues and Limitations

      1. weston doesn't start from systemd service file.
        → ADIT has a patch to fix it. But still systemd notification doesn't work and should be fixed.
      2. EGLWLInputEventExample doen't appear at first frame need mouse to be connected.
        → ADIT has a patch to fix it.
      3. When weston run without receiver side, weston dump core occasionally.
        → ADIT has a patch to fix it.
      4. weston gets hang occasionally. In this case, if you execute LayerManagerControl, it has never returned.
        → ADIT has a patch to fix it.
      5. waltham backend can transmitt only one surface. If virtual screen has two more surfaces, waltham backend does nothing.
        → ADIT has draft patches to composite multiple surfaces to one and transmit.

      Q&A

      How to change ip address of receiver (server) side?

      Tow files in transmitter side should be changed.

      • weston.ini for waltham protocol itself.
        • [transmitter-output]
          server-address=192.168.2.52
      • transmitter_pipeline.cfg for gstreamer.
        • udpsink name=sink host=192.168.2.52

      Todo

      waltham transmitter recipe has unnecessary dependency. gstreamer and gstreamer1.0. should be one.