hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy)

  Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
rafaelSorel Offline
Junior Member
Posts: 2
Joined: Jan 2017
Reputation: 0
Post: #151
Hello,

Is it possible de launch this command line :
Code:
mpv --vo=vdpau --hwdec=vdpau --hwdec-codecs=all [filename]
without X server being installed or running ? meaning from fb console ?

Thanks,
find quote
rafaelSorel Offline
Junior Member
Posts: 2
Joined: Jan 2017
Reputation: 0
Post: #152
(2017-01-30 23:51)rafaelSorel Wrote:  Hello,

Is it possible de launch this command line :
Code:
mpv --vo=vdpau --hwdec=vdpau --hwdec-codecs=all [filename]
without X server being installed or running ? meaning from fb console ?

Thanks,

I mean is it possible to run hardware acceleration on framebuffer console system using mali gpu driver without any X11 system installed.
find quote
copytco Offline
Junior Member
Posts: 2
Joined: Feb 2017
Reputation: 0
Post: #153
I went briefly though the topic, but I cannot find information on how to get .patch files upon the links provided to the commits on git. Can someone, please, share instruction on that?
find quote
usegui Offline
Junior Member
Posts: 1
Joined: Feb 2017
Reputation: 0
Post: #154
Hello,

I can not find the source for kodi:
https://github.com/mosterta/xbmc/tree/he...es_support
or here
https://github.com/tnmeyer/xbmc
Could anyone say me where I can find the patched sources?
Thanks
find quote
Invictaz Offline
Junior Member
Posts: 10
Joined: Mar 2014
Reputation: 0
Post: #155
(2016-04-28 13:17)tom81 Wrote:  
(2016-04-28 10:35)bbscool Wrote:  PS: I believe symbol does exist in libEGL_Mali.so
Quote:2 [email protected] /opt/xbmc (git)-[Jarvis_vdpau_gles] # readelf -s //usr/lib/libEGL_Mali.so | grep eglTerminate Sad
170: 000092a7 52 FUNC GLOBAL DEFAULT 11 eglTerminate
898: 000092a7 52 FUNC GLOBAL DEFAULT 11 eglTerminate

Don't use Android binaries, use the proper armhf libs from https://github.com/linux-sunxi/sunxi-mal...r3p0/armhf

Very impressive Tom81 your build. I would like to try it but unfortunately the Dropbox link is offline.
Can you re-upload it?
find quote
dalas1 Offline
Junior Member
Posts: 2
Joined: Jun 2016
Reputation: 0
Post: #156
(2016-03-20 00:55)tom81 Wrote:  Hi all,

I have prepared a first OpenELEC test build based on vdpau_sunxi and mosterta's patches. You can find it here: https://www.dropbox.com/s/rv9kdo7trwn980...mg.gz?dl=0

---> PLEASE READ BEFORE USE <---
This is all *very* pre-alpha and unfinished stuff. Be prepared for bugs and crashes. Do not expect to get a fully working OpenELEC image for sunxi devices here. It should only be used for testing purposes!
This image is for Cubietruck *only*!
Not for BananaPi!
Also not for OrangePi!
I do no own any other devices than a Cubietruck, so I will not provide support for other sunxi-based boards. Please do not ask for it. Thank you.

If you want to help improving the sunxi support in kodi, please test video playback with some of your files and report back if something strange happens. It would be helpful if you could provide the unshortened kodi.log file with debug logging enabled (found under /storage/.kodi/temp/kodi.log). Samples of video files where playback is broken are also welcome.

How to use the image:

- Download the file and decompress it.
- Write the unpacked file OpenELEC-A20.Cubietruck.arm-6.0.3-A20.img to a blank micro sd card of at least 4GB size
- Insert it into the cubietruck, connect a keyboard and power up the system.
- Startup can take some time, OpenELEC will first resize the file systems on the sd card and reboot one more time.
- If everything works, you should get the main kodi screen
- *Important*: For accelerated video playback, go to Settings->Video, select user level expert, go to acceleration and disable the VDPAU video mixer (kodi will crash if you don't)
- Configure OpenELEC/Kodi to your needs, Wifi and Ethernet should work, you may need to select the correct audio output for your environment.

Bugs and limitations:

- Screen resolution is currently hardcoded to 1280x720p60. If you know how to deal with u-boot boot.scr you can change it if you like.
- Some MPEG4 video files are broken. It depends on how the file was encoded and is probably a hardware limitation (not sure...)
- WMV3/VC-1 is unsupported
- H.265 is unsupported (hardware limitation)
- Seeking/skipping in videos is only semi-working, you will get a green screen and some delay, before playback continues
- Deinterlacing is broken, it has to be disabled

The OpenELEC build tree will be published when I have cleaned it up a bit.
I checked the image before uploading it, I hope that I didn't mess anything up...

Have fun
tom

I reupload the image. Suddenly someone will need
https://yadi.sk/d/2pshHXM53GGFaP
(This post was last modified: 2017-03-23 07:18 by dalas1.)
find quote
Invictaz Offline
Junior Member
Posts: 10
Joined: Mar 2014
Reputation: 0
Post: #157
(2017-03-23 07:17)dalas1 Wrote:  
(2016-03-20 00:55)tom81 Wrote:  Hi all,

I have prepared a first OpenELEC test build based on vdpau_sunxi and mosterta's patches. You can find it here: https://www.dropbox.com/s/rv9kdo7trwn980...mg.gz?dl=0

---> PLEASE READ BEFORE USE <---
This is all *very* pre-alpha and unfinished stuff. Be prepared for bugs and crashes. Do not expect to get a fully working OpenELEC image for sunxi devices here. It should only be used for testing purposes!
This image is for Cubietruck *only*!
Not for BananaPi!
Also not for OrangePi!
I do no own any other devices than a Cubietruck, so I will not provide support for other sunxi-based boards. Please do not ask for it. Thank you.

If you want to help improving the sunxi support in kodi, please test video playback with some of your files and report back if something strange happens. It would be helpful if you could provide the unshortened kodi.log file with debug logging enabled (found under /storage/.kodi/temp/kodi.log). Samples of video files where playback is broken are also welcome.

How to use the image:

- Download the file and decompress it.
- Write the unpacked file OpenELEC-A20.Cubietruck.arm-6.0.3-A20.img to a blank micro sd card of at least 4GB size
- Insert it into the cubietruck, connect a keyboard and power up the system.
- Startup can take some time, OpenELEC will first resize the file systems on the sd card and reboot one more time.
- If everything works, you should get the main kodi screen
- *Important*: For accelerated video playback, go to Settings->Video, select user level expert, go to acceleration and disable the VDPAU video mixer (kodi will crash if you don't)
- Configure OpenELEC/Kodi to your needs, Wifi and Ethernet should work, you may need to select the correct audio output for your environment.

Bugs and limitations:

- Screen resolution is currently hardcoded to 1280x720p60. If you know how to deal with u-boot boot.scr you can change it if you like.
- Some MPEG4 video files are broken. It depends on how the file was encoded and is probably a hardware limitation (not sure...)
- WMV3/VC-1 is unsupported
- H.265 is unsupported (hardware limitation)
- Seeking/skipping in videos is only semi-working, you will get a green screen and some delay, before playback continues
- Deinterlacing is broken, it has to be disabled

The OpenELEC build tree will be published when I have cleaned it up a bit.
I checked the image before uploading it, I hope that I didn't mess anything up...

Have fun
tom

I reupload the image. Suddenly someone will need
https://yadi.sk/d/2pshHXM53GGFaP

Thanks a lot. How to prepare such an image for Allwinner A10? Or does the A20 also run on A10?
find quote
Invictaz Offline
Junior Member
Posts: 10
Joined: Mar 2014
Reputation: 0
Post: #158
(2017-01-29 21:47)mosterta Wrote:  check that you have the correct (i.e. framebuffer based opengl library in you LD Libarary path)

Maybe interesting for you is the work Florent Revest did on Cedrus (open source Allwinner CedarX) last summer

https://github.com/FlorentRevest/linux-sunxi-cedrus
find quote
matrzh Offline
Junior Member
Posts: 10
Joined: Apr 2017
Reputation: 0
Post: #159
Hi,
Thanks mosterta and tom81 for the great work. I gave up last year some time with kodi on my cubietruck, but figured I would give it another shot when I saw this discussion.
Maybe someone is still monitoring this and can give me some pointers. I think my library paths are somewhat different is the reason that some things aren't working.

I am at the following point:
a) updated the ump kernel patch and modprobe -v ump works and the module is listed with lsmod
b) libump: successfully configured and compiled from tom81 github, branch mosterta/master with the following patch:
Code:
--- a/src/ump.h.in
+++ b/src/ump.h.in
@@ -182,6 +182,7 @@ UMP_API_EXPORT void ump_read(void * dst, ump_handle src, unsigned long offset, u
  */
UMP_API_EXPORT void ump_write(ump_handle dst, unsigned long offset, const void * src, unsigned long length);

+UMP_API_EXPORT void* ump_phys_address_get(ump_handle memh);

/**
installed at /usr/local:
Code:
>nm /usr/local/lib/libUMP.so | grep ump_phys
00002580 T ump_phys_address_get
headers ump.h, ump_platform.h and ump_ref_drv.h are in /usr/local/include/ump/

c) libvdpau
.configured and compiled with ./configure --disable-dri2 and make install tells me the following
Code:
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib/vdpau

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

d) my /etc/environment looks as follows:
Code:
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/vdpau
LD_RUN_PATH=/usr/local/lib:/usr/local/lib/vdpau
LIBRARY_PATH=/usr/local/lib
VDPAU_DRIVER=sunxi
A10HWR=1

e) libvdpau-sunxi
from tom81's gibhub branch master
following patches applied:
Code:
--- a/ve.c
+++ b/ve.c
@@ -22,6 +22,7 @@
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/mman.h>

--- a/presentation_queue.c
+++ b/presentation_queue.c
@@ -22,6 +22,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
+#include <stdio.h>
#include <sys/ioctl.h>
#include "sunxi_disp_ioctl.h"
#include "ve.h"

--- a/Makefile
+++ b/Makefile
@@ -8,12 +8,12 @@ CEDARV_SRC = ve.c veisp.c
NV_TARGET = libvdpau_nv_sunxi.so.1
NV_SRC = opengl_nv.c

-CFLAGS ?= -Wall -O0 -g
+CFLAGS ?= -Wall -Wl,-rpath -O0 -g
LDFLAGS =
LIBS = -lrt -lm -lpthread
LIBS_EGL = -lEGL
LIBS_GLES2 = -lGLESv2
-LIBS_VDPAU_SUNXI = -L /usr/lib/vdpau -lvdpau_sunxi
+LIBS_VDPAU_SUNXI = -L $(PWD) -lvdpau_sunxi
LIBS_CEDARV = -L $(PWD) -lcedar_access
CC = gcc

@@ -45,9 +45,9 @@ NV_DEP = $(addsuffix .d,$(basename $(NV_SRC)))
MODULEDIR = $(shell pkg-config --variable=moduledir vdpau)

ifeq ($(MODULEDIR),)
-MODULEDIR=/usr/lib/vdpau
+MODULEDIR=/usr/local/lib/vdpau
endif
-USRLIB = /usr/lib
+USRLIB = /usr/local/lib

.PHONY: clean all install
compiles and
Code:
ldd -r libcedar_access.so
has no errors and points to the right libUMP.so.3

f) cedarjpg
checked out master branch of tom81
compiles without modifications.
ldd -r libcedarJpeg.so has no error, points to the right libUMP, however libEGL is at /usr/lib/libEGL.so, sunxi-mail configured with r3p0 and framebuffer versions

However the test fails.

Code:
>./jpeg-test Example.jpg
could not allocate ump buffer!

(I am still working "headless" via ssh before I plug it into my TV, maybe this is the reason, but as far as I understand it should generate a file and not rely on a display)

g) configure kodi
The configure goes through (although I had to manually configure and compile ffmpeg, before it could be included), but I cannot get it to configure libcedarjpeg and some other things are weird:

Code:
$ ./configure --config-cache --prefix=/usr/local --disable-x11 --disable-sdl --disable-xrandr --disable-joystick --disable-gl --enable-vdpau --disable-vaapi --disable-openmax --enable-neon --enable-gles --disable-mysql --disable-airplay --disable-airtunes --enable-debug --disable-optimizations --with-ffmpeg=force --with-platform=allwinner-mali

## --------- ##
## Platform. ##
## --------- ##

hostname = cubie2
uname -m = armv7l
uname -r = 3.4.111-cbtrk+
uname -s = Linux
uname -v = #20 SMP PREEMPT Sun Apr 9 13:52:36 CEST 2017

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
...
configure:29128: checking for sys/capability.h
configure:29128: result: no     <------
configure:29138: == Could not find libcap. Capabilities detection support disabled. ==
configure:29199: checking for cedarJpegLib.h
configure:29199: result: no   <------
configure:29209: == Could not find libcedarJpeg. Will fall back to libjpeg. ==
...
and the output is:
Code:
------------------------
  Kodi Configuration:
------------------------
  Kodi Version:    16.1-RC2
  git Rev.:    20160319-7de69d4
  Debugging:    Yes
  Profiling:    No
  Optimization:    No
  SWIG Available:    Yes
  JRE Available:    Yes
  Doxygen Available:    No
  Crosscomp.:    No
  target ARCH:    arm
  target CPU:    
  OpenGLES:    Yes
  ALSA:        Yes
  DBUS:        Yes
  VDPAU:    Yes
  VAAPI:    No
  VTBDecoder:    No
  OpenMax:    No
  Joystick:    No
  Touch skin:    No
  X11:        No
  Wayland:    No
  Bluray:    No
  TexturePacker:Yes
  MID Support:    No
  ccache:    No
  ALSA Support:    Yes
  PulseAudio:    No
  DVDCSS:    Yes
  Google Test Framework Configured:    Yes
  Google Breakpad Configured:    No
  Avahi:    Yes
  mDNSEmbedded:    No
  Non-free:    Yes
  ASAP Codec:    No
  MySQL:    No
  Webserver:    Yes
  libssh support:    Yes
  libRTMP support:    Yes
  libsmbclient support:    Yes
  libnfs client support:Yes
  libgif support:    Yes
  AirPLay support:    No
  AirTunes support:    No
  UPnP support:        Yes
  Optical drive:    Yes
  libudev support:    Yes
  libusb support:    No
  libcec support:    No
  libcap support:    No              <------
  libcedarJpeg support:    No      <------
  additional players:    No
  additional codecs:    No
  prefix:    /usr/local
However, I have
Code:
/usr/local/include/cedarJpegLib.h
and
Code:
/usr/include/sys/capability.h
Why is this not found?
(btw, cedarjpg is in /usr/local/lib/libcedarJpeg.so, I tried to copy it to /usr/lib and the include to /usr/include, but it did not make a difference)

Anyway, this and the fact that I get a runtime error when trying to test the libcedarjpg, I seriously believe something is still wrong
find quote
mosterta Offline
Junior Member
Posts: 28
Joined: Dec 2015
Reputation: 1
Post: #160
(2017-04-14 16:50)matrzh Wrote:  Hi,
Thanks mosterta and tom81 for the great work. I gave up last year some time with kodi on my cubietruck, but figured I would give it another shot when I saw this discussion.
Maybe someone is still monitoring this and can give me some pointers. I think my library paths are somewhat different is the reason that some things aren't working.

I am at the following point:
a) updated the ump kernel patch and modprobe -v ump works and the module is listed with lsmod
b) libump: successfully configured and compiled from tom81 github, branch mosterta/master with the following patch:
Code:
--- a/src/ump.h.in
+++ b/src/ump.h.in
@@ -182,6 +182,7 @@ UMP_API_EXPORT void ump_read(void * dst, ump_handle src, unsigned long offset, u
  */
UMP_API_EXPORT void ump_write(ump_handle dst, unsigned long offset, const void * src, unsigned long length);

+UMP_API_EXPORT void* ump_phys_address_get(ump_handle memh);

/**
installed at /usr/local:
Code:
>nm /usr/local/lib/libUMP.so | grep ump_phys
00002580 T ump_phys_address_get
headers ump.h, ump_platform.h and ump_ref_drv.h are in /usr/local/include/ump/

c) libvdpau
.configured and compiled with ./configure --disable-dri2 and make install tells me the following
Code:
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib/vdpau

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

d) my /etc/environment looks as follows:
Code:
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/vdpau
LD_RUN_PATH=/usr/local/lib:/usr/local/lib/vdpau
LIBRARY_PATH=/usr/local/lib
VDPAU_DRIVER=sunxi
A10HWR=1

e) libvdpau-sunxi
from tom81's gibhub branch master
following patches applied:
Code:
--- a/ve.c
+++ b/ve.c
@@ -22,6 +22,7 @@
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/mman.h>

--- a/presentation_queue.c
+++ b/presentation_queue.c
@@ -22,6 +22,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
+#include <stdio.h>
#include <sys/ioctl.h>
#include "sunxi_disp_ioctl.h"
#include "ve.h"

--- a/Makefile
+++ b/Makefile
@@ -8,12 +8,12 @@ CEDARV_SRC = ve.c veisp.c
NV_TARGET = libvdpau_nv_sunxi.so.1
NV_SRC = opengl_nv.c

-CFLAGS ?= -Wall -O0 -g
+CFLAGS ?= -Wall -Wl,-rpath -O0 -g
LDFLAGS =
LIBS = -lrt -lm -lpthread
LIBS_EGL = -lEGL
LIBS_GLES2 = -lGLESv2
-LIBS_VDPAU_SUNXI = -L /usr/lib/vdpau -lvdpau_sunxi
+LIBS_VDPAU_SUNXI = -L $(PWD) -lvdpau_sunxi
LIBS_CEDARV = -L $(PWD) -lcedar_access
CC = gcc

@@ -45,9 +45,9 @@ NV_DEP = $(addsuffix .d,$(basename $(NV_SRC)))
MODULEDIR = $(shell pkg-config --variable=moduledir vdpau)

ifeq ($(MODULEDIR),)
-MODULEDIR=/usr/lib/vdpau
+MODULEDIR=/usr/local/lib/vdpau
endif
-USRLIB = /usr/lib
+USRLIB = /usr/local/lib

.PHONY: clean all install
compiles and
Code:
ldd -r libcedar_access.so
has no errors and points to the right libUMP.so.3

f) cedarjpg
checked out master branch of tom81
compiles without modifications.
ldd -r libcedarJpeg.so has no error, points to the right libUMP, however libEGL is at /usr/lib/libEGL.so, sunxi-mail configured with r3p0 and framebuffer versions

However the test fails.

Code:
>./jpeg-test Example.jpg
could not allocate ump buffer!

(I am still working "headless" via ssh before I plug it into my TV, maybe this is the reason, but as far as I understand it should generate a file and not rely on a display)

g) configure kodi
The configure goes through (although I had to manually configure and compile ffmpeg, before it could be included), but I cannot get it to configure libcedarjpeg and some other things are weird:

Code:
$ ./configure --config-cache --prefix=/usr/local --disable-x11 --disable-sdl --disable-xrandr --disable-joystick --disable-gl --enable-vdpau --disable-vaapi --disable-openmax --enable-neon --enable-gles --disable-mysql --disable-airplay --disable-airtunes --enable-debug --disable-optimizations --with-ffmpeg=force --with-platform=allwinner-mali

## --------- ##
## Platform. ##
## --------- ##

hostname = cubie2
uname -m = armv7l
uname -r = 3.4.111-cbtrk+
uname -s = Linux
uname -v = #20 SMP PREEMPT Sun Apr 9 13:52:36 CEST 2017

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
...
configure:29128: checking for sys/capability.h
configure:29128: result: no     <------
configure:29138: == Could not find libcap. Capabilities detection support disabled. ==
configure:29199: checking for cedarJpegLib.h
configure:29199: result: no   <------
configure:29209: == Could not find libcedarJpeg. Will fall back to libjpeg. ==
...
and the output is:
Code:
------------------------
  Kodi Configuration:
------------------------
  Kodi Version:    16.1-RC2
  git Rev.:    20160319-7de69d4
  Debugging:    Yes
  Profiling:    No
  Optimization:    No
  SWIG Available:    Yes
  JRE Available:    Yes
  Doxygen Available:    No
  Crosscomp.:    No
  target ARCH:    arm
  target CPU:    
  OpenGLES:    Yes
  ALSA:        Yes
  DBUS:        Yes
  VDPAU:    Yes
  VAAPI:    No
  VTBDecoder:    No
  OpenMax:    No
  Joystick:    No
  Touch skin:    No
  X11:        No
  Wayland:    No
  Bluray:    No
  TexturePacker:Yes
  MID Support:    No
  ccache:    No
  ALSA Support:    Yes
  PulseAudio:    No
  DVDCSS:    Yes
  Google Test Framework Configured:    Yes
  Google Breakpad Configured:    No
  Avahi:    Yes
  mDNSEmbedded:    No
  Non-free:    Yes
  ASAP Codec:    No
  MySQL:    No
  Webserver:    Yes
  libssh support:    Yes
  libRTMP support:    Yes
  libsmbclient support:    Yes
  libnfs client support:Yes
  libgif support:    Yes
  AirPLay support:    No
  AirTunes support:    No
  UPnP support:        Yes
  Optical drive:    Yes
  libudev support:    Yes
  libusb support:    No
  libcec support:    No
  libcap support:    No              <------
  libcedarJpeg support:    No      <------
  additional players:    No
  additional codecs:    No
  prefix:    /usr/local
However, I have
Code:
/usr/local/include/cedarJpegLib.h
and
Code:
/usr/include/sys/capability.h
Why is this not found?
(btw, cedarjpg is in /usr/local/lib/libcedarJpeg.so, I tried to copy it to /usr/lib and the include to /usr/include, but it did not make a difference)

Anyway, this and the fact that I get a runtime error when trying to test the libcedarjpg, I seriously believe something is still wrong

Hi matrzh,
Can you check the kernel .config file for the following variables:
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=128
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7

especially CONFIG_CMA_SIZE_MBYTES should be at least 128 MBYTE.
find quote
matrzh Offline
Junior Member
Posts: 10
Joined: Apr 2017
Reputation: 0
Post: #161
Hi mosterta,

that part looks as follows:
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=192
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
CONFIG_CONNECTOR=y

--edit--
I decided to "make" and see what happens. Running right now, not looking too bad.
I still had to copy the alternative EGL files from https://github.com/codesnake/aml-mali/tr...clude/EGL, though (make broke without it)
(This post was last modified: 2017-04-15 00:15 by matrzh.)
find quote
matrzh Offline
Junior Member
Posts: 10
Joined: Apr 2017
Reputation: 0
Post: #162
BTW, should I see any hint of the enlarged CMA memory in the proc/iomem?

I get
Code:
~/kodi/libcedarjpeg# cat /proc/iomem | grep 'disp\|Mali'
01c0a000-01c0afff : disp
01c0c000-01c0cfff : disp
01c0d000-01c0dfff : disp
01c1b000-01c1bfff : disp
01c40000-01c40097 : Mali-400 GP
01c41000-01c4102f : Mali-400 L2 cache
01c42000-01c4200f : Mali-400 PMU
01c43000-01c43023 : Mali-400 MMU for GP
01c44000-01c44023 : Mali-400 MMU for PP0
01c45000-01c45023 : Mali-400 MMU for PP1
01c48000-01c490ef : Mali-400 PP0
01c4a000-01c4b0ef : Mali-400 PP1
01e00000-01e0077f : disp
01e20000-01e2077f : disp
01e40000-01e457ff : disp
01e60000-01e657ff : disp
However, there is no hint um reserved memory for UMP or CMA, there.
find quote
mosterta Offline
Junior Member
Posts: 28
Joined: Dec 2015
Reputation: 1
Post: #163
I don't use IOMEM for the memory buffers, so I can tell you. But you can check via sysfs file
cat /sys/module/ump/parameters/ump_memory_size
which tells you the size in bytes.

did the code compile successful now?
find quote
matrzh Offline
Junior Member
Posts: 10
Joined: Apr 2017
Reputation: 0
Post: #164
Hi Mosterta, just in time.

Output of cat /sys/module/ump/parameters/ump_memory_size
134217728

Compile goes through except for linking.
I get:
LD kodi.bin
/usr/bin/ld: cannot find -lxcb-xfixes
/usr/bin/ld: cannot find -lxcb-render
/usr/bin/ld: cannot find -lxcb-shape

...
libxcb-xfixes.so... etc are in /usr/lib/arm-linux-gnueabihf/

That is normally in the ld-search-path, but I did make a symbolic link to the so.0 files in /usr/local/lib, just in case
However, the last step still breaks at that point (same error)
Any idea?
find quote
mosterta Offline
Junior Member
Posts: 28
Joined: Dec 2015
Reputation: 1
Post: #165
do you cross compile? when it is in the LD search path then it should be found, except when the architecture of the files does not fit, i.e. if you cross compile and it finds e.g. x86 libraries.
Other option is: it seems like you compile on/use (x)ubuntu. Check that you don't mix armel with armhf libraries. That won't work either.
find quote
Post Reply