i.MX6ULL + X11

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6ULL + X11

Jump to solution
3,085 Views
brianptl
Contributor III

Hi All,

 

I have the following hardware:

  • MCIMX6ULL-EVK Evaluation kit
  • NXP LCD8000-43T LCD Display

I have followed the linux Yocto build instructions from: L4.9.88_2.0.0_LINUX_DOCS

I would like to be able to display an example X11 application on the screen.

I am building with the following commands:

$ MACHINE=imx6ull14x14evk DISTRO=fsl-imx-x11 source fsl-setup-release.sh -b build-x11
bitbake fsl-image-qt5-validation-imx

On initial boot I see the following in

# cat /var/log/Xorg.0.log
[    12.158]
X.Org X Server 1.19.3
Release Date: 2017-03-15
[    12.158] X Protocol Version 11, Revision 0
[    12.158] Build Operating System: Linux 4.15.0-29-generic x86_64
[    12.158] Current Operating System: Linux imx6ull-theopolis 4.9.88-imx_4.9.88_2.0.0_ga+g5e23f9d61147 #1 SMP PREEMPT Mon Dec 3 11:14:00 GMT 2018 armv7l
[    12.158] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw
[    12.158] Build Date: 23 October 2018  04:01:16PM
[    12.159]  
[    12.159] Current version of pixman: 0.34.0
[    12.159]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    12.159] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    12.159] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Oct 23 13:46:04 2018
[    12.199] (==) Using config file: "/etc/X11/xorg.conf"
[    12.199] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    12.233] (==) No Layout section.  Using the first Screen section.
[    12.233] (==) No screen section available. Using defaults.
[    12.233] (**) |-->Screen "Default Screen Section" (0)
[    12.233] (**) |   |-->Monitor "<default monitor>"
[    12.234] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    12.234] (**) |   |-->Device "i.MX Accelerated Framebuffer Device"
[    12.234] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    12.234] (**) Option "BlankTime" "0"
[    12.234] (**) Option "StandbyTime" "0"
[    12.234] (**) Option "SuspendTime" "0"
[    12.234] (**) Option "OffTime" "0"
[    12.234] (==) Automatically adding devices
[    12.234] (==) Automatically enabling devices
[    12.234] (==) Automatically adding GPU devices
[    12.235] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    12.266] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    12.266]    Entry deleted from font path.
[    12.266] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    12.266]    Entry deleted from font path.
[    12.266] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    12.266]    Entry deleted from font path.
[    12.266] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    12.266]    Entry deleted from font path.
[    12.272] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    12.272]    Entry deleted from font path.
[    12.272] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    12.272]    Entry deleted from font path.
[    12.272] (==) FontPath set to:

[    12.272] (==) ModulePath set to "/usr/lib/xorg/modules"
[    12.272] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    12.273] (II) Loader magic: 0x1c3d18
[    12.273] (II) Module ABI versions:
[    12.273]    X.Org ANSI C Emulation: 0.4
[    12.273]    X.Org Video Driver: 23.0
[    12.273]    X.Org XInput driver : 24.1
[    12.273]    X.Org Server Extension : 10.0
[    12.286] (II) xfree86: Adding drm device (/dev/dri/card0)
[    12.286] (II) no primary bus or device found
[    12.286]    falling back to /sys/devices/platform/Vivante GCCore/drm/card0
[    12.286] (II) LoadModule: "glx"
[    12.346] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    12.553] (II) Module glx: vendor="X.Org Foundation"
[    12.553]    compiled for 1.19.3, module version = 1.0.0
[    12.553]    ABI class: X.Org Server Extension, version 10.0
[    12.553] (II) LoadModule: "vivante"
[    12.554] (WW) Warning, couldn't open module vivante
[    12.554] (II) UnloadModule: "vivante"
[    12.554] (II) Unloading vivante
[    12.554] (EE) Failed to load module "vivante" (module does not exist, 0)
[    12.554] (EE) No drivers available.
[    12.554] (EE)
Fatal server error:
[    12.554] (EE) no screens found(EE)
[    12.555] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[    12.555] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    12.555] (EE)
[    12.555] (EE) Server terminated with error (1). Closing log file.


If I look at the /etc/X11/xorg.conf file I get:

# cat xorg.conf

Section "Device"
    Identifier  "i.MX Accelerated Framebuffer Device"
    Driver      "vivante"
    Option      "fbdev"     "/dev/fb0"
    Option      "vivante_fbdev" "/dev/fb0"
    Option      "HWcursor"  "false"
EndSection

Section "ServerFlags"
    Option "BlankTime"  "0"
    Option "StandbyTime"  "0"
    Option "SuspendTime"  "0"
    Option "OffTime"  "0"
EndSection

If I look at the i.MX_Reference_Manual.pdf, Rev. L4.9.88_2.0.0-ga, 05/2018, Page 172
[5.3.2.5 xorg.conf for i.MX]

I see it recommends the following setup:

Section "ServerLayout"
    Identifier "Default Layout"
    Screen "Default Screen"
EndSection

Section "Module"
    Load "dbe"
    Load "extmod"
    Load "freetype"
    Load "glx"
    Load "dri"
EndSection

Section "InputDevice"
    Identifier "Generic Keyboard"
    Driver "kbd"
    Option "XkbLayout" "us"
    Option "XkbModel" "pc105"
    Option "XkbRules" "xorg"
EndSection

Section "InputDevice"
    Identifier "Configured Mouse"
    Driver "mouse"
    Option "CorePointer"
EndSection

Section "Device"
    Identifier "Your Accelerated Framebuffer Device"
    Driver "vivante"
    Option "fbdev" "/dev/fb0"
    Option "vivante_fbdev" "/dev/fb0"
    Option "HWcursor" "false"
EndSection

Section "Monitor"
    Identifier "Configured Monitor"
EndSection


Section "Screen"
    Identifier "Default Screen"
    Monitor "Configured Monitor"
    Device "Your Accelerated Framebuffer Device"
    DefaultDepth 24
EndSection

Section "DRI"
    Mode 0666
EndSection

Now I get the following:

# cat /var/log/Xorg.0.log
[    12.450]
X.Org X Server 1.19.3
Release Date: 2017-03-15
[    12.472] X Protocol Version 11, Revision 0
[    12.472] Build Operating System: Linux 4.15.0-29-generic x86_64
[    12.472] Current Operating System: Linux imx6ull-theopolis 4.9.88-imx_4.9.88_2.0.0_ga+g5e23f9d61147 #1 SMP PREEMPT Mon Dec 3 11:14:00 GMT 2018 armv7l
[    12.472] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw
[    12.472] Build Date: 23 October 2018  04:01:16PM
[    12.472]  
[    12.472] Current version of pixman: 0.34.0
[    12.473]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    12.473] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    12.498] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Oct 23 13:46:05 2018
[    12.532] (==) Using config file: "/etc/X11/xorg.conf"
[    12.533] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    12.569] (==) ServerLayout "Default Layout"
[    12.569] (**) |-->Screen "Default Screen" (0)
[    12.569] (**) |   |-->Monitor "Configured Monitor"
[    12.591] (**) |   |-->Device "Your Accelerated Framebuffer Device"
[    12.592] (==) Automatically adding devices
[    12.592] (==) Automatically enabling devices
[    12.592] (==) Automatically adding GPU devices
[    12.592] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    12.621] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    12.621]    Entry deleted from font path.
[    12.621] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    12.621]    Entry deleted from font path.
[    12.621] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    12.621]    Entry deleted from font path.
[    12.621] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    12.621]    Entry deleted from font path.
[    12.621] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    12.621]    Entry deleted from font path.
[    12.621] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    12.621]    Entry deleted from font path.
[    12.621] (==) FontPath set to:

[    12.622] (==) ModulePath set to "/usr/lib/xorg/modules"
[    12.622] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    12.622] (II) Loader magic: 0x1c3d18
[    12.622] (II) Module ABI versions:
[    12.622]    X.Org ANSI C Emulation: 0.4
[    12.622]    X.Org Video Driver: 23.0
[    12.622]    X.Org XInput driver : 24.1
[    12.622]    X.Org Server Extension : 10.0
[    12.624] (II) xfree86: Adding drm device (/dev/dri/card0)
[    12.625] (II) no primary bus or device found
[    12.625]    falling back to /sys/devices/platform/Vivante GCCore/drm/card0
[    12.625] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[    12.625] (II) LoadModule: "dbe"
[    12.625] (II) Module "dbe" already built-in
[    12.626] (II) LoadModule: "extmod"
[    12.626] (II) Module "extmod" already built-in
[    12.626] (II) LoadModule: "glx"
[    12.776] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    12.973] (II) Module glx: vendor="X.Org Foundation"
[    12.973]    compiled for 1.19.3, module version = 1.0.0
[    12.973]    ABI class: X.Org Server Extension, version 10.0
[    12.973] (II) LoadModule: "dri"
[    12.973] (II) Module "dri" already built-in
[    12.973] (II) LoadModule: "vivante"
[    12.974] (WW) Warning, couldn't open module vivante
[    12.974] (II) UnloadModule: "vivante"
[    12.974] (II) Unloading vivante
[    12.974] (EE) Failed to load module "vivante" (module does not exist, 0)
[    12.974] (EE) No drivers available.
[    13.009] (EE)
Fatal server error:
[    13.013] (EE) no screens found(EE)
[    13.013] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[    13.013] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    13.013] (EE)
[    13.013] (EE) Server terminated with error (1). Closing log file.

If I look at the i.MX_Reference_Manual.pdf, Rev. L4.9.88_2.0.0-ga, 05/2018, Page 174
[5.3.2.6 Setup X-Windows System Acceleration on Yocto]

It recommends building:

bitbake xf86-video-imxfb-vivante

However, this gives the following error:

$ bitbake xf86-video-imxfb-vivante
WARNING: Host distribution "ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |###########################################################################################################################| Time: 0:00:00
Loaded 3285 entries from dependency cache.
Parsing recipes: 100% |#########################################################################################################################| Time: 0:00:02
Parsing of 2446 .bb files complete (2444 cached, 2 parsed). 3287 targets, 219 skipped, 8 masked, 0 errors.
ERROR: Nothing PROVIDES 'xf86-video-imxfb-vivante'. Close matches:
  xf86-video-imx-vivante
  xf86-video-intel
  xf86-video-fbdev

Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

So it seems like the documentation is maybe outdated or incorrect.

Can someone advise on this? Is this the correct path?

I will try xf86-video-imx-vivante but it seems strange that this isn't already set up to work in the demo images.

Thanks,

Brian.

Labels (4)
0 Kudos
1 Solution
2,122 Views
brianptl
Contributor III

There seem to be settings for other devices in the sources folder, but not the i.MX6ULL.

If you do:

cd ~/imx-yocto-bsp/sources/

find . -name xorg.conf

You can find a bunch.

I copied the mx6ul version:

Section "Device"
    Identifier  "Kernel Framebuffer Device"dbox --kiosk http://bl.ocks.org/msqr/3
    Driver      "fbdev"
    Option      "fbdev" "/dev/fb0"
EndSection

Section "ServerFlags"
    Option "BlankTime"  "0"
    Option "StandbyTime"  "0"
    Option "SuspendTime"  "0"
    Option "OffTime"  "0"
EndSection

This works and I can now run X11.

Thanks,

Brian.

View solution in original post

0 Kudos
3 Replies
2,123 Views
brianptl
Contributor III

There seem to be settings for other devices in the sources folder, but not the i.MX6ULL.

If you do:

cd ~/imx-yocto-bsp/sources/

find . -name xorg.conf

You can find a bunch.

I copied the mx6ul version:

Section "Device"
    Identifier  "Kernel Framebuffer Device"dbox --kiosk http://bl.ocks.org/msqr/3
    Driver      "fbdev"
    Option      "fbdev" "/dev/fb0"
EndSection

Section "ServerFlags"
    Option "BlankTime"  "0"
    Option "StandbyTime"  "0"
    Option "SuspendTime"  "0"
    Option "OffTime"  "0"
EndSection

This works and I can now run X11.

Thanks,

Brian.

0 Kudos
2,122 Views
brianptl
Contributor III

Looking at i.MX_Linux_Release_Notes.pdf, Rev. L4.9.88_2.0.0-ga, 05/2018, page 16 it seems that the i.MX6ULL does not have any GPU at all, not even a 2D GPU.

Page 17 shows that it has PxP.

So my conclusion is that the recommendations for the content of /etc/X11/xorg.conf in the document i.MX_Reference_Manual.pdf, Rev. L4.9.88_2.0.0-ga, 05/2018, Page 172 are not correct for the i.MX6ULL (and maybe others without the GPU).

So it seems I need to find the correct settings.

0 Kudos
2,122 Views
brianptl
Contributor III

So trying to build xf86-video-imx-vivante does not give good results:

$ bitbake xf86-video-imx-vivante
WARNING: Host distribution "ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |###########################################################################################################################| Time: 0:00:01
Loaded 3285 entries from dependency cache.
Parsing recipes: 100% |#########################################################################################################################| Time: 0:00:03
Parsing of 2446 .bb files complete (2444 cached, 2 parsed). 3287 targets, 219 skipped, 8 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'imx-gpu-viv' (but /home/brian/imx-yocto-bsp/sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.2.4.p1.2.bb DEPENDS on or otherwise requires it)
imx-gpu-viv was skipped: incompatible with machine imx6ull14x14evk (not in COMPATIBLE_MACHINE)
imx-gpu-viv was skipped: incompatible with machine imx6ull14x14evk (not in COMPATIBLE_MACHINE)
imx-gpu-viv was skipped: incompatible with machine imx6ull14x14evk (not in COMPATIBLE_MACHINE)
ERROR: Required build target 'xf86-video-imx-vivante' has no buildable providers.
Missing or unbuildable dependency chain was: ['xf86-video-imx-vivante', 'imx-gpu-viv']

Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.


if I look in the file sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.2.4.p1.2-aarch32.bb I see the following:

require imx-gpu-viv-v6.inc

SRC_URI[md5sum] = "280990aab8dee2ee9ce508cbf0d6833f"
SRC_URI[sha256sum] = "dddadd164bede4793409ccfb636324dd73862c33458db66a5860f126bada25dc"

COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)"

So it seems like the i.MX6ULL is not included in the COMPATIBLE_MACHINE variable. Should it be?

If I try to change this to:

require imx-gpu-viv-v6.inc

SRC_URI[md5sum] = "280990aab8dee2ee9ce508cbf0d6833f"
SRC_URI[sha256sum] = "dddadd164bede4793409ccfb636324dd73862c33458db66a5860f126bada25dc"

COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp|imx6ull)"

I get the following:

$ bitbake xf86-video-imx-vivante
WARNING: Host distribution "ubuntu-18.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |###########################################################################################################################| Time: 0:00:01
Loaded 3285 entries from dependency cache.
Parsing recipes: 100% |#########################################################################################################################| Time: 0:00:03
Parsing of 2446 .bb files complete (2443 cached, 3 parsed). 3287 targets, 219 skipped, 8 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'virtual/libg2d' (but /home/brian/imx-yocto-bsp/sources/meta-fsl-bsp-release/imx/meta-bsp/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.2.4.p1.2.bb DEPENDS on or otherwise requires it)
imx-gpu-viv PROVIDES virtual/libg2d but was skipped: incompatible with machine imx6ull14x14evk (not in COMPATIBLE_MACHINE)
imx-dpu-g2d PROVIDES virtual/libg2d but was skipped: incompatible with machine imx6ull14x14evk (not in COMPATIBLE_MACHINE)
imx-gpu-g2d PROVIDES virtual/libg2d but was skipped: incompatible with machine imx6ull14x14evk (not in COMPATIBLE_MACHINE)
ERROR: Required build target 'xf86-video-imx-vivante' has no buildable providers.
Missing or unbuildable dependency chain was: ['xf86-video-imx-vivante', 'virtual/libg2d']

Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Doing some reading, I think that all i.MX6s have vivante GPUs, with the higher end ones having 3D and the lower end ones (e.g. i.MX6ULL) having 2D.

So I think there should be a vivante module for X11 to use, but I'm not sure if this is the correct way to build for the 2D variant.

I can keep playing whack-a-mole with the COMPATIBLE_MACHINE until I get something that builds I think. Does anyone know if this is the correct path?

Thanks,

Brian.

0 Kudos