[LINUX] XBMC for Linux port to ARM architecture CPU and SoC chips?

  Thread Rating:
  • 7 Votes - 4.86 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
jefrey99 Offline
Junior Member
Posts: 7
Joined: Mar 2010
Reputation: 0
Post: #196
as suspected .. more errors ..what is Camelot-arm?
find quote
sraue Offline
Team-XBMC Developer
Posts: 900
Joined: Oct 2009
Reputation: 14
Location: Switzerland, Solothurn
Post: #197
jefrey99 Wrote:as suspected .. more errors ..what is Camelot-arm?

http://trac.xbmc.org/browser/branches/arm-camelot/trunk

or

Code:
svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/arm-camelot/trunk

greetings, Stephan

[Image: userbar-openelec-001.gif]
[Image: project_thin_badge.gif]
(This post was last modified: 2010-03-20 04:24 by sraue.)
find quote
McGeagh Offline
Team-XBMC ARM Developer
Posts: 178
Joined: Oct 2008
Reputation: 0
Location: Cambridge, UK
Post: #198
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:
http://forum.xbmc.org/showthread.php?tid=35139

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.

Thanks.


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.

¤ [McGeagh] ¤
find quote
djhalmy Offline
Junior Member
Posts: 14
Joined: Feb 2010
Reputation: 0
Post: #199
Hi,

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 :
Code:
Jaime-gti@beagleboard:~/.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
special://xbmc/skin/Confluence/720p
                                                    ...

Thank you for your help
(This post was last modified: 2010-03-24 12:20 by djhalmy.)
find quote
jefrey99 Offline
Junior Member
Posts: 7
Joined: Mar 2010
Reputation: 0
Post: #200
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 720p@30fps 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
ubuntu@ubuntu-desktop:~/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.
find quote
jefrey99 Offline
Junior Member
Posts: 7
Joined: Mar 2010
Reputation: 0
Post: #201
Oh and yes all of the VPU / GPU drivers are released
find quote
McGeagh Offline
Team-XBMC ARM Developer
Posts: 178
Joined: Oct 2008
Reputation: 0
Location: Cambridge, UK
Post: #202
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.

Thanks.

¤ [McGeagh] ¤
find quote
McGeagh Offline
Team-XBMC ARM Developer
Posts: 178
Joined: Oct 2008
Reputation: 0
Location: Cambridge, UK
Post: #203
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 3.00.00.05, 6, 8 and 9... with 9 being the one im currently working on.
I briefly tested the later 3.01.00.02 but failed to get it working (hung on SDL Poll Event), but i didnt get those issues in my xbmc.log.

¤ [McGeagh] ¤
find quote
djhalmy Offline
Junior Member
Posts: 14
Joined: Feb 2010
Reputation: 0
Post: #204
Hi Mcgeagh,

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

The reason to install the version 3.01.00.02 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 3.01.00.02.

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 3.01.00.02 because this version is appropriate for my kernel 2.6.32.

Other thing, When you tested the version 3.01.00.02, 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
(This post was last modified: 2010-03-24 14:29 by djhalmy.)
find quote
McGeagh Offline
Team-XBMC ARM Developer
Posts: 178
Joined: Oct 2008
Reputation: 0
Location: Cambridge, UK
Post: #205
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 3.01.00.02 didnt work... ill look into it later. (Im also using kernel version 2.6.29)
As for my log:
Code:
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.

¤ [McGeagh] ¤
find quote
djhalmy Offline
Junior Member
Posts: 14
Joined: Feb 2010
Reputation: 0
Post: #206
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.

Thanks
(This post was last modified: 2010-03-25 14:44 by djhalmy.)
find quote
McGeagh Offline
Team-XBMC ARM Developer
Posts: 178
Joined: Oct 2008
Reputation: 0
Location: Cambridge, UK
Post: #207
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.

¤ [McGeagh] ¤
find quote
vane.xbmc Offline
Member
Posts: 70
Joined: Feb 2010
Reputation: 0
Location: Spain
Post: #208
Hi,

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.

Thanks,

Vane.
find quote
McGeagh Offline
Team-XBMC ARM Developer
Posts: 178
Joined: Oct 2008
Reputation: 0
Location: Cambridge, UK
Post: #209
http://elinux.org/BeagleBoardUbuntu#SGX_...celeration
(for older versions, just look in the wiki revision history, or elsewhere. its been well documented).

¤ [McGeagh] ¤
find quote
vane.xbmc Offline
Member
Posts: 70
Joined: Feb 2010
Reputation: 0
Location: Spain
Thumbs Up  Drivers for Ubuntu
Post: #210
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.

Regards,

Vane.
find quote
Post Reply