Kodi Community Forum
[LINUX] XBMC for Linux port to ARM architecture CPU and SoC chips? - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Discussions (https://forum.kodi.tv/forumdisplay.php?fid=222)
+--- Forum: Feature Requests (https://forum.kodi.tv/forumdisplay.php?fid=9)
+--- Thread: [LINUX] XBMC for Linux port to ARM architecture CPU and SoC chips? (/showthread.php?tid=35139)

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


- hfkou - 2011-03-25

symlinking the python: /usr/local/share/xbmc/system/python->/usr/local/lib/xbmc/system/python, now get:
WARNING: Unable to resolve: python26-arm.so PyEval_ReleaseLock, reason: /usr/local/share/xbmc/system/python/python26-arm.so: undefined symbol: PyEval_ReleaseLock
FATAL: Python: error loading python24.dll


- davilla - 2011-03-26

you might kick back to python2.5, that's what I used when I was playing with tegra2. The main Makefile might have to be forced to python2.5.


- hfkou - 2011-03-28

tried with python2.5 and get the following messages, then xbmc is crashed and quit.

19:02:20 T:1107102512 M:833945600 DEBUG: CGUIMediaWindow::GetDirectory (plugin://plugin.image.picasa/)
19:02:20 T:1107102512 M:833945600 DEBUG: ParentPath = [addons://sources/image/]
19:02:20 T:1191846944 M:833945600 DEBUG: StartScript - calling plugin Picasa('plugin://plugin.image.picasa/','0','')
19:02:20 T:1191846944 M:833945600 INFO: initializing python engine.
19:02:20 T:1191846944 M:833945600 DEBUG: Loading: /usr/local/share/xbmc/system/python/python25-arm.so
19:02:20 T:1191846944 M:833945600 DEBUG: Python wrapper library linked with system Python library

On the console where the xbmc is launched, it shows "(EE) XKB: No components provided for device Virtual core keyboard. [config/dbus] couldn't register object path"


- phusho - 2011-03-30

Ok I was off for some time. Now I resumed this project again and found some bugs in Open GLES implementation. First is in multitexturing and second is drawing fonts. Also I made asm (ARM VFP) optimization for round and truncate functions in MathUtils.h again this is VFP only.

e.g. for floor()
PHP Code:
asm volatile ("fldmiad %1, {d0} \n\t"

                "ftosid s1, d0 \n\t"
                "fstmias %0, {s1} \n\t"

                
:
                : 
"r" (&i), "r" (&x)
                : 
"r0""cc""memory""d0" ,"s1"
            
); 



- davilla - 2011-03-30

phusho Wrote:Ok I was off for some time. Now I resumed this project again and found some bugs in Open GLES implementation. First is in multitexturing and second is drawing fonts. Also I made asm (ARM VFP) optimization for round and truncate functions in MathUtils.h again this is VFP only.

e.g. for floor()
PHP Code:
asm volatile ("fldmiad %1, {d0} \n\t"

                "ftosid s1, d0 \n\t"
                "fstmias %0, {s1} \n\t"

                
:
                : 
"r" (&i), "r" (&x)
                : 
"r0""cc""memory""d0" ,"s1"
            
); 

If you have patches, we would love to get them into trunk. Remember that we need to watch out for tegra2 as it's armv7 is non-standards, ie. no neon and vfp is vfpv3-d16.


- Cofi - 2011-03-30

I received my pandaboard last week and have been playing around with it a little and tested the basic functionality etc. Now I am very interested in running XBMC on it.

topfs2: How long til a alpha test version of XBMC for pandaboard is available?

If it is too far away I might download the source for the beagleboard and try to get it to work on panda.

Keep up the good work!


- topfs2 - 2011-03-30

Well I have it running, problem with the panda is mostly coupled with the fact that the SGX drivers are terrible with X atm. As such I have been waiting for the non-X drivers to appear, which they have. So next step on the panda is to move XBMC to a non-X egl gles setup, which should work but involves getting rid of SDL.

What you need to compile XBMC on the panda with ubuntu is essentially the external python patches (or just compile python 2.5 on target as it does not exist in ubuntu repo). Rest of the patches I have are merely me trying to optimize. Need to backport the beagleboard patches though as they will provide quite a significant boost with video playback.


- hfkou - 2011-04-01

Can we talk more about python2.5 on tg2 (or any ARM)?

1. Is it the python2.5 comes with ubuntu 9.04 or the one from http://www.python.org/getit/releases ?

2. “--enable-external-python” is required for configure, then “make”, then do we still need the following 2 commands before “sudo make isntall”:
make -C lib/addons/script.module.pil
make -C lib/addons/script.module.pysqlite

I have the python 2.5 from ubuntu, and also download the source from http://www.python.org/getit/releases. after "make", the above two "make -C ..." fails, link the pythin inside xbmc to the python source untar location, then "make -C... " pass and xbmc get installed. But when try to access addon, it either no response or crash.

If anyone have already pass this point and make addon(using python) working on any ARM system, could you please give some directions?


- davilla - 2011-04-01

hfkou Wrote:Can we talk more about python2.5 on tg2 (or any ARM)?

1. Is it the python2.5 comes with ubuntu 9.04 or the one from http://www.python.org/getit/releases ?

2. “--enable-external-python” is required for configure, then “make”, then do we still need the following 2 commands before “sudo make isntall”:
make -C lib/addons/script.module.pil
make -C lib/addons/script.module.pysqlite

I have the python 2.5 from ubuntu, and also download the source from http://www.python.org/getit/releases. after "make", the above two "make -C ..." fails, link the pythin inside xbmc to the python source untar location, then "make -C... " pass and xbmc get installed. But when try to access addon, it either no response or crash.

If anyone have already pass this point and make addon(using python) working on any ARM system, could you please give some directions?

assuming you are building native, apt-get install python2.5 should work.
if you are cross-building, then it's much, much more tricky to cross-build a proper python2.5.


- hfkou - 2011-04-03

it is building nativly, does the following command needed before “sudo make isntall” ?
make -C lib/addons/script.module.pil
make -C lib/addons/script.module.pysqlite


Here is the whole story:

First, only keep python2.5 and python2.5-dev, remove all for python2.6, and:
./bootrap;
./configure --enable-gles --enable-tegra --enable-openmax --enable-external-python --disable-pulse;
make (top Makefile shows python2.5);
sudo make install (does the above "make -C ..." command required?)

Second, launch xbmc and try any add-on, it says that cannot find "/usr/local/share/xbmc/system/python/python25-arm.so", did a search and find the file is under "/usr/local/lib/xbmc/system/python", so follow Davilla's suggestion(2011-03-24, 15:31) to create the symlinking: /usr/local/share/xbmc/system/python->/usr/local/lib/xbmc/system/python. Then, get the following message and xbmc crash:
DEBUG: Loading: /usr/local/share/xbmc/system/python/python25-arm.so
DEBUG: Python wrapper library linked with system Python library
Illegal instruction
(EE) XKB: No components provided for device Virtual core keyboard
[config/dbus] couldn't register object path


- davilla - 2011-04-03

script.module.pil and addons/script.module.pysqlite are only needed for a few addons. They are not required for basic python operation. Forget about them for now.

You need to run xbmc under gdb to see where/why it's crashing.


- dw21 - 2011-04-04

I have manged to get XBMC compiling on my Pandaboard (not cross compiling). This involved the following steps:

0. Download the source
1. Get virtually all the packages listed in the README.linux.
2. running ./bootstrap
3. running ./configure --enable-gles
4. make
5. make install

You will have to switch to the mesa egl and gles drivers while compiling as headers are not available for the sgx drivers.

Once compiled and installed you will need to switch back to the sgx drivers before you can run xbmc

I can confirm that XBMC runs and is capable of playing bock divx avi files and dvd ISOs
The two issues that I have encountered are
1. that the mouse pointer tends to have a fair amount of lag in it
2. When playing back the DVD ISO, about 5-10 frames are dropped in rapid success about every second. This happens in quick succession afterwhich there is a period where very few frames are dropped. This affects the lip sync as well as making the playback difficult to watch. What would much better is (assuming frames must be dropped) is to drop frames continuously and not keep trying to play catchup all the time.

Although I have both the kernel and initrd on the SD card. Everything else is running on a 2TB hard-drive connected via USB to the Pandaboard. I am not sure is the USB bandwidth is the issue here (although USB is certainly faster than the SD card)

I am happy to get my hands dirty (although I do have limited time) so any pointers of where to look in the code or things to try will be appreciated. Any patches not in the mainline git repository will also be appreciated.

Thanks guys for doing a great job so far.


- phusho - 2011-04-05

Is there a way to bypass SDL for reading keyboard ?


- davilla - 2011-04-05

phusho Wrote:Is there a way to bypass SDL for reading keyboard ?

yes.

p.s, patches ?


- phusho - 2011-04-07

don't have for this so I am asking way to do it and post one Smile

P.S. I am asking for some standard way