XBMC Linux port questions and answers... - Printable Version
+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Help and Support (/forumdisplay.php?fid=33)
+--- Forum: XBMC General Help and Support (/forumdisplay.php?fid=111)
+---- Forum: Linux and Live support (/forumdisplay.php?fid=52)
+---- Thread: XBMC Linux port questions and answers... (/showthread.php?tid=26097)
XBMC Linux port questions and answers... - paperclipmonkey - 2007-05-01 16:33
In the sourceforge svn there is now a linuxport branch.
Can anyone explain if this is a full port of xbmc to linux?
- paperclipmonkey - 2007-05-01 18:09
From readme file in SVN - This is an initial port of the skinning tool to Linux. Later on it will include the remaining XBMC functionality. I have tested this to work with Ubuntu 6.06 and 6.10.
- paperclipmonkey - 2007-05-01 19:45
Can anyone give me more information on this please?
Is there a time frame for dev at all?
Is it going to be kept up to sync with Trunk often?
Any plans for cross platform, as SDL works on windows, apple and NIX?
Getting XBMC to boot on a APPLETV would be a perfect upgrade to the xbox platform, HD output, 40gb HDD by default, optical output, 802.11n wifi, could even boot from USB.
Thanks for any info.
- HarshReality - 2007-05-01 21:02
As I mentioned above if you think its going to be a full linux port of xbmc then you have a long wait. Spiff and JM hav already expressed their views on the subject.
- yuvalt - 2007-05-01 23:33
My plan is to have a fully working Linux port. Yes, it will take a while to get everything working that's why I decided to begin with the skinning tool first and then take it from there. The first milestone of compiling and linking is behind me, although don't expect it to run. Most of the guilib has been ported (including TTF, texturebundles, mouse, keyboard) but as I said there's still a lot of work until the skinning thing is complete.
We have decided to put it on a separate branch until it stabilizes and then decide whether to have it part of the main trunk or merge it occasionally, depending how many changes there will be in the code. That's why I decided not to change all the WIN32 api calls, but rather implement them in Linux (this is very partially done yet).
There is no time frame for that but I'm working on it with another guy and we get a lot of support from the other team members (pike, jm, spiff, etc).
The reason that I moved it to use SDL is so that we can later on port it to other platforms (APPLETV is a good example but I can also think of the PS3).
I will keep you posted occasionally on progress and if there are any Linux programmers who want to join the effort of development, please let me know.
- pike - 2007-05-02 06:41
here's the README for the linux port
(mostly posted so it's easy to find)
- skruven - 2007-05-04 20:03
I hope you fix so we can stream RAR archives in the linux port
- Livin - 2007-05-05 20:02
I wish you the best on this... you would allow XBMC to go to the next level!
I know you have tons of community support!
Linux port screenshot - yuvalt - 2007-05-07 00:27
Just a quick update on the port...we are working hard to make the UI usable on Linux. Thought I would share a screenshot with you guys. Still lot of work.. I'll keep you posted.
- swmike - 2007-05-07 13:23
skruven Wrote:I hope you fix so we can stream RAR archives in the linux port
Under linux it's easy to make a wrapper using "rarfs" to get this working. I use this with Freevo to make mplayer play media files within rar archives.
It means you have to play using some filesystem mount, so no ccxstream or alike.
- nate12o6 - 2007-05-07 15:43
Wow - deeceefar2 - 2007-05-08 06:30
I never thought this day would come; keep up the good work everyone. I'm really in awe this is actually happening. I'll be happy to help beta test if you need.
- t029248 - 2007-05-08 18:03
deeceefar2 Wrote:I never thought this day would come; keep up the good work everyone. I'm really in awe this is actually happening. I'll be happy to help beta test if you need.
I agree, when it's available for testing i will we happy to do so, including providing feedback... I hope it stays easy to config, Media Portal Config is nerve wrecking.
Linux port questions... - Gamester17 - 2007-05-09 15:30
These questions goes out to Yuvalt however if anyone else care to fill me in then please do:
Question-1: I read that you deviced not to change all the Win32 API calls, but rather implement them in Linux. How do you handle that? Have you implemeneted a re-usable wrapper or common library based on code from the WINE project, or? if not (yet) would that be good idea (to borrow code or library parts from the WINE project)?
Question-2: How do you handle DirectX API calls (2D/3D video, sound, input devices, etc.), have/will you implement those in Linux or SDL or change them in XBMC? Again maybe add a wrapper from selected code parts or libraries from the WINE project? There are also other open source projects with related wrappers like for example http://sourceforge.net/projects/dxglwrap/ (a DirectX to OpenGL wrapper), though the WINE project is probebely more up-to-date(?).
Question-3: Does the OpenGL renderer handle overlay for video (overlay texture like for example the menu on top of video)
Question-4: How do/will you now handle multiple output modules/renderers (auto-detect or static on build)? By the way, please keep API open for future Video Acceleration possibilities (for GPU assisted video decoding).
Question-5: How do you handle the skin texture compression format? can the same packed/compressed xpr skin-files be used under both Linux and Xbox/Win32? If not should we plan to migra to a other texture compression format that can be compatible under all operating-system and be decompressed/unpacked xpr using both DirectX and OpenGL?
Questsion-6: How do you handle the out the multiple modules (ALSA vs. OSS vs. DirectX DirectSound? auto-detect or static on build, or does SDL handle it?
Question-7: How well does the DLL loader in XBMC handle loading players such as paplayer, mplayer and the dvdplayer under Linux? Does the players (or the DLL loader) have to be modified or can they be loaded 'as is' under Linux? Maybe a common Win32 registry emulator is needed as well?
Question-8: Have you already implemened IR (infrared) remote support under Linux?, if not may I recommend Lirc and Wlirc (maybe add as a library/module to libSDL?). If possible maybe even replace the Xbox IR library (from the XDK) with a ported version of lirc/wlirc to stay consistant across platforms.
Questions-9: Have you already looked into using Valgrind for debugging under Linux? (see http://valgrind.org and http://wiki.winehq.org/Wine_and_Valgrind). It can probebely help find memeory-leak bugs, etc. indirectly for XBMC on the Xbox as well, (ie. fix them for Linux and they will be fixed on the Xbox and Win32 as well).
Question-10: Have you/we decided on any Linux porting guide-lines?, like for example:
* Code documentation (DocBook, rst, or doxygen for the code documentation steps)
* Modular design (independent modules made upp by localized/isolated code libraries without dependcies)
**XBMC should still compile and run if a module is disabled/removed
* Cross-platform / cross-compiling; aim to compile and run on at least, Xbox, Win32 (Windows XP) and Linux
* Aim for the GUI/interface to run smoothly on a low spec computer (less than 1Ghz)
* Avoid harddisk trashing (access read/write), utilize RAM memory, no harddrive paging. Aim to run on Solid-State (CompactFlash)
* Fast load and boot times for end-user perception (other thing can still run/start in the background without the user knowledge)
**15-seconds or less from when the end user press the power-button on the computer til he/she can browse the GUI
PS! Great stuff with the Linux port so far, keept it up
- yuvalt - 2007-05-09 19:50
Gamester! Great to have you back... long time no see
Regarding your questions:
1. No, we have implemented by ourself the missing functionality. I looked into the Wine source (and in fact ran the Win32 skinning tool with Wine). One thing I can say - Wine is a big mess and I couldn't actually take anything from there since the code is so complex.
2. We didn't implement DirectX, instead we ported all the GUI stuff under guilib to SDL. We are still uncertain of the performance of this and we may end up porting the code again to OpenGL (although I doubt we'll do it). Again, I looked into Wine and it was extremely complicated.
3. We didn't implement this yet. We are still discussing what's the right thing to do and how to do all the conversions efficiently.
4. As I said video rendering is not done yet. We will need to look into Xv which is the X11 extension for video output, which is accelerated to some extent for NVidia and ATI.
5. Just ported the XPR unpacking code. Nothing too much about it.
6. Currently we use SDL_mixer but this is for the GUI sound. I think SDL_mixer uses ALSA. We'll need to see if this is enough, especially for digital output.
7. Still not implemented.
8. That is my plan as well. From looking into lirc, all I can say is that is quite complicated.
9. I used it once to find a memory leak and it indeed worked. Some devs use Kdevelop, which is integrated with Valgrind.
We have not decided on any guidelines. I think we are currently experimenting. So far the GUI seems a bit slow since it's really build to be run with 3D acceleration. We will either need to disable some features or support OpenGL or both.
One of my goals is to have this run from a USB flash memory with paging disabled.