FNA Games on ARM board (i.e. play FEZ, Stardew Valley, Bastion... on Odroid/OrangePI/RPi)


I'm trying to run a simple monogame using your gl4es library.

I compiled gl4es and SDL2 with your guide and set

export LIBGL_ES=2
export LIBGL_GL=21
export LD_LIBRARY_PATH="./arm: $HOME/Projects/gl4es/lib"

I see, that libGL1.so is in uses, but i got errors:

LIBGL: Initialising gl4es
LIBGL: v1.0.9 built on Aug 31 2018 14:28:25
LIBGL: Using GLES 2.0 backend
LIBGL:loaded: libGLESv2.so
LIBGL:loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
PVR: (Error): OpenServices: PVRDRMOpenRender failed [0, ]
PVR: (Error): PVRSRVConnect: Unable to open connection. [0, ]
PVR: (Error): Couldn't connect to services [0, ]
LIBGL: Error while gathering supported extension (eglInitialize: EGL_BAD_ALLOC), default to none
LIBGL: Targeting OpenGL 2.1
LIBGL: Current folder is:/home/thomas/Projects/xBreakout
PVR: (Error): LoadWSModule: Couldn't get address of jump table retrieval function for [0, ]
LIBGL: Unable to create EGL display.
PVR: (Error): LoadWSModule: Couldn't get address of jump table retrieval function for [0, ]
LIBGL: Unable to create EGL display.

How can i check, if correct SDL library loaded?

Strange is, running without setting LIBGL_XXXX the default open gl drivers is loaded and the game is running.

Thomas
 
I'm trying to run a simple monogame using your gl4es library.

I compiled gl4es and SDL2 with your guide and set

export LIBGL_ES=2
export LIBGL_GL=21
export LD_LIBRARY_PATH="./arm: $HOME/Projects/gl4es/lib"

I see, that libGL1.so is in uses, but i got errors:

LIBGL: Initialising gl4es
LIBGL: v1.0.9 built on Aug 31 2018 14:28:25
LIBGL: Using GLES 2.0 backend
LIBGL:loaded: libGLESv2.so
LIBGL:loaded: libEGL.so
LIBGL: Using GLES 2.0 backend
PVR: (Error): OpenServices: PVRDRMOpenRender failed [0, ]
PVR: (Error): PVRSRVConnect: Unable to open connection. [0, ]
PVR: (Error): Couldn't connect to services [0, ]
LIBGL: Error while gathering supported extension (eglInitialize: EGL_BAD_ALLOC), default to none
LIBGL: Targeting OpenGL 2.1
LIBGL: Current folder is:/home/thomas/Projects/xBreakout
PVR: (Error): LoadWSModule: Couldn't get address of jump table retrieval function for [0, ]
LIBGL: Unable to create EGL display.
PVR: (Error): LoadWSModule: Couldn't get address of jump table retrieval function for [0, ]
LIBGL: Unable to create EGL display.

How can i check, if correct SDL library loaded?

Strange is, running without setting LIBGL_XXXX the default open gl drivers is loaded and the game is running.

Thomas
Ae you running this on an EVM 5432? If yes, do you have "pvrsrvkm.ko" loadded? Also, you probably have no GL in Window (X11 integration) support, so ypu probably need to add "export LIBGL_FB=1" to force fulscreen and direct framebuffer use.
 
Yes, EVM 5432, Kernel 4.15.0-rc8-letux-lpae-pyra, Debian GNU/Linux 9 (stretch) with "deb [arch=armhf] http://packages.pyra-handheld.com/debian/ stretch main" as extra source in apt.

But, there is no "pvrsrvkm.ko" in my system, i found some pvr stuff in "/opt/omap5-sgx-ddk-um-linux/", try "/opt/omap5-sgx-ddk-um-linux/bin/pvrsrvctl --start"
and got message "Failed to load /lib/modules/4.4.10/extra/pvrsrvkm.ko: No such file or directory"
and "Failed to load /lib/modules/4.4.10/extra/pvrsrvkm.ko: No such file or directory"
but "/lib/modules/4.4.10/" it does not exist

I think, i have to rebuild "omap5-sgx-ddk-linux" for this kernel, but this seems not possible for me.

Thomas
 
Last edited:
Great, can't wait going home for testing.

Thomas
[doublepost=1536074568,1536068943][/doublepost]Sorry to ask, but which kernel source repository have i add to sources.list?

apt-get source linux-image-$(uname -r)

I got the message "E: You must put some 'source' URIs in your sources.list"

Thomas
 
Great, can't wait going home for testing.

Thomas
[doublepost=1536074568,1536068943][/doublepost]Sorry to ask, but which kernel source repository have i add to sources.list?

apt-get source linux-image-$(uname -r)

I got the message "E: You must put some 'source' URIs in your sources.list"

Thomas
@aTc can you answer this?
 
Mhm, i think, i have to use kernel source from http://projects.goldelico.com/p/gta04-kernel/, there is no 4.15 kernel any more, i have to switch to 4.18.

Thomas
I checked on my pyra:
I have a /etc/apt/sources.list.d/multistrap-pyra.list
Code:
deb [arch=armhf] http://packages.pyra-handheld.com/debian stretch main
deb-src http://packages.pyra-handheld.com/debian stretch main
that should help
 
Yes, thanks, downloaded "linux-4.15.0-rc8-letux-lpae-pyra", compiling and creating a module "pvrsrvkm.ko" has done.

But loading failed with message "Invalid module format", it is incompatible with installed kernel.

Try building new kernel, but this fails with missing "openssl/bio.h" in moment.

But thanks for help.

Thomas
 
Yes, thanks, downloaded "linux-4.15.0-rc8-letux-lpae-pyra", compiling and creating a module "pvrsrvkm.ko" has done.

But loading failed with message "Invalid module format", it is incompatible with installed kernel.

Try building new kernel, but this fails with missing "openssl/bio.h" in moment.

But thanks for help.

Thomas
The "magic" of the module you built is different for the maginc of your current kernel (meaning: different compile flags...). Probably the "-pyra" is missing (check with "uname -a"). Search the config file arch/arm/config/letux_lpae_defconfig.cfg in the kernel to add the "-pyra" to the signature and it will be fine (-pyra means aufs for dbp, if I'm not mistaken).
 
running "uname -a" => "4.15.0-rc8-letux-lpae-pyra"

running "sudo modinfo ./eurasia_km/eurasiacon/binary2_omap_linux_release/target/pvrsrvkm.ko" => "4.15.0-rc8-letux-lpae", tada

change line "CONFIG_LOCALVERSION="-letux-lpae" to "CONFIG_LOCALVERSION="-letux-lpae-pyra"",
rerun "make ARCH=arm letux_lpae_defconfig" in kernel dir
rebuild modul
rerun "sudo modinfo ./eurasia_km/eurasiacon/binary2_omap_linux_release/target/pvrsrvkm.ko" => "4.15.0-rc8-letux-lpae-pyra", tada

But loading failed with message "Unknown symbol in module"

I will check this later.

Thomas
 
running "uname -a" => "4.15.0-rc8-letux-lpae-pyra"

running "sudo modinfo ./eurasia_km/eurasiacon/binary2_omap_linux_release/target/pvrsrvkm.ko" => "4.15.0-rc8-letux-lpae", tada

change line "CONFIG_LOCALVERSION="-letux-lpae" to "CONFIG_LOCALVERSION="-letux-lpae-pyra"",
rerun "make ARCH=arm letux_lpae_defconfig" in kernel dir
rebuild modul
rerun "sudo modinfo ./eurasia_km/eurasiacon/binary2_omap_linux_release/target/pvrsrvkm.ko" => "4.15.0-rc8-letux-lpae-pyra", tada

But loading failed with message "Unknown symbol in module"

I will check this later.

Thomas
Ah yes, there was an option missing in the kernel (I don't remember wich one), leading to that missing symbol. Use kernel 4.15.17 if you can, aTc added that option in this one.
 
Strange, Kernel 4.15.17 is running, but no x11 screen and on serial console many kernel trace exeptions, but login over ethernet is working.

Trying a newer kernel.

Thomas
 
Strange, Kernel 4.15.17 is running, but no x11 screen and on serial console many kernel trace exeptions, but login over ethernet is working.

Trying a newer kernel.

Thomas
Maybe try to use fbdev instead of fbturbo on that kernel. It was needed for me, but not for aTc, so give it a try, but it may not solve the issue.
 
No luck with newer kernel.

But i think the message ""Unknown symbol in module" comes from missing modul drm. dmesg reports that the symbol "symbol drm_legacy_mmap" is not found. After some checks, the sgx driver deepends on module "drm", but this modul is not loaded.Try to load with "insmod ./drivers/gpu/drm/drm_kms_helper.ko gaves more messages, so i have to read more.

Thomas
 
the "drm_legacy" kernel option was added only in the 4.15.17 module IIRC. Not sure latest kernel are built with this enabled @aTc knows this
 
I have recompiled and installed 4.15.0-rc8-letux-lpae-pyra, and now i had modules drm, omapdss, omapdrm, drm_kms_helper loaded.

"cat /proc/kallsyms | grep drm_legacy" show many symbols starting with "drm_legacy" but the symbol "drm_legacy_mmap" is not found.

The function exists in driver source "drm_vm.c" but " drm_vm.o" is not created, so the source file is not compiled. "drm_vm" seems to be a part of pvr driver in staging tree, i enable pvr in kernel config, but file is not compiled.

I'm run out of ideas.

Thomas
 
Yes, i have set this option to "CONFIG_DRM_LEGACY=y" and "CONFIG_DRM_VM=y", but "drm_vm.o" is not created.

Thomas
 
Back
Top