Which imx-gpu-viv library binary should be used with the galcore driver from the 4.9.88 NXP imx kernel? I'm trying use the vivante fb with X11, but I'm encountering a segfault during X11 startup. Here is what my Xorg log file looks like:
# cat /var/log/Xorg.0.log
[ 48.306]
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[ 48.306] Build Operating System: Linux 4.15.0-62-generic x86_64
[ 48.306] Current Operating System: Linux dbh670 4.14.98-imx+g1175b5961153 #1 SMP Thu Oct 3 15:51:42 UTC 2019 armv7l
[ 48.306] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk3p2 rootwait rw
[ 48.306] Build Date: 26 September 2019 01:31:08AM
[ 48.306]
[ 48.306] Current version of pixman: 0.38.0
[ 48.307] Before reporting problems, check
http://wiki.x.org to make sure that you have the latest version.
[ 48.307] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 48.307] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Sep 25 23:46:29 2019
[ 48.307] (==) Using config file: "/etc/X11/xorg.conf"
[ 48.307] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 48.308] (==) No Layout section. Using the first Screen section.
[ 48.308] (==) No screen section available. Using defaults.
[ 48.308] (**) |-->Screen "Default Screen Section" (0)
[ 48.308] (**) | |-->Monitor "<default monitor>"
[ 48.309] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 48.309] (**) | |-->Device "i.MX Accelerated Framebuffer Device"
[ 48.309] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[ 48.309] (**) Option "BlankTime" "0"
[ 48.309] (**) Option "StandbyTime" "0"
[ 48.309] (**) Option "SuspendTime" "0"
[ 48.310] (**) Option "OffTime" "0"
[ 48.310] (==) Automatically adding devices
[ 48.310] (==) Automatically enabling devices
[ 48.310] (==) Automatically adding GPU devices
[ 48.310] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 48.310] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[ 48.310] Entry deleted from font path.
[ 48.310] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[ 48.310] Entry deleted from font path.
[ 48.310] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[ 48.310] Entry deleted from font path.
[ 48.310] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[ 48.310] Entry deleted from font path.
[ 48.310] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[ 48.310] Entry deleted from font path.
[ 48.310] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[ 48.310] Entry deleted from font path.
[ 48.310] (==) FontPath set to:
[ 48.313] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 48.317] (II) xfree86: Adding drm device (/dev/dri/card2)
[ 48.318] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 48.333] (II) xfree86: Adding drm device (/dev/dri/card1)
[ 48.333] (II) no primary bus or device found
[ 48.333] falling back to /sys/devices/platform/platform:Vivante GCCore/drm/card2
[ 48.333] (II) LoadModule: "glx"
[ 48.334] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 48.348] (II) Module glx: vendor="X.Org Foundation"
[ 48.348] compiled for 1.20.4, module version = 1.0.0
[ 48.348] ABI class: X.Org Server Extension, version 10.0
[ 48.348] (II) LoadModule: "vivante"
[ 48.349] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[ 48.351] (II) Module vivante: vendor="X.Org Foundation"
[ 48.351] compiled for 1.20.4, module version = 1.0.0
[ 48.351] ABI class: X.Org Video Driver, version 24.0
[ 48.351] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
VivanteGCCORE
[ 48.377] (WW) Falling back to old probe method for vivante
[ 48.377] (II) Loading sub module "fbdevhw"
[ 48.377] (II) LoadModule: "fbdevhw"
[ 48.378] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 48.378] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 48.378] compiled for 1.20.4, module version = 0.0.2
[ 48.378] ABI class: X.Org Video Driver, version 24.0
[ 48.378] (II) VIVANTE(0): using default device
[ 48.382] (II) VIVANTE(0): Device preferred mode 'fb0':U:1680x1050p-0
[ 48.382] (II) VIVANTE(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 16/16
[ 48.382] (==) VIVANTE(0): Depth 16, (==) framebuffer bpp 16
[ 48.383] (==) VIVANTE(0): RGB weight 565
[ 48.383] (==) VIVANTE(0): Default visual is TrueColor
[ 48.383] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[ 48.383] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[ 48.383] (**) VIVANTE(0): mExaHwType:1
[ 48.383] (II) VIVANTE(0): checking modes against framebuffer device...
[ 48.383] (II) VIVANTE(0): checking modes against monitor...
[ 48.383] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[ 48.383] (==) VIVANTE(0): DPI set to (96, 96)
[ 48.383] (II) Loading sub module "fb"
[ 48.383] (II) LoadModule: "fb"
[ 48.383] (II) Loading /usr/lib/xorg/modules/libfb.so
[ 48.384] (II) Module fb: vendor="X.Org Foundation"
[ 48.384] compiled for 1.20.4, module version = 1.0.0
[ 48.384] ABI class: X.Org ANSI C Emulation, version 0.4
[ 48.384] (II) Loading sub module "exa"
[ 48.384] (II) LoadModule: "exa"
[ 48.384] (II) Loading /usr/lib/xorg/modules/libexa.so
[ 48.385] (II) Module exa: vendor="X.Org Foundation"
[ 48.385] compiled for 1.20.4, module version = 2.6.0
[ 48.385] ABI class: X.Org Video Driver, version 24.0
[ 48.385] (WW) VIVANTE(0): unable to support largest resolution (Invalid argument)(II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[ 48.442] (EE) VIVANTE(0): unable to set VSCREENINFO for mode 'U:1680x1050p-0': Invalid argument
[ 48.442] (EE) VIVANTE(0): unable to set frame buffer mode 'U:1680x1050p-0'
[ 48.442] (II) VIVANTE(0): Modeline "current"x0.0 0.00 1680 1680 1680 1680 1050 1050 1050 1050 -hsync -vsync -csync (0.0 kHz b)
[ 48.492] (II) VIVANTE(0): Output has no monitor section
[ 48.492] (II) VIVANTE(0): Printing probed modes for output
[ 48.492] (II) VIVANTE(0): Modeline "current"x0.0 0.00 1680 1680 1680 1680 1050 1050 1050 1050 -hsync -vsync -csync (0.0 kHz b)
[ 48.492] (II) VIVANTE(0): Output connected
[ 48.492] (II) VIVANTE(0): Using sloppy heuristic for initial modes
[ 48.492] (II) VIVANTE(0): Output using initial mode current +0+0
[ 48.492] (II) VIVANTE(0): imxDisplayPreInit: virtual set 1680 x 1050, display width 0
[ 48.493] (II) VIVANTE(0): VivPreInit: adjust display width 1680
[ 48.493] (II) VIVANTE(0): reserve 4177920 bytes for on screen frame buffer; total fb memory size 3528000 bytes; offset of shadow buffer 4177920
[ 48.493] (EE) VIVANTE(0): fb memory is not big enough to hold shadow buffer!
[ 48.500] (EE) VIVANTE(0): unable to write 'current
' to sysnode '/sys/class/graphics/fb0/mode': Invalid argument
[ 48.535] (II) VIVANTE(0): hardware: (video memory: 3445kB)
[ 48.576] (II) VIVANTE(0): FB Start = 0xb6147000 FB Base = 0xb6147000 FB Offset = (nil)
[ 48.576] (II) VIVANTE(0): test Initializing EXA
[ 48.820] (II) EXA(0): Driver allocated offscreen pixmaps
[ 48.820] (II) EXA(0): Driver registered support for the following operations:
[ 48.820] (II) Solid
[ 48.821] (II) Copy
[ 48.821] (II) Composite (RENDER acceleration)
[ 48.821] (II) UploadToScreen
[ 48.821] (==) VIVANTE(0): Backing store enabled
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.821] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (EE) VIVANTE(0): FBIOPUTCMAP: Invalid argument
[ 48.822] (==) VIVANTE(0): DPMS enabled
[ 48.843] drmOpenDevice: node name is /dev/dri/card0
[ 48.844] drmOpenDevice: open result is 13, (OK)
[ 48.859] drmOpenDevice: node name is /dev/dri/card0
[ 48.860] drmOpenDevice: open result is 13, (OK)
[ 48.876] drmOpenByBusid: Searching for BusID platform:Vivante GCCore
[ 48.876] drmOpenDevice: node name is /dev/dri/card0
[ 48.876] drmOpenDevice: open result is 13, (OK)
[ 48.876] drmOpenByBusid: drmOpenMinor returns 13
[ 48.876] drmOpenByBusid: drmGetBusid reports display-subsystem
[ 48.893] drmOpenDevice: node name is /dev/dri/card1
[ 48.893] drmOpenDevice: open result is 13, (OK)
[ 48.893] drmOpenByBusid: drmOpenMinor returns 13
[ 48.893] drmOpenByBusid: drmGetBusid reports 130000.gpu
[ 48.893] drmOpenDevice: node name is /dev/dri/card2
[ 48.893] drmOpenDevice: open result is 13, (OK)
[ 48.893] drmOpenByBusid: drmOpenMinor returns 13
[ 48.894] drmOpenByBusid: drmGetBusid reports platform:Vivante GCCore
[ 48.894] (II) [drm] DRM interface version 1.4
[ 48.894] (II) [drm] DRM open master succeeded.
[ 48.894] (II) VIVANTE(0): [drm] Using the DRM lock SAREA also for drawables.
[ 48.894] (II) VIVANTE(0): [drm] framebuffer handle = 0x2c100000
[ 48.894] (II) VIVANTE(0): [drm] added 1 reserved context for kernel
[ 48.894] (II) VIVANTE(0): X context handle = 0x1
[ 48.894] (EE) VIVANTE(0): [drm] failed to setup DRM signal handler
[ 48.894] (EE) VIVANTE(0): [dri] DRIScreenInit failed. Disabling DRI.
[ 48.895] (II) Initializing extension Generic Event Extension
[ 48.895] (II) Initializing extension SHAPE
[ 48.895] (II) Initializing extension MIT-SHM
[ 48.895] (II) Initializing extension XInputExtension
[ 48.895] (II) Initializing extension XTEST
[ 48.895] (II) Initializing extension BIG-REQUESTS
[ 48.895] (II) Initializing extension SYNC
[ 48.895] (II) Initializing extension XKEYBOARD
[ 48.895] (II) Initializing extension XC-MISC
[ 48.896] (II) Initializing extension XFIXES
[ 48.896] (II) Initializing extension RENDER
[ 48.896] (II) Initializing extension RANDR
[ 48.896] (II) Initializing extension COMPOSITE
[ 48.896] (II) Initializing extension DAMAGE
[ 48.896] (II) Initializing extension MIT-SCREEN-SAVER
[ 48.896] (II) Initializing extension DOUBLE-BUFFER
[ 48.896] (II) Initializing extension DPMS
[ 48.896] (II) Initializing extension Present
[ 48.896] (II) Initializing extension DRI3
[ 48.896] (II) Initializing extension X-Resource
[ 48.896] (II) Initializing extension XVideo
[ 48.896] (II) Initializing extension XVideo-MotionCompensation
[ 48.896] (II) Initializing extension GLX
[ 48.897] (II) AIGLX: Screen 0 is not DRI2 capable
[ 48.951] (II) IGLX: Loaded and initialized swrast
[ 48.951] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 48.951] (II) Initializing extension XFree86-VidModeExtension
[ 48.951] (II) Initializing extension XFree86-DGA
[ 48.952] (II) Initializing extension XFree86-DRI
[ 48.952] (II) Initializing extension DRI2
[ 48.952] (II) Initializing extension vivext
[ 48.952] (II) VIVANTE(0): Setting screen physical size to 444 x 277
[ 49.144] (EE)
[ 49.145] (EE) Backtrace:
[ 49.145] (EE)
[ 49.146] (EE) Segmentation fault at address 0xc0000000
[ 49.146] (EE)
Fatal server error:
[ 49.147] (EE) Caught signal 11 (Segmentation fault). Server aborting
[ 49.147] (EE)
[ 49.148] (EE)
Please consult the The X.Org Foundation support
at
http://wiki.x.org for help.
[ 49.149] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 49.149] (EE)
[ 49.236] (EE) Server terminated with error (1). Closing log file.