English Amiga Board

Go Back   English Amiga Board > Support > support.OtherUAE

Thread Tools
Old 27 February 2017, 23:18   #1
Posts: n/a
uae4arm or aue4all2 on BQ M10 ubuntu touch tablet


I am quite new to building/compiling, especially on arm. I have a BQ M10 tablet (the fullHD version) with Ubuntu Touch on it and thought it would be so great to turn it to my Amiga emulator too (it does MHL, so it could mirror the screen to a big display and it has OTG capabilities too). I would like to get some help on how would you go about installing/compiling (I think there is no installable package available so I think I need to go and build it) an emulator on this device?
What I did already is to create a container and install FSUAE in it but it ran really-really slow in the container plus the colors were off. So the next thing I would try is build uae4all2/4arm. How should I modify the makefile or build script?
As the display server is not Xorg but Mir, would that make any difference at building? I guess not as there is a way to run X apps on the device too. I just don't know if it will make a difference at building are the include files the same as on android or at the raspberry.
The ARM processor in the BQ M10 tablet is:
MT8163A with cortex-a53 quad core cpu, its architecture is armv8-a and has neon and vfpv4 capability and its gpu supports openGL ES 3.1. What should be modified compared to the raspberry makefile of uae4arm-rpi of Chips-fr for example?

Thanks a lot for any support in advance! I don't expect spoon-feeding, so in case you can point me to a resource or similar problem solved I would appreciate that too!
Old 02 March 2017, 21:32   #2
Posts: n/a
uae4arm build

Ok, so I had some success with uae4arm.
I ran:
make PLATFORM=generic-sdl
It compiled but when I start the uae4arm executable the device restarts immediately.
My questions generally for the building:
-do I have to use g++-4.8 or 4.9 or doesn't matter?
-do I have to add this to the Makefile because I build on a different device:
CPU_FLAGS= -marm -march=armv8-a -mtune=cortex-a53 -mfpu=neon-vfpv4

I also tried to compile with GLES with:
make PLATFORM=gles
but first it complained that the 'GLES/gl.h' was not found, but I overcame that problem by linking GLES -> GL, as on my device the gl.h header is located in /usr/include/GL.
But then the next problem was:
/usr/bin/ld: cannot find -lGLESv1_CM
collect2: error: ld returned 1 exit status
I only have these libraries prefixed with "lib":
$ ldconfig -p | grep -i egl
    libwayland-egl.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libwayland-egl.so.1
    libwayland-egl.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libhybris-egl/libwayland-egl.so.1
    libwayland-egl.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libwayland-egl.so
    libhybris-eglplatformcommon.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libhybris-eglplatformcommon.so.1
    libGLESv2.so.2 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libhybris-egl/libGLESv2.so.2
    libGLESv1_CM.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libhybris-egl/libGLESv1_CM.so.1
    libEGL.so.1 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libhybris-egl/libEGL.so.1
    libEGL.so (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libEGL.so
$ ldconfig -p | grep -i dl.so
    liblttng-ust-dl.so.0 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/liblttng-ust-dl.so.0
    libltdl.so.7 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libltdl.so.7
    libdl.so.2 (libc6,hard-float, OS ABI: Linux 2.6.32) => /lib/arm-linux-gnueabihf/libdl.so.2
    libdl.so (libc6,hard-float, OS ABI: Linux 2.6.32) => /usr/lib/arm-linux-gnueabihf/libdl.so
So how should I modify the Makefile? How can I use the libdl.so, libEGL.so and libGLESv1_CM.so.1 for the compilation? Or can I use these libraries at all instead?
Old 04 March 2017, 11:34   #3
Posts: n/a
undefined references

Ok so, after some googling I figured out that make looks up libraries as lib<libname>.so. So I just had to point to the location of this in the Makefile:
Instead of "-L/opt/vc/lib" which anyway does not exist on the BQ M10 I added:
-L/usr/lib/arm-linux-gnueabihf/libhybris-egl -L/usr/lib/arm-linux-gnueabihf
and also had to create a link for libGLESv1_CM in /usr/lib/arm-linux-gnueabihf/libhybris-egl :
$ sudo ln -s libGLESv1_CM.so.1.0.1 libGLESv1_CM.so
With that the dl EGL GLESv1_CM libraries are linked but the next problem is that several functions (?) are not found in either these libraries or in the gl.h or some other header files.
src/od-gles/shader_stuff.o: In function `showlog(int)':
shader_stuff.cpp:(.text+0x52): undefined reference to `glGetShaderInfoLog'
src/od-gles/shader_stuff.o: In function `LoadShader(unsigned int, char const*)':
shader_stuff.cpp:(.text+0x1ae): undefined reference to `glCreateShader'
shader_stuff.cpp:(.text+0x1ca): undefined reference to `glShaderSource'
shader_stuff.cpp:(.text+0x1d0): undefined reference to `glCompileShader'
shader_stuff.cpp:(.text+0x1dc): undefined reference to `glGetShaderiv'
shader_stuff.cpp:(.text+0x1f4): undefined reference to `glGetShaderiv'
shader_stuff.cpp:(.text+0x20c): undefined reference to `glGetShaderInfoLog'
shader_stuff.cpp:(.text+0x232): undefined reference to `glDeleteShader'
src/od-gles/shader_stuff.o: In function `LoadProgram(char const*, char const*)':
shader_stuff.cpp:(.text+0x256): undefined reference to `glCreateShader'
shader_stuff.cpp:(.text+0x276): undefined reference to `glShaderSource'
shader_stuff.cpp:(.text+0x27c): undefined reference to `glCompileShader'
shader_stuff.cpp:(.text+0x288): undefined reference to `glGetShaderiv'
shader_stuff.cpp:(.text+0x2c8): undefined reference to `glDeleteShader'
shader_stuff.cpp:(.text+0x2d0): undefined reference to `glCreateProgram'
shader_stuff.cpp:(.text+0x2dc): undefined reference to `glAttachShader'
shader_stuff.cpp:(.text+0x2e4): undefined reference to `glAttachShader'
shader_stuff.cpp:(.text+0x2ea): undefined reference to `glLinkProgram'
shader_stuff.cpp:(.text+0x2f6): undefined reference to `glGetProgramiv'
shader_stuff.cpp:(.text+0x310): undefined reference to `glGetProgramiv'
shader_stuff.cpp:(.text+0x328): undefined reference to `glGetProgramInfoLog'
shader_stuff.cpp:(.text+0x34e): undefined reference to `glDeleteProgram'
shader_stuff.cpp:(.text+0x362): undefined reference to `glGetShaderiv'
shader_stuff.cpp:(.text+0x37a): undefined reference to `glGetShaderInfoLog'
shader_stuff.cpp:(.text+0x3a0): undefined reference to `glDeleteShader'
shader_stuff.cpp:(.text+0x3a8): undefined reference to `glDeleteShader'
shader_stuff.cpp:(.text+0x3ae): undefined reference to `glDeleteShader'
src/od-gles/shader_stuff.o: In function `shader_stuff_reload_shaders()':
shader_stuff.cpp:(.text+0x44a): undefined reference to `glCreateShader'
shader_stuff.cpp:(.text+0x488): undefined reference to `glShaderSource'
shader_stuff.cpp:(.text+0x48e): undefined reference to `glCompileShader'
shader_stuff.cpp:(.text+0x49a): undefined reference to `glGetShaderiv'
shader_stuff.cpp:(.text+0x4d6): undefined reference to `glDeleteShader'
shader_stuff.cpp:(.text+0x4de): undefined reference to `glCreateProgram'
shader_stuff.cpp:(.text+0x4ec): undefined reference to `glAttachShader'
shader_stuff.cpp:(.text+0x4f4): undefined reference to `glAttachShader'
shader_stuff.cpp:(.text+0x4fa): undefined reference to `glLinkProgram'
shader_stuff.cpp:(.text+0x506): undefined reference to `glGetProgramiv'
shader_stuff.cpp:(.text+0x51c): undefined reference to `glGetProgramiv'
shader_stuff.cpp:(.text+0x534): undefined reference to `glGetProgramInfoLog'
shader_stuff.cpp:(.text+0x55a): undefined reference to `glDeleteProgram'
shader_stuff.cpp:(.text+0x562): undefined reference to `glDeleteProgram'
shader_stuff.cpp:(.text+0x57a): undefined reference to `glGetShaderiv'
shader_stuff.cpp:(.text+0x592): undefined reference to `glGetShaderInfoLog'
shader_stuff.cpp:(.text+0x5b8): undefined reference to `glDeleteShader'
Does anybody know which libraries/header files provide these?
Or is there anybody reading this at all... anyway any help would be welcome.
Old 05 March 2017, 23:29   #4
Posts: n/a
some progress

Ok, so I've made some progress, found out that on the Pi in /opt/vc/lib libGLESv1_CM.so is linked to libGLESv2.so

On the bq m10 ubuntu touch I installed the libgles1 and 2 packages:
sudo apt install libgles1-mesa libgles1-mesa-dev
sudo apt install libgles2-mesa libgles2-mesa-dev
Then in the makefile I added -lGLESv2:
LDFLAGS +=  -ldl -lEGL -lGLESv1_CM -lGLESv2
Then it compiled, so I will test whether this exe will work.

What is pandora and picasso96?

Last edited by lazlow; 06 March 2017 at 00:11.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Uae4arm (arm jit) lubomyr support.OtherUAE 544 22 December 2019 18:55
RaspberryPI uae4arm Chips support.OtherUAE 91 24 December 2016 12:17
How to run Grafx2 under Uae4Arm? lovinggames support.OtherUAE 5 23 August 2016 00:02
PocketCHIP and UAE4ARM ali-b support.OtherUAE 0 12 August 2016 11:22
UAE4ARM, actually for ARM? Enverex support.OtherUAE 3 08 June 2016 12:58

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 18:41.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Page generated in 0.11683 seconds with 13 queries