Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Multiple screens on Qt Automotive with iMX6
Forum Updated to NodeBB v4.3 + New Features

Multiple screens on Qt Automotive with iMX6

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
5 Posts 4 Posters 1.3k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • IsaiasI Offline
    IsaiasI Offline
    Isaias
    wrote on last edited by
    #1

    Hello,

    Following Building Your Own Embedded Linux Image, I was able to create a Qt Automotive image and the Neptune demo works fine

    But now I would like to have two screen working together with the Neptune demo.

    I modified my local.conf to remove X11 and wayland in order to work only with EGLFS

    DISTRO_FEATURES_remove = "X11 wayland"
    

    I also modified my u-boot enviroment variables to set up my two screens (HDMI and LVDS)

    setenv vidargs 'video=mxcfb0:dev=ldb video=mxcfb1:dev=hdmi,1280x1024M@60,if=RGB24 video=mxcfb2:off video=mxcfb3:off fbmem=32M'
    

    I can see the neptune in my HDMI monitor (fb2) but a black in my LVDS screen (fb0)

    but when I execute:

    cat /dev/urandom > /dev/fb0
    

    it does work, I can see the random pixels being painted

    But in my app when I execute:

        QList<QScreen *> screens = QGuiApplication::screens();
        printf("Screens = %d\n", screens.count());
    

    I only get one screen and when I run qtdiag I get the next:

    Screens: 1, High DPI scaling: inactive
    # 0 "" Depth: 16 Primary: yes
      Manufacturer:
      Model:
      Serial number:
      Geometry: 1920x720+0+0 Available: 1920x720+0+0
      Physical size: 487.68x182.88 mm  Refresh: 62 Hz Power state: 0
      Physical DPI: 100,100 Logical DPI: 100,100 Subpixel_None
      DevicePixelRatio: 1 Pixel density: 1
      Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
    
    

    It looks like Qt Embedded is only detecting my first screen (fbo)

    Does somebody has had experience with multiple screen working together?
    Am I missing some configuration file?

    My intention was to configre neptune to something like this: Neptune 3 UI - Configuring Screens on Embedded Linux

    My HW is:

    • Apalis iMX6
    • Apalis Evaluation Board
    root@b2qt-apalis-imx6:~# uname -a
    Linux b2qt-apalis-imx6 4.1.44-2.7.5+g18717e2b1ca9 #1 SMP Fri Feb 22 10:41:34 CST 2019 armv7l armv7l armv7l GNU/Linux
    

    Thanks

    tomasz3dkT 1 Reply Last reply
    0
    • IsaiasI Isaias

      Hello,

      Following Building Your Own Embedded Linux Image, I was able to create a Qt Automotive image and the Neptune demo works fine

      But now I would like to have two screen working together with the Neptune demo.

      I modified my local.conf to remove X11 and wayland in order to work only with EGLFS

      DISTRO_FEATURES_remove = "X11 wayland"
      

      I also modified my u-boot enviroment variables to set up my two screens (HDMI and LVDS)

      setenv vidargs 'video=mxcfb0:dev=ldb video=mxcfb1:dev=hdmi,1280x1024M@60,if=RGB24 video=mxcfb2:off video=mxcfb3:off fbmem=32M'
      

      I can see the neptune in my HDMI monitor (fb2) but a black in my LVDS screen (fb0)

      but when I execute:

      cat /dev/urandom > /dev/fb0
      

      it does work, I can see the random pixels being painted

      But in my app when I execute:

          QList<QScreen *> screens = QGuiApplication::screens();
          printf("Screens = %d\n", screens.count());
      

      I only get one screen and when I run qtdiag I get the next:

      Screens: 1, High DPI scaling: inactive
      # 0 "" Depth: 16 Primary: yes
        Manufacturer:
        Model:
        Serial number:
        Geometry: 1920x720+0+0 Available: 1920x720+0+0
        Physical size: 487.68x182.88 mm  Refresh: 62 Hz Power state: 0
        Physical DPI: 100,100 Logical DPI: 100,100 Subpixel_None
        DevicePixelRatio: 1 Pixel density: 1
        Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
      
      

      It looks like Qt Embedded is only detecting my first screen (fbo)

      Does somebody has had experience with multiple screen working together?
      Am I missing some configuration file?

      My intention was to configre neptune to something like this: Neptune 3 UI - Configuring Screens on Embedded Linux

      My HW is:

      • Apalis iMX6
      • Apalis Evaluation Board
      root@b2qt-apalis-imx6:~# uname -a
      Linux b2qt-apalis-imx6 4.1.44-2.7.5+g18717e2b1ca9 #1 SMP Fri Feb 22 10:41:34 CST 2019 armv7l armv7l armv7l GNU/Linux
      

      Thanks

      tomasz3dkT Offline
      tomasz3dkT Offline
      tomasz3dk
      wrote on last edited by
      #2

      @Isaias Did you try to set QT_QPA_EGLFS_FB like it's in manual https://doc.qt.io/qt-5/embedded-linux.html ?

      1 Reply Last reply
      0
      • IsaiasI Offline
        IsaiasI Offline
        Isaias
        wrote on last edited by
        #3

        Hello @tomasz3dk

        I can run the Qt Neptune demo or other Qt app in one screen or the other, even both at the same time, setting QT_QPA_EGLFS_FB to the correct fb before executing the app

        But my final intention is to modify the Neptune configuration to work something like this Neptune 3 UI - Configuring Screens on Embedded Linux

        It looks like I am missing to set up a configuration for the Qt Embedded Stack to detect both screens but I don't know.

        1 Reply Last reply
        0
        • S Offline
          S Offline
          scbyun
          wrote on last edited by
          #4

          Hello everyone
          I have the same problem.
          Please comment if you know how to solve it.

          1 Reply Last reply
          0
          • Bjorn92B Offline
            Bjorn92B Offline
            Bjorn92
            wrote on last edited by Bjorn92
            #5

            Hi @Isaias ,

            I have achieved to run two displays (LVDS + HDMI) using Wayland Weston, and running an instance of Weston in clone-mode:

            /usr/bin/weston --modules=systemd-notify.so --tty=1 --device=/dev/fb0,/dev/fb2 --clone-mode

            Here, the content of fb0 is cloned to fb2.

            It works, but on my SoM (i.MX6 based), I now experience severe lag on the LVDS screen and the touch inputs are also delayed.
            Additionally, I had to tune down the HDMI resolution to 900x600 to get it to work.

            On my SoM, using DRM/KMS is not an option, since my kernel version does not support it. I use fbdev instead.

            Maybe this helps a bit. If anybody has another solution, please share!

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved