Uploaded image for project: 'Qt Automotive Suite'
  1. Qt Automotive Suite
  2. AUTOSUITE-1141

Ensure compatibility with the Boot2Qt environment

    XMLWordPrintable

Details

    Description

      As PO, I see a risk of bad user experience and bugs reported due to differences how Neptune3 UI (as a System UI) is configured and launched on embedded devices in Pelux based images (two different flavours still exist) and Boot2Qt images.

      On Boot2Qt, Neptune3 UI is started via

      /lib/systemd/system/neptune.service

      as:

      [Unit]
      Description=Neptune
      After=dbus.service dbus-session.service systemd-user-sessions.service
      
      [Service]
      ExecStart=/usr/bin/appcontroller /opt/neptune3/neptune3-ui -r --dbus session -c am-config-neptune.yaml
      Restart=on-failure
      WorkingDirectory=/opt/neptune3
      Environment=AM_STARTUP_TIMER=1
      
      [Install]
      WantedBy=multi-user.target
      

      /usr/bin/appcontroller is a Boot2Qt launcher utility available from

      https://code.qt.io/cgit/qt-apps/boot2qt-appcontroller.git

      Despite of launching as such it also sets own enviroment variables via

      meta-boot2qt/recipes-qt/boot2qt-addons/boot2qt-appcontroller/emulator/appcontroller.conf

      as well as potentially in /etc/appcontroller.conf as mentioned in https://doc.qt.io/QtForDeviceCreation/qtee-customization.html

      On the other side, Pelux based images made by the Qt Auto team in Luxoft do not use appcontroller from Boot2Qt and configure and launch Neptune 3 UI as a systemd service directly in the same file:

      /lib/systemd/system/neptune.service

      as:

      [Unit]
      Description=Neptune3-UI
      After=systemd-user-sessions.service dbus-session@root.service remotesettings.service
      Wants=remotesettings.service
      
      [Service]
      User=root
      Type=simple
      ExecStartPre=/bin/mkdir -p /run/user/0
      ExecStartPre=/bin/chmod 700 /run/user/0
      ExecStart=/opt/neptune3/neptune3-ui -c /opt/neptune3/am-config.yaml -r -platform eglfs -plugin evdevkeyboard:grab=1 --logging-rule "*=true" --logging-rule "Qt3D.*.debug=false" --logging-rule="qt.*.debug=false"
      WorkingDirectory=/opt/neptune3
      BusName=io.qt.ApplicationManager
      RuntimeDirectory=user/0
      Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/root/dbus/user_bus_socket
      Environment=XDG_RUNTIME_DIR=/run/user/0
      Environment=QT_IM_MODULE=qtvirtualkeyboard
      Environment=QT_QPA_EGLFS_HIDECURSOR=1
      Environment=QTIVIMEDIA_SIMULATOR_LOCALMEDIAFOLDER=/home/root/media
      Environment=AM_STARTUP_TIMER=/dev/null
      Environment=QTWEBENGINE_DISABLE_SANDBOX=1
      
      [Install]
      WantedBy=multi-user.target
      

      I see two sources of potential problems:

      • users experience different behaviour due to different env variable set
      • The Qt Creator plugin for Qt Application Manager behave differently, since the appcontroller from Boot2Qt might "stand in between" the launching process on Boot2Qt whereas that does not occur on a Pelux based images

      Attachments

        Issue Links

          For Gerrit Dashboard: AUTOSUITE-1141
          # Subject Branch Project Status CR V

          Activity

            People

              sapiippo Samuli Piippo
              vminenko Vladimir Minenko
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes