Kodi Community Forum

Full Version: [LINUX] XBMC for Linux port to ARM architecture CPU and SoC chips?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
as suspected .. more errors ..what is Camelot-arm?
jefrey99 Wrote:as suspected .. more errors ..what is Camelot-arm?



svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/arm-camelot/trunk
hello jefrey99,

there is already a version of xbmc for arm (Cortex A8 - beagleboard).
arm-camelot is my work in progress port of the xbmc 9.11 camelot release.
It has some minor issues still, which i am working on.
Please have a look in this thread:

What board are you running it on btw? If not the beagleboard (or equivalent OMAP3x based board) which? Im interested to know if theres a better hardware out there that has the gpu drivers released.


P.S - native compilation on arm isnt as great as cross compilation, not to mention itll be a hell of a lot faster compiling on a recent pc.

I've got to load the SGX modules into the beagleboard and run the test and demos for SGX but now I'm trying running arm-camelot in the beagle and it is not possible. When I run ./xbmc.bin it give me the following :

open /dev/sequencer or /dev/snd/seq : No such file or directory
sh: /usr/lib/lsb_release: not found
sh: /usr/lib/lsb_release: not found

but the process doesn't die, it continues in a undefined bucle. My xbmc.log has following errors :
[email protected]:~/.xbmc/temp$ cat xbmc.log
18:55:56 T:1101396352 M:190095360    INFO: XRANDR: /usr/share/xbmc/xbmc-xrandr --output default --mode 0x44
18:55:57 T:1101396352 M:189956096    INFO: GLES: Maximum texture width: 2048
18:55:57 T:1101396352 M:189956096   DEBUG: SECTION:LoadDLL(special://xbmc/system/ImageLib-arm.so)
18:55:57 T:1101396352 M:189956096   DEBUG: Loading: /usr/share/xbmc/system/ImageLib-arm.so
18:55:57 T:1101396352 M:189526016   DEBUG: EGL_EXTENSIONS: EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_rey
18:55:57 T:1101396352 M:189587456  [b]NOTICE: GL_VENDOR = NULL[/b]
18:55:57 T:1101396352 M:189587456  [b]NOTICE: GL_RENDERER = NULL[/b]
18:55:57 T:1101396352 M:189587456 [b] NOTICE: GL_VERSION = NULL[/b]
18:55:57 T:1101396352 M:189587456  [b]NOTICE: GL_EXTENSIONS = NULL[/b]
18:55:57 T:1101396352 M:189587456   [b]DEBUG: GLES: Extension Support Test - GL_TEXTURE_NPOT NO[/b]
18:55:57 T:1101396352 M:189587456   DEBUG: Shader - Loading shader file guishader_frag.glsl
18:55:57 T:1101396352 M:189587456   DEBUG: Shader - Loading shader file guishader_vert.glsl
18:55:57 T:1101396352 M:189587456  [b] ERROR[/b]: GL: Error compiling vertex shader
18:55:57 T:1101396352 M:189587456   [b]ERROR[/b]: GL: Error compiling vertex shader
18:55:57 T:1101396352 M:189587456   [b]ERROR[/b]: GUI Shader - Initialise failed
18:55:57 T:1101396352 M:189587456    INFO: GLES: Maximum texture width: 2048

Thank you for your help
Hello McGeagh,

I'm glad to hear that you have paved the way!

I am using a Freescale SoC called i.MX51, it is Cortex A8 based and runs at 800Mhz (but you can over clock to 1GHz with a higher core voltage) it has a VPU (chips and media) and GPU (AMD) which can decode [email protected] and supports OpenGL/ES 2.0 (27M tri/s , 166M pix/s).

I am getting codec compile errors that looks like they stem from not being able to find files in an x86 directory. I'm not sure the CortexA8 can decode video with a SW codec and it shouldn't need to with the VPU.

Did you have this issue with the OMAP?

cd ./libswscale/ && ln -sf libswscale.so.0 libswscale.so
make[2]: Leaving directory `/home/ubuntu/drive/xbmc_on_arm/xbmc/cores/dvdplayer/Codecs/ffmpeg'
gcc -o ../../../../system/players/dvdplayer/avutil-50-arm-linux.so -shared -fPIC -rdynamic --soname,../../../../system/players/dvdplayer/avutil-50-arm-linux.so ffmpeg/libavutil/*.o \
`cat ../../DllLoader/exports/wrapper.def` ../../DllLoader/exports/wrapper.o
gcc -o ../../../../system/players/dvdplayer/avcodec-52-arm-linux.so -shared -fPIC -rdynamic --soname,../../../../system/players/dvdplayer/avcodec-52-arm-linux.so ffmpeg/libavcodec/*.o \
ffmpeg/libavcodec/x86/*.o `cat ../../DllLoader/exports/wrapper.def` ../../DllLoader/exports/wrapper.o
gcc: ffmpeg/libavcodec/x86/*.o: No such file or directory
make[1]: *** [../../../../system/players/dvdplayer/avcodec-52-arm-linux.so] Error 1
make[1]: Leaving directory `/home/ubuntu/drive/xbmc_on_arm/xbmc/cores/dvdplayer/Codecs'
make: *** [dvdpcodecs] Error 2
[email protected]:~/drive/xbmc_on_arm$

it does take much longer to compile on the ARM but overall I see less headache then with scratchbox or some other tools.
Oh and yes all of the VPU / GPU drivers are released
I am familiar with the SoC but didnt realise the GPU SDK was released. Interesting...

Anyways, yes I have come across that error before.
In the makefile, it sets the dir to look in the x86 dir, change that to look at the equivalent arm dir that exists in ffmpeg already. Note that libswscale does not have this equivalent dir for arm. For that lib, just omit those files as it can do without them.

Hope that helps.
Please check the arm-camelot branch for how I do it if you are stuck.

Hmm, and you say the sgx demos run fine?
That log is telling me that it cant pick up the sgx drivers. GL vendor/renderer/version/extensions should not be blank. they arent blank for me and mines a beagleboard too.
What version of the SGX SDK are you testing with? What revision beagleboard are you working with?
Ive only tested with version, 6, 8 and 9... with 9 being the one im currently working on.
I briefly tested the later but failed to get it working (hung on SDL Poll Event), but i didnt get those issues in my xbmc.log.
Hi Mcgeagh,

I'm using the version of the SGX SDK and the test and demos run perfectly. My beagleboard is the revision C4.

The reason to install the version of the SGX SDK was that I 'm using the distro Angstrom whit an uImage for kernel 2.6.32. By the other hand from the angstrom distibution packages you only can download the later version of the libomap3 and for that I', using the version

I don't use OpenEmbedded and for that I don't create packages ipk of SDK_3.00.00.09.bin. Do you Know any way to generate packages ipk without using OpenEmbedded? I had several problems trying to use it.

But I'm very interested in use the later because this version is appropriate for my kernel 2.6.32.

Other thing, When you tested the version, what was your xbmc.log? what GL vendor/renderer/version/extensions did you obtain? In theory, GL vendor/renderer/version/extensions are asigned by glew.h.

Thanks for your free time
there is no glew in OpenGL ES btw.

Im running on a C3 board, and using Ubuntu, not Angstrom. Perhaps thats a possibility why my first attempt at didnt work... ill look into it later. (Im also using kernel version 2.6.29)
As for my log:
16:55:00 T:1106673984 M:177528832  NOTICE: GL_VENDOR = Imagination Technologies
16:55:00 T:1106673984 M:177528832  NOTICE: GL_RENDERER = PowerVR SGX 530
16:55:00 T:1106673984 M:177528832  NOTICE: GL_VERSION = OpenGL ES 2.0
16:55:00 T:1106673984 M:177528832  NOTICE: GL_EXTENSIONS = GL_OES_rgb8_rgba8 GL_OES_depth24 GL_OES_vertex_half_float GL_OES_texture_float GL_OES_texture_half_float GL_OES_element_index_uint GL_OES_mapbuffer GL_OES_fragment_precision_high GL_OES_compressed_ETC1_RGB8_texture GL_OES_EGL_image GL_OES_required_internalformat GL_OES_depth_texture GL_OES_get_program_binary GL_OES_standard_derivatives GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_IMG_shader_binary GL_IMG_texture_compression_pvrtc GL_IMG_texture_stream2 GL_IMG_texture_npot GL_IMG_texture_format_BGRA8888 GL_IMG_read_format GL_IMG_program_binary
Which is the same as I get on all the other versions of the SDK ive tested with (Atleast on Ubuntu - cant say about Angstrom).
As im not using angstrom, i dont need to generate ipk files, so therefore dont know of alternatives to OE.
Hi, what do you mean when you tell: there is no glew in OpenGL ES ? Do you refer to that instead of it uses glew.h uses gl2.h?

When I print GL vendor/renderer/version/extensions in RenderSystemGLES.cpp they are the same that gl2.h file ascribes but when it runs the function of gl2.h glGetString( GL vendor/renderer/version/extensions) it fails. I will try to investigate why.

glew is the GL extension wrangler... for OpenGL
There is no glew equivalent for OpenGL ES.
You shouldnt be using glew.h anywhere.
Regardless of this, glGetString is a standard GL ES call, not glew, so talking about getting the vendor/version/etc has nothing to do with glew.

I am unsure why your glGetString calls fails, as mine hasnt ever failed. (By fail, i assume you mean it returns a blank string)
I refer to gl2extimg.h because it includes gl2ext.h, gl2platform.h and gl2.h (I may change this as gl2extimg.h is specific to the GPU)

It still seems to be pointing to an issue with the driver, and not xbmc's code.
Let me know how it goes.

Could you let me know how you install the SGX drivers on Ubuntu for BeagleBoard. I'm looking for the compiled ones, I don't want to compile them with OpenEmbedded. I suppose you need more than simply copy some archives from the SDK.

Also, I'm developing with Angstrom. In this case, I've installed the drivers with opkg. There are some pre-built ipk packages.


(for older versions, just look in the wiki revision history, or elsewhere. its been well documented).
McGeagh Wrote:http://elinux.org/BeagleBoardUbuntu#SGX_...celeration
(for older versions, just look in the wiki revision history, or elsewhere. its been well documented).

Ok, thank you, I've already seen this page, but I want not to compile the kernel and modules with these scripts:
. build_kernel.sh
. build_sgx_modules.sh

I was looking for a compiled ones.


Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48