Could not open egl display



  • I have built a Linux image using Yocto Project. Also built Qt SDK to be able to develop qt applications for my board.

    The OS is console-only, so I want to use EGLFS plugin with the vendor implementation backend (eglfs_viv).
    What are the previous steps that I need do to be able to run graphical Qt applications ?

    I have connected a touch panel. And I'm testing a simple QtWidget application. But I get this output (with debug enabled) when I try to run it:

    # ./helloworld     
    qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_viv")
    qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_viv")
    qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_viv"
    qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_viv"
    QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.
     If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
    Could not open egl display
    Aborted
    

    Having exported:

    QT_QPA_PLATFORM=eglfs
    QT_QPA_EGLFS_FB=/dev/fb0
    DISPLAY=:0.0
    

    Any idea why is failing?


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Are you sure you have the rights to access the video device ?



  • @SGaist Thanks.
    There is only a root user (me).

     crw-rw---- 1 root video 29, 0 Nov 16 07:43 /dev/fb0
     -rwxr-xr-x 1 root root 881828 Nov 15 15:18 helloworld
    

    update:

    My touch panel has image but the touch doesn't work

    tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
    

    Idk if that could affect on the display detection?

    edit: I fixed it. It was missing the driver. Now I have touch. But still the egl error didn't disappear.


  • Lifetime Qt Champion

    Did you already saw this wiki page about the imx6 ?

    It might give you some additional clues



  • @SGaist Yes I did. It's supposed to be simple, just setting the QPA plugin platform u want to use and it should work. But not in my case :(

    Hmm, I think I found the problem.

    This is how I deployed my application:

    .
    ├── egldeviceintegrations
    │   └── libqeglfs-viv-integration.so
    ├── helloworld
    ├── libEGL.so.1
    ├── libGAL.so
    ├── libGLESv2.so.2
    ├── libpng16.so.16
    ├── libQt5Core.so.5
    ├── libQt5EglDeviceIntegration.so.5
    ├── libQt5Gui.so.5
    ├── libQt5Widgets.so.5
    ├── libVSC.so
    └── platforms
        ├── libqeglfs.so
        ├── libqminimalegl.so
        ├── libqminimal.so
        └── libqoffscreen.so
    

    Having built it setting rpath:

    unix:{
        QMAKE_LFLAGS_RPATH=
        QMAKE_LFLAGS += "-Wl,-rpath,\'\$$ORIGIN\'"
    }
    
    # ldd helloworld 
    libQt5Widgets.so.5 => /home/root/helloworld/libQt5Widgets.so.5 (0x769e9000)
    libQt5Gui.so.5 => /home/root/helloworld/libQt5Gui.so.5 (0x76572000)
    libQt5Core.so.5 => /home/root/helloworld/libQt5Core.so.5 (0x76054000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x75f13000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x75ee7000)
    libc.so.6 => /lib/libc.so.6 (0x75dad000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x75d84000)
    libGLESv2.so.2 => /home/root/helloworld/libGLESv2.so.2 (0x75c8b000)
    libm.so.6 => /lib/libm.so.6 (0x75c0d000)
    libz.so.1 => /lib/libz.so.1 (0x75beb000)
    libpng16.so.16 => /home/root/helloworld/libpng16.so.16 (0x75bb3000)
    libdl.so.2 => /lib/libdl.so.2 (0x75ba0000)
    librt.so.1 => /lib/librt.so.1 (0x75b89000)
    /lib/ld-linux-armhf.so.3 (0x76ed7000)
    libGAL.so => /home/root/helloworld/libGAL.so (0x75a8d000)
    libEGL.so.1 => /home/root/helloworld/libEGL.so.1 (0x75a6d000)
    libVSC.so => /home/root/helloworld/libVSC.so (0x759ab000)
    

    So far so good.

    But then I checked the platform plugins dependencies:

    # ldd libqeglfs.so 
    ldd: warning: you do not have execution permission for `./libqeglfs.so`
    libQt5EglDeviceIntegration.so.5 => not found
    libQt5Gui.so.5 => not found
    libQt5Core.so.5 => not found
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x76e27000)
    libc.so.6 => /lib/libc.so.6 (0x76ced000)
    libm.so.6 => /lib/libm.so.6 (0x76c6f000)
    /lib/ld-linux-armhf.so.3 (0x54ac5000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x76c43000)
    
    

    ldd libqeglfs-viv-integration.so shows the same.

    Could be that the problem? How I fix it?

    Update:

    I tried the first approach of deploying, putting libs and plugins in /usr/lib.
    libqeglfs.so and libqeglfs-viv-integration.so now can find their dependencies, but the error persists.



  • Solved. I don't know how exactly, because I tried many things altogether, so I will try to find what was the real problem. It's very probable because of the missing touchscreen driver.

    Update:

    At first I solved it unintentionally installing qtbase-examples (I was expecting there would be binaries ready to run, but it was source code) and the package manager installed the needed dependencies too. Then I remove it and discovered what dependencies were these that made my helloworld to work:

    kernel-module-imx-gpu-viv
    libgles2-mx6
    libegl-mx6
    


  • @aV_V hi,i have the same problem ,You remove
    kernel-module-imx-gpu-viv
    libgles2-mx6
    libegl-mx6

    ,and then work,Please how to remove? use "opkg remove"?



  • @hflw No no, I dont remove them. I added those missing packages. Actually, this package: kernel-module-imx-gpu-viv, which is the gpu driver, it wasn't missing, I had it as a built-in module. So check ur kernel configuration and make sure u have enabled the gpu driver.
    Then u need to have installed the EGL libraries compiled for ur platform. On my case are libgles2-mx6 and libegl-mx6.

    Tell me more about ur platform and what Yocto setup are u using and I could help u better if that wasn't enough.

    Regards.



  • hi @aV_V ,my board info:

    • cpu:imx6dl
    • yocto:jethro
    • kernel:3.10.17
    • qt: 5.7.1 (build based on Yocto Jethro)

    the below is the kernel start complete info and qt program running info:

    
    U-Boot 2014.04-gb0af01b-dirty (Mar 09 2015 - 18:41:02)
    
    CPU:   Freescale i.MX6DL rev1.1 at 792 MHz
    CPU:   Temperature 34 C, calibration data: 0x5874fc69
    Reset cause: POR
    Board: MX6-Sabreauto revA
    I2C:   ready
    DRAM:  1 GiB
    NAND:  1024 MiB
    MMC:   FSL_SDHC: 0, FSL_SDHC: 1
    No panel detected: default to Hannstar-XGA
    Display: Hannstar-XGA (1024x768)
    In:    serial
    Out:   serial
    Err:   serial
    Found PFUZE100! deviceid=10,revid=21
    Net:   Phy not found
    PHY reset timed out
    FEC [PRIME]
    Warning: failed to set MAC address
    
    Normal Boot
    Hit any key to stop autoboot:  0 
    
    NAND read: device 0 offset 0x1000000, size 0x800000
     8388608 bytes read: OK
    
    NAND read: device 0 offset 0x2000000, size 0x100000
     1048576 bytes read: OK
    Kernel image @ 0x12000000 [ 0x000000 - 0x53f8f8 ]
    ## Flattened Device Tree blob at 18000000
       Booting using the fdt blob at 0x18000000
       Using Device Tree in place at 18000000, end 1800d88c
    
    Starting kernel ...
    
    Booting Linux on physical CPU 0x0
    Linux version 3.10.17-80743-g257896a-dirty (hflw@ubuntu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #46 SMP PREEMPT Tue Jan 17 23:58:01 CST 2017
    CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Freescale i.MX6 DualLite/Solo BLURR Board
    cma: CMA: reserved 320 MiB at 3c000000
    Memory policy: ECC disabled, Data cache writealloc
    PERCPU: Embedded 8 pages/cpu @8155f000 s8896 r8192 d15680 u32768
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096
    Kernel command line: console=ttymxc3,115200 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs mtdparts=gpmi-nand:16m(boot),16m(kernel),16m(dtb),-(rootfs) video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666 ldb=sin0
    PID hash table entries: 4096 (order: 2, 16384 bytes)
    Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
    Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    Memory: 1024MB = 1024MB total
    Memory: 697456k/697456k available, 351120k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        vmalloc : 0xc0800000 - 0xff000000   (1000 MB)
        lowmem  : 0x80000000 - 0xc0000000   (1024 MB)
        pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
        modules : 0x7f000000 - 0x7fe00000   (  14 MB)
          .text : 0x80008000 - 0x80c46c58   (12540 kB)
          .init : 0x80c47000 - 0x80c8b2c0   ( 273 kB)
          .data : 0x80c8c000 - 0x80cdf240   ( 333 kB)
           .bss : 0x80cdf240 - 0x80d48714   ( 422 kB)
    SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    Preemptible hierarchical RCU implementation.
    	RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
    NR_IRQS:16 nr_irqs:16 16
    L310 cache controller enabled
    l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32050000, Cache size: 524288 B
    sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
    CPU identified as i.MX6DL, silicon rev 1.1
    Console: colour dummy device 80x30
    Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    Setting up static identity map for 0x8065e210 - 0x8065e268
    CPU1: Booted secondary processor
    CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    Brought up 2 CPUs
    SMP: Total of 2 processors activated (3162.11 BogoMIPS).
    CPU: All CPU(s) started in SVC mode.
    devtmpfs: initialized
    pinctrl core: initialized pinctrl subsystem
    regulator-dummy: no parameters
    NET: Registered protocol family 16
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    Use WDOG1 as reset source
    syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered
    vdd1p1: 800 <--> 1375 mV at 1125 mV 
    vdd3p0: 2800 <--> 3150 mV at 3000 mV 
    vdd2p5: 2000 <--> 2750 mV at 2425 mV 
    cpu: 725 <--> 1450 mV at 1150 mV 
    vddpu: 725 <--> 1450 mV 
    vddsoc: 725 <--> 1450 mV at 1175 mV 
    syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered
    syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered
    hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    hw-breakpoint: maximum watchpoint size is 4 bytes.
    imx6dl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
    bio: create slab <bio-0> at 0
    mxs-dma 110000.dma-apbh: initialized
    usb_h1_vbus: 5000 mV 
    usb_otg_vbus: 5000 mV 
    3P3V: 3300 mV 
    i2c-core: driver [max17135] using legacy suspend method
    i2c-core: driver [max17135] using legacy resume method
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    i2c i2c-0: IMX I2C adapter registered
    Linux video capture interface: v2.00
    pps_core: LinuxPPS API ver. 1 registered
    pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    PTP clock support registered
    imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
    mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed
    mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a
    MIPI CSI2 driver module loaded
    Advanced Linux Sound Architecture Driver Initialized.
    cfg80211: Calling CRDA to update world regulatory domain
    Switching to clocksource mxc_timer1
    NET: Registered protocol family 2
    TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
    TCP: Hash tables configured (established 8192 bind 8192)
    TCP: reno registered
    UDP hash table entries: 512 (order: 2, 16384 bytes)
    UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
    pureg-dummy: no parameters
    Bus freq driver module loaded
    VFS: Disk quotas dquot_6.5.2
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    NFS: Registering the id_resolver key type
    Key type id_resolver registered
    Key type id_legacy registered
    jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    fuse init (API version 7.22)
    msgmni has been set to 2002
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    imx-weim 21b8000.weim: WEIM driver registered.
    MIPI DSI driver module loaded
    mxc_sdc_fb fb.21: register mxc display driver ldb
    mxc_ldb 20e0000.ldb: change IPU DI1 to IPU DI0 for LDB channel0.
    imx-ipuv3 2400000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
    Console: switching to colour frame buffer device 128x48
    mxc_sdc_fb fb.22: register mxc display driver hdmi
    mxc_sdc_fb fb.22: NO mxc display driver found!
    imx_epdc_fb 20f4000.epdc: can't get/select pinctrl
    imx-sdma 20ec000.sdma: no iram assigned, using external mem
    imx-sdma 20ec000.sdma: loaded firmware 1.1
    imx-sdma 20ec000.sdma: initialized
    Serial: IMX driver
    21f0000.serial: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
    console [ttymxc3] enabled
    serial: Freescale lpuart driver
    [drm] Initialized drm 1.1.0 20060810
    [drm] Initialized vivante 1.0.0 20120216 on minor 0
    brd: module loaded
    loop: module loaded
    nand: device found, Manufacturer ID: 0x01, Chip ID: 0xd3
    nand: AMD/Spansion S34ML08G2
    nand: 1024MiB, SLC, page size: 2048, OOB size: 128
    gpmi-nand 112000.gpmi-nand: enable the asynchronous EDO mode 4
    Scanning device for bad blocks
    4 cmdlinepart partitions found on MTD device gpmi-nand
    Creating 4 MTD partitions on "gpmi-nand":
    0x000000000000-0x000001000000 : "boot"
    0x000001000000-0x000002000000 : "kernel"
    0x000002000000-0x000003000000 : "dtb"
    0x000003000000-0x000040000000 : "rootfs"
    gpmi-nand 112000.gpmi-nand: driver registered.
    spi_imx 2010000.ecspi: probed
    CAN device driver interface
    flexcan 2090000.can: device registered (reg_base=c09b0000, irq=142)
    fec 2188000.ethernet (unregistered net_device): Invalid MAC address: 00:00:00:00:00:00
    fec 2188000.ethernet (unregistered net_device): Using random MAC address: ee:3a:44:25:3f:b9
    libphy: fec_enet_mii_bus: probed
    fec 2188000.ethernet eth0: registered PHC device 0
    usbcore: registered new interface driver cdc_ether
    usbcore: registered new interface driver net1080
    usbcore: registered new interface driver rndis_host
    usbcore: registered new interface driver zaurus
    usbcore: registered new interface driver cdc_ncm
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    usbcore: registered new interface driver cdc_wdm
    usbcore: registered new interface driver usb-storage
    usbcore: registered new interface driver ums-realtek
    ci_hdrc ci_hdrc.1: doesn't support gadget
    ci_hdrc ci_hdrc.1: EHCI Host Controller
    ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
    ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    mousedev: PS/2 mouse device common for all mice
    input: eGalax Touch Screen as /devices/soc0/soc.1/2100000.aips-bus/21a0000.i2c/i2c-0/0-0004/input/input0
    i2c-core: driver [isl29023] using legacy suspend method
    i2c-core: driver [isl29023] using legacy resume method
    snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0
    i2c /dev entries driver
    mxc_v4l2_output v4l2_out.25: V4L2 device registered as video16
    mxc_v4l2_output v4l2_out.25: V4L2 device registered as video17
    i2c-core: driver [mag3110] using legacy suspend method
    i2c-core: driver [mag3110] using legacy resume method
    imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)
    cpuidle: using governor ladder
    cpuidle: using governor menu
    sdhci: Secure Digital Host Controller Interface driver
    sdhci: Copyright(c) Pierre Ossman
    sdhci-pltfm: SDHCI platform and OF driver helper
    mmc0: no vqmmc regulator found
    mmc0: no vmmc regulator found
    mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
    usb 1-1: new high-speed USB device number 2 using ci_hdrc
    Galcore version 4.6.9.9754
    mxc_vdoa 21e4000.vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
    mxc_vpu 2040000.vpu: VPU initialized
    caam 2100000.caam: device ID = 0x0a16010000000100 (Era -524)
    caam 2100000.caam: job rings = 2, qi = 0
    caam 2100000.caam: authenc-hmac-md5-cbc-aes-caam
    caam 2100000.caam: authencesn-hmac-md5-cbc-aes-caam
    caam 2100000.caam: authenc-hmac-sha1-cbc-aes-caam
    caam 2100000.caam: authencesn-hmac-sha1-cbc-aes-caam
    caam 2100000.caam: authenc-hmac-sha224-cbc-aes-caam
    caam 2100000.caam: authencesn-hmac-sha224-cbc-aes-caam
    caam 2100000.caam: authenc-hmac-sha256-cbc-aes-caam
    caam 2100000.caam: authencesn-hmac-sha256-cbc-aes-caam
    caam 2100000.caam: authenc-hmac-md5-cbc-des3_ede-caam
    caam 2100000.caam: authencesn-hmac-md5-cbc-des3_ede-caam
    caam 2100000.caam: authenc-hmac-sha1-cbc-des3_ede-caam
    caam 2100000.caam: authencesn-hmac-sha1-cbc-des3_ede-caam
    caam 2100000.caam: authenc-hmac-sha224-cbc-des3_ede-caam
    caam 2100000.caam: authencesn-hmac-sha224-cbc-des3_ede-caam
    caam 2100000.caam: authenc-hmac-sha256-cbc-des3_ede-caam
    caam 2100000.caam: authencesn-hmac-sha256-cbc-des3_ede-caam
    caam 2100000.caam: authenc-hmac-md5-cbc-des-caam
    caam 2100000.caam: authencesn-hmac-md5-cbc-des-caam
    caam 2100000.caam: authenc-hmac-sha1-cbc-des-caam
    caam 2100000.caam: authencesn-hmac-sha1-cbc-des-caam
    caam 2100000.caam: authenc-hmac-sha224-cbc-des-caam
    caam 2100000.caam: authencesn-hmac-sha224-cbc-des-caam
    caam 2100000.caam: authenc-hmac-sha256-cbc-des-caam
    caam 2100000.caam: authencesn-hmac-sha256-cbc-des-caam
    caam 2100000.caam: ecb-des-caam
    caam 2100000.caam: ecb-arc4-caam
    caam 2100000.caam: ecb-aes-caam
    caam 2100000.caam: ctr-aes-caam
    caam 2100000.caam: cbc-aes-caam
    caam 2100000.caam: ecb-des3-caam
    caam 2100000.caam: cbc-3des-caam
    caam 2100000.caam: cbc-des-caam
    caam 2100000.caam: fsl,sec-v4.0 algorithms registered in /proc/crypto
    platform 2101000.jr0: registering rng-caam
    platform caam_sm: caam_sm_test: 8-byte key test match OK
    platform caam_sm: caam_sm_test: 16-byte key test match OK
    platform caam_sm: caam_sm_test: 32-byte key test match OK
    platform caam_secvio.32: security violation service handlers armed
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    i2c-core: driver [cs42888] using legacy suspend method
    i2c-core: driver [cs42888] using legacy resume method
    fsl-hdmi-dai hdmi_audio.16: failed to probe. Load HDMI-video first.
    fsl-hdmi-dai: probe of hdmi_audio.16 failed with error -12
    sgtl5000 0-000a: Device with ID register ffff is not a sgtl5000
    sgtl5000 0-000a: ASoC: failed to probe CODEC -19
    imx-sgtl5000 sound.30: ASoC: failed to instantiate card -19
    imx-sgtl5000 sound.30: snd_soc_register_card failed (-19)
    imx-audio-hdmi sound-hdmi.31: initialize HDMI-audio failed. load HDMI-video first!
    NET: Registered protocol family 26
    TCP: cubic registered
    NET: Registered protocol family 10
    mip6: Mobile IPv6
    sit: IPv6 over IPv4 tunneling driver
    ip6_gre: GRE over IPv6 tunneling driver
    NET: Registered protocol family 17
    can: controller area network core (rev 20120528 abi 9)
    NET: Registered protocol family 29
    can: raw protocol (rev 20120528)
    can: broadcast manager protocol (rev 20120528 t)
    can: netlink gateway (rev 20130117) max_hops=1
    8021q: 802.1Q VLAN Support v1.8
    lib80211: common routines for IEEE802.11 drivers
    Key type dns_resolver registered
    VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    UBI: attaching mtd3 to ubi0
    UBI: scanning is finished
    UBI: attached mtd3 (name "rootfs", size 976 MiB) to ubi0
    UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
    UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
    UBI: good PEBs: 7808, bad PEBs: 0, corrupted PEBs: 0
    UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
    UBI: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 163028930
    UBI: available PEBs: 556, total reserved PEBs: 7252, PEBs reserved for bad PEB handling: 160
    UBI: background thread "ubi_bgt0d" started, PID 126
    console [netcon0] enabled
    netconsole: network logging started
    input: gpio-keys.19 as /devices/soc0/gpio-keys.19/input/input1
    snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:03 UTC (3)
    ALSA device list:
      No soundcards found.
    UBIFS: recovery needed
    UBIFS: recovery deferred
    UBIFS: mounted UBI device 0, volume 0, name "rootfs", R/O mode
    UBIFS: LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    UBIFS: FS size: 897847296 bytes (856 MiB, 7071 LEBs), journal size 33521664 bytes (31 MiB, 264 LEBs)
    UBIFS: reserved for root: 4952683 bytes (4836 KiB)
    UBIFS: media format: w4/r0 (latest is w4/r0), UUID 088785C7-9C8C-47E7-B788-5DCD0D7968DE, small LPT model
    VFS: Mounted root (ubifs filesystem) readonly on device 0:11.
    devtmpfs: mounted
    Freeing unused kernel memory: 272K (80c47000 - 80c8b000)
    systemd[1]: systemd 225 running in system mode. (-PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    systemd[1]: Detected architecture arm.
    
    Welcome to Boot to Qt for Embedded Linux 2.0.2 (jethro)!
    
    systemd[1]: Set hostname to <b2qt-imx6dlsabresd>.
    systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
    systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    systemd[1]: Created slice Root Slice.
    [  OK  ] Created slice Root Slice.
    systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    systemd[1]: Created slice System Slice.
    [  OK  ] Created slice System Slice.
    systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    systemd[1]: Starting File System Check on Root Device...
             Starting File System Check on Root Device...
    systemd[1]: Starting Setup Virtual Console...
             Starting Setup Virtual Console...
    systemd[1]: Mounting Temporary Directory...
             Mounting Temporary Directory...
    systemd[1]: Mounting Debug File System...
             Mounting Debug File System...
    systemd[1]: Starting Load Kernel Modules...
             Starting Load Kernel Modules...
    systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    systemd[1]: Listening on Syslog Socket.
    [  OK  ] Listening on Syslog Socket.
    systemd[1]: Starting Journal Service...
             Starting Journal Service...
    systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    systemd[1]: Mounted Debug File System.
    [  OK  ] Mounted Debug File System.
    systemd[1]: Mounted Temporary Directory.
    [  OK  ] Mounted Temporary Directory.
    systemd[1]: Started File System Check on Root Device.
    [  OK  ] Started File System Check on Root Device.
    systemd[1]: Started Setup Virtual Console.
    [  OK  ] Started Setup Virtual Console.
    systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
    systemd[1]: Failed to start Load Kernel Modules.
    [FAILED] Failed to start Load Kernel Modules.
    See 'systemctl status systemd-modules-load.service' for details.
    systemd[1]: systemd-modules-load.service: Unit entered failed state.
    systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
    systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
             Mounting FUSE Control File System...
             Starting Apply Kernel Variables...
             Starting Remount Root and Kernel File Systems...
    [  OK  ] Mounted FUSE Control File System.
    [  OK  ] Started Apply Kernel Variables.
    UBIFS: completing deferred recovery
    UBIFS: background thread "ubifs_bgt0_0" started, PID 161
    UBIFS: deferred recovery completed
    [  OK  ] Started Remount Root and Kernel File Systems.
             Starting udev Coldplug all Devices...
             Starting Create Static Device Nodes in /dev...
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Started Create Static Device Nodes in /dev.
    systemd-journald[149]: Received request to flush runtime journal from PID 1
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
    [  OK  ] Mounted /var/volatile.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
             Starting Load/Save Random Seed...
    [  OK  ] Started Create Volatile Files and Directories.
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started udev Coldplug all Devices.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Created slice system-systemd\x2dbacklight.slice.
             Starting Load/Save Screen Backlight...ess of backlight:backlight.18...
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started Load/Save Screen Backlight ...tness of backlight:backlight.18.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Listening on dropbear.socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
    [  OK  ] Started Kernel Logging Service.
             Starting Login Service...
    [  OK  ] Started B2Qt Launcher Demo.
    [  OK  ] Started System Logging Service.
    [  OK  ] Started D-Bus System Message Bus.
             Starting D-BUS Session Message Bus....
             Starting Connection service...
             Starting Restore Sound Card State...
    [  OK  ] Found device /dev/ttymxc3.
    [  OK  ] Started Login Service.
    [  OK  ] Started Serial Getty on ttymxc3.
    [  OK  ] Started Restore Sound Card State.
    [  OK  ] Started Connection service.
    [  OK  ] Reached target Network.
             Starting ADB Server Daemon...
             Starting Network Time Service...
    [  OK  ] Reached target Remote File Systems (Pre).
    [  OK  ] Reached target Remote File Systems.
    [  OK  ] Started D-BUS Session Message Bus..
             Starting WPA supplicant...
             Starting Hostname Service...
    fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
    libphy: PHY fixed-0:00 not found
    fec 2188000.ethernet eth0: could not attach to PHY
    [FAILED] Failed to start Hostname Service.
    See 'systemctl status systemd-hostnamed.service' for details.
    [  OK  ] Started ADB Server Daemon.
    [  OK  ] Started Network Time Service.
    [  OK  ] Started WPA supplicant.
    
    Boot to Qt for Embedded Linux 2.0.2 b2qt-imx6dlsabresd ttymxc3
    
    b2qt-imx6dlsabresd login: root
    root@b2qt-imx6dlsabresd:~# ls
    8192cu.ko     Accel	    cal      qmlDemoquick1  wpa_supplicant.conf
    8192cu_hf.ko  auto_wifi.sh  qmlDemo  untitled
    root@b2qt-imx6dlsabresd:~# ./untitled -platform linuxfb
    ^Croot@b2qt-imx6dlsabresd:~# ./untitled -platform eglfs  
    QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.
     If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
    Could not open egl display
    Aborted
    root@b2qt-imx6dlsabresd:~# ./qmlDemo -platform linuxfb
    This plugin does not support createPlatformOpenGLContext!
    Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile  0) 
    Aborted
    root@b2qt-imx6dlsabresd:~# ./qmlDemo -platform eglfs  
    QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.
     If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
    Could not open egl display
    Aborted
    root@b2qt-imx6dlsabresd:~# 
    
    

    the above,qt program untitled is based on widget and qmlDemo based on qml.

    I try to build the Yocto Krogoth,and the error is the same.the link of post is:

    Qt5.8 for arm:Could not open egl display

    about the kernel configuration,I think the kernel is OK,because I had successful run the qt5.3(platform eglfs) program build on Yocto Dizzy,I checked the kernel cfg MXC_GPU is y

    so How to check step by step?I am confused.Thanks in advance!!!



  • @hflw Just use menuconfig and search for vivante. If you have set CONFIG_MXC_GPU_VIV then is OK.
    Try to rebuild ur yocto image adding these packages:

    libgal-mx6 \
    libegl-mx6 \
    libvsc-mx6 \
    libglslc-mx6 \
    libgles2-mx6 \
    

    And don't forget to add opengl distro feature (on local.conf)

    DISTRO_FEATURES_append = " opengl"
    

    Is your yocto image console only? If so, do also:

    DISTRO_FEATURES_remove = "x11 wayland"
    

    Btw, that linux kernel is quite old, I don't know if that could be the main problem.



  • @aV_V ,I add the below config on local.conf

    
    DISTRO_FEATURES_remove = "x11 wayland"
    
    DISTRO_FEATURES_append = " opengl"
    
    IMAGE_INSTALL_append = " \
            libgal-mx6 \
            libegl-mx6 \
            libvsc-mx6 \
            libglslc-mx6 \
            libgles2-mx6 \
    "
    

    But the error still exists,So I decide to update kernel to Version 3.14(jethro used).



  • @hflw It worked with kernel 3.14?



  • @aV_V hi,I have updated the kernel to Version 3.14,But the error still exists.

    Can u show me your kernel .config file? and what is your kernel Version?




Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.