Archive:Linux FAQ: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Neeltje57
m (Added wiki toc)
>Neeltje57
mNo edit summary
Line 1: Line 1:
{{XBMC wiki toc Inline}}
{{XBMC wiki toc Inline}}
__NOTOC__
__TOC__
__NOEDITSECTION__
__NOEDITSECTION__
XBMC for specific FAQs about XBMC running under Linux, Linux computer hardware, and Linux operating-system squestions.  
XBMC for specific FAQs about XBMC running under Linux, Linux computer hardware, and Linux operating-system squestions.  


==About XBMC for Linux==
===What is XBMC for Linux?===
===What is XBMC for Linux?===
'''XBMC''' (formerly named "XBox Media Center", not to be confused with [http://en.wikipedia.org/wiki/Windows_Media_Center_Extender Microsoft's Windows Media Center Extender for the Xbox]) is an award-winning free and [http://en.wikipedia.org/wiki/Open_source open source] media player, originally designed to run on the [http://en.wikipedia.org/wiki/Xbox Xbox game-console]. The GPL/LGPL licensed source code basically consist of a [http://en.wikipedia.org/wiki/Application_framework GUI framework] that has been written from scratch by [[Team-XBMC]], this GUI acts as a [http://en.wikipedia.org/wiki/Front-end front-end control interface] for several audio/video players designed for specific purposes (and those are loaded when needed as DLLs), the GUI is also the user interface to [[XBMC Features and Supported Formats/Codecs|all of XBMC multimedia handling functions such as databases and sorting, etc.]]. [http://sourceforge.net/projects/xbmc The XBMC Project], (who's members maintain XBMC source code), is a non-profit open source hobby project that is developed by volunteers in their spare-time without any monetary gain. The team of developers working on XBMC have always encouraged anyone to contrinute to the projecj, this would be helpoing out with this wiki and write HOW-TO guides, help others in the forum, skin XBMC, submit source code patches for new [[XBMC_Features_and_Supported_Formats/Codecs|features or functions]], improve on existing ones, or fix bugs.
:'''XBMC''' (formerly named "XBox Media Center", not to be confused with [http://en.wikipedia.org/wiki/Windows_Media_Center_Extender Microsoft's Windows Media Center Extender for the Xbox]) is an award-winning free and [http://en.wikipedia.org/wiki/Open_source open source] media player, originally designed to run on the [http://en.wikipedia.org/wiki/Xbox Xbox game-console]. The GPL/LGPL licensed source code basically consist of a [http://en.wikipedia.org/wiki/Application_framework GUI framework] that has been written from scratch by [[Team-XBMC]], this GUI acts as a [http://en.wikipedia.org/wiki/Front-end front-end control interface] for several audio/video players designed for specific purposes (and those are loaded when needed as DLLs), the GUI is also the user interface to [[XBMC Features and Supported Formats/Codecs|all of XBMC multimedia handling functions such as databases and sorting, etc.]]. [http://sourceforge.net/projects/xbmc The XBMC Project], (who's members maintain XBMC source code), is a non-profit open source hobby project that is developed by volunteers in their spare-time without any monetary gain. The team of developers working on XBMC have always encouraged anyone to contrinute to the projecj, this would be helpoing out with this wiki and write HOW-TO guides, help others in the forum, skin XBMC, submit source code patches for new [[XBMC_Features_and_Supported_Formats/Codecs|features or functions]], improve on existing ones, or fix bugs.


===Why port XBMC to Linux?===
===Why port XBMC to Linux?===
The main reasons for porting XBMC to Linux are non-technical, (so it is not that the Xbox hardware is too slow orgetting too old for the XBMC GUI or its existing [[XBMC_Features_and_Supported_Formats/Codecs|features/functions]]), no the real reasons for the Team-XBMC developers is that we want XBMC to get a larger end-user and developer-base, because the more people who use XBMC and help maintain the code (and skins) the longer the project will grow and stay alive. The main reason from an end-user point of view is that the Xbox can not playback native high-definition video (at 720p and 1080i/1080p), especially not if the video is encoded with a [http://en.wikipedia.org/wiki/H.264 H.264] or [http://en.wikipedia.org/wiki/VC-1 VC-1] codec. Nevertheless, note that the XBMC project will still keep the old Xbox as the primary reference platform for standard-definition resolution video for some time (possibly a few more years), which means that the same GUI (and skins) that runs smooth under Linux on a relatively new computer must also run just as smooth on the old Xbox hardware (or a old computer that closely matches the Xbox hardware, at 733Mhz Intel Pentium III CPU and only 64MB shared memory with supported 3D accelerator).
:The main reasons for porting XBMC to Linux are non-technical, (so it is not that the Xbox hardware is too slow orgetting too old for the XBMC GUI or its existing [[XBMC_Features_and_Supported_Formats/Codecs|features/functions]]), no the real reasons for the Team-XBMC developers is that we want XBMC to get a larger end-user and developer-base, because the more people who use XBMC and help maintain the code (and skins) the longer the project will grow and stay alive. The main reason from an end-user point of view is that the Xbox can not playback native high-definition video (at 720p and 1080i/1080p), especially not if the video is encoded with a [http://en.wikipedia.org/wiki/H.264 H.264] or [http://en.wikipedia.org/wiki/VC-1 VC-1] codec. Nevertheless, note that the XBMC project will still keep the old Xbox as the primary reference platform for standard-definition resolution video for some time (possibly a few more years), which means that the same GUI (and skins) that runs smooth under Linux on a relatively new computer must also run just as smooth on the old Xbox hardware (or a old computer that closely matches the Xbox hardware, at 733Mhz Intel Pentium III CPU and only 64MB shared memory with supported 3D accelerator).


==XBMC for Linux specific features and functions==
===Where are the UserData folder and the debug log?===
===Where are the UserData folder and the debug log?===
See [[HOW-TO Submit a Proper Bug Report|here]].
:See [[HOW-TO Submit a Proper Bug Report|here]].


===Does XBMC for Linux support Blu-ray or HD DVD playback with or without menus?===
===Does XBMC for Linux support Blu-ray or HD DVD playback with or without menus?===
No. There is not yet any C/C++ open source software out there yet capable of fully playing back Blu-ray or HD DVD so we can not add the code from somewhere in any case. [http://www.ffmpeg.org FFmpeg (the open source codec-suit that XBMC uses)] will probably relativly soon be able to decode all audio and video codecs used in both Blu-ray and HD DVD, but even when that happens you  
:No. There is not yet any C/C++ open source software out there yet capable of fully playing back Blu-ray or HD DVD so we can not add the code from somewhere in any case. [http://www.ffmpeg.org FFmpeg (the open source codec-suit that XBMC uses)] will probably relativly soon be able to decode all audio and video codecs used in both Blu-ray and HD DVD, but even when that happens you still have to get around the DRM encryptions used by the disc formats and there is not yet any C/C++ open source software library capable of that on-the-fly, nither is there any C/C++ open source software library out there capable of displaying Blu-ray or HD DVD menus. XBMC need C/C++ open source software libraries for all of these things to fully support Blu-ray or HD DVD playback.
still have to get around the DRM encryptions used by the disc formats and there is not yet any C/C++ open source software library capable of that on-the-fly, nither is there any C/C++ open source software library out there capable of displaying Blu-ray or HD DVD menus. XBMC need C/C++ open source software libraries for all of these things to fully support Blu-ray or HD DVD playback.


==Linux Operating-System Questions==
===Which are the supported Linux distributions?===
===Which are the supported Linux distributions?===
*Supported Linux Operating-System installed on a supported computer, currently supported OS are:  
:*Supported Linux Operating-System installed on a supported computer, currently supported OS are:  
**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 7.10 (Gutsy Gibbon) 32-bit for x86]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 7.10 (Gutsy Gibbon) 32-bit for x86]
**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 8.04 (Hardy Heron) 32-bit for x86]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 8.04 (Hardy Heron) 32-bit for x86]
**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 8.10 (Intrepid Ibex) 32-bit for x86]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 8.10 (Intrepid Ibex) 32-bit for x86]
**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 8.10 (Intrepid Ibex) 64-bit for x86_64]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/desktopedition Ubuntu Desktop Edition 8.10 (Intrepid Ibex) 64-bit for x86_64]
**[http://www.ubuntu.com/products/WhatIsUbuntu/serveredition Ubuntu Server Edition 7.10 (Gutsy Gibbon) 32-bit for x86]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/serveredition Ubuntu Server Edition 7.10 (Gutsy Gibbon) 32-bit for x86]
**[http://www.ubuntu.com/products/WhatIsUbuntu/serveredition Ubuntu Server Edition 8.04 (Hardy Heron) 32-bit for x86]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/serveredition Ubuntu Server Edition 8.04 (Hardy Heron) 32-bit for x86]
**[http://www.ubuntu.com/products/WhatIsUbuntu/serveredition Ubuntu Server Edition 8.10 (Intrepid Ibex) 32-bit for x86]
:**[http://www.ubuntu.com/products/WhatIsUbuntu/serveredition Ubuntu Server Edition 8.10 (Intrepid Ibex) 32-bit for x86]
**[http://www.ubuntu.com/products/mobile Ubuntu Mobile and Embedded Edition 7.10 (UME) 32-bit for x86]
:**[http://www.ubuntu.com/products/mobile Ubuntu Mobile and Embedded Edition 7.10 (UME) 32-bit for x86]
**[http://www.ubuntu.com/products/mobile Ubuntu Mobile and Embedded Edition 8.04 (UME) 32-bit for x86]
:**[http://www.ubuntu.com/products/mobile Ubuntu Mobile and Embedded Edition 8.04 (UME) 32-bit for x86]
**[http://www.ubuntu.com/products/mobile Ubuntu Mobile and Embedded Edition 8.10 (UME) 32-bit for x86]
:**[http://www.ubuntu.com/products/mobile Ubuntu Mobile and Embedded Edition 8.10 (UME) 32-bit for x86]
*It is possible to compile and run 32-bit XBMC under 64-bit (AMD64/EMT64) Ubuntu if you run it in a 32bit chroot.
:*It is possible to compile and run 32-bit XBMC under 64-bit (AMD64/EMT64) Ubuntu if you run it in a 32bit chroot.


==Hardware Questions==
===What is current recommended hardware requirements for XBMC===
===What is current recommended hardware requirements for XBMC===
For end-users the recommended minimum requirement is a [http://en.wikipedia.org/wiki/X86 x86-based computer], with a [http://en.wikipedia.org/wiki/Graphics_Processing_Unit 3D GPU (Graphics Processing Unit)] that at least supports [http://en.wikipedia.org/wiki/Shader_model Shader Model 3.0] and [http://en.wikipedia.org/wiki/OpenGL OpenGL 2.0] (that features 24bpp or 32bpp for 3D hardware-acceleration support, which XBMC GUI need to run smoothly at an acceptable frame-rate). Graphic adapters that support [http://en.wikipedia.org/wiki/DirectX DirectX version 9.0c] or later usually meet all of those mentioned requirements, ([[Team-XBMC]] recommends [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] as NVIDIA are currently the manufacturer that offers [http://en.wikipedia.org/wiki/Graphics_hardware_and_FOSS good device-drivers for Linux] (and [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] supports OpenGL 2.0).
:For end-users the recommended minimum requirement is a [http://en.wikipedia.org/wiki/X86 x86-based computer], with a [http://en.wikipedia.org/wiki/Graphics_Processing_Unit 3D GPU (Graphics Processing Unit)] that at least supports [http://en.wikipedia.org/wiki/Shader_model Shader Model 3.0] and [http://en.wikipedia.org/wiki/OpenGL OpenGL 2.0] (that features 24bpp or 32bpp for 3D hardware-acceleration support, which XBMC GUI need to run smoothly at an acceptable frame-rate). Graphic adapters that support [http://en.wikipedia.org/wiki/DirectX DirectX version 9.0c] or later usually meet all of those mentioned requirements, ([[Team-XBMC]] recommends [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] as NVIDIA are currently the manufacturer that offers [http://en.wikipedia.org/wiki/Graphics_hardware_and_FOSS good device-drivers for Linux] (and [http://en.wikipedia.org/wiki/Nvidia NVIDIA GeForce 6150 or later] supports OpenGL 2.0).


====XBMC for Linux minimum requirements====
===XBMC for Linux minimum requirements===
*x86 (Intel/AMD-based) processor computer capable of booting to CD-ROM.
:*x86 (Intel/AMD-based) processor computer capable of booting to CD-ROM.
**[http://en.wikipedia.org/wiki/Pentium_4 Intel Pentium 4], [http://en.wikipedia.org/wiki/Pentium_M Intel Pentium M], [http://en.wikipedia.org/wiki/Athlon_64 AMD Athlon XP/64], [http://en.wikipedia.org/wiki/Opteron AMD Opteron], or newer CPU (that support [http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions SSE]).
:**[http://en.wikipedia.org/wiki/Pentium_4 Intel Pentium 4], [http://en.wikipedia.org/wiki/Pentium_M Intel Pentium M], [http://en.wikipedia.org/wiki/Athlon_64 AMD Athlon XP/64], [http://en.wikipedia.org/wiki/Opteron AMD Opteron], or newer CPU (that support [http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions SSE]).
**Fast modern dual-core processor is required to decode H.264 videos in FullHD (1080p).
:**Fast modern dual-core processor is required to decode H.264 videos in FullHD (1080p).
**For clarification; XBMC for Linux does not work on the Xbox game-console.
:**For clarification; XBMC for Linux does not work on the Xbox game-console.
*[http://en.wikipedia.org/wiki/Radeon ATI/AMD], [http://en.wikipedia.org/wiki/Intel_GMA Intel], or [http://en.wikipedia.org/wiki/GeForce NVIDIA] (recommended) graphic controller which supports [[XBMC for Linux specific FAQ|OpenGL 1.4 or later (2.0 recommended)]].
:*[http://en.wikipedia.org/wiki/Radeon ATI/AMD], [http://en.wikipedia.org/wiki/Intel_GMA Intel], or [http://en.wikipedia.org/wiki/GeForce NVIDIA] (recommended) graphic controller which supports [[XBMC for Linux specific FAQ|OpenGL 1.4 or later (2.0 recommended)]].
**[http://en.wikipedia.org/wiki/Radeon ATI Radeon R420 (X800)] or newer supported, [http://en.wikipedia.org/wiki/Radeon ATI Radeon R700 (HD 4000)] or newer recommended.
:**[http://en.wikipedia.org/wiki/Radeon ATI Radeon R420 (X800)] or newer supported, [http://en.wikipedia.org/wiki/Radeon ATI Radeon R700 (HD 4000)] or newer recommended.
**[http://en.wikipedia.org/wiki/Intel_GMA Intel GMA 950 (945G)] or newer supported, [http://en.wikipedia.org/wiki/Intel_GMA Intel GMA X4500HD (G45)] or newer recommended.
:**[http://en.wikipedia.org/wiki/Intel_GMA Intel GMA 950 (945G)] or newer supported, [http://en.wikipedia.org/wiki/Intel_GMA Intel GMA X4500HD (G45)] or newer recommended.
**[http://en.wikipedia.org/wiki/GeForce NVIDIA GeForce 6-Series] and newer supported, [http://en.wikipedia.org/wiki/GeForce GeForce 8-Series] and newer recommended.
:**[http://en.wikipedia.org/wiki/GeForce NVIDIA GeForce 6-Series] and newer supported, [http://en.wikipedia.org/wiki/GeForce GeForce 8-Series] and newer recommended.


=== Why is a OpenGL 2.0 compatible graphic-controller the recommended minimum for XBMC? ===
=== Why is a OpenGL 2.0 compatible graphic-controller the recommended minimum for XBMC? ===
OpenGL 2.0 is not really the current minimum requirement to run XBMC, as in reality XBMC will today run with only OpenGL 1.4 + [http://en.wikipedia.org/wiki/GLSL GLSL] support (everything else has fall-backs to be runned in software on the CPU, slower than GPU hardware though), however to be sure to stay future-proof Team-XBMC have decided that the OpenGL 2.0 is the recommended minimum requirement.  
:OpenGL 2.0 is not really the current minimum requirement to run XBMC, as in reality XBMC will today run with only OpenGL 1.4 + [http://en.wikipedia.org/wiki/GLSL GLSL] support (everything else has fall-backs to be runned in software on the CPU, slower than GPU hardware though), however to be sure to stay future-proof Team-XBMC have decided that the OpenGL 2.0 is the recommended minimum requirement.  


=====Currently OpenGL 2.0 hardware is only needed for...=====
=====Currently OpenGL 2.0 hardware is only needed for...=====
* Any deinterlacing that is not linear blending, (FFmpeg does linear blending in software on the CPU)
:* Any deinterlacing that is not linear blending, (FFmpeg does linear blending in software on the CPU)
* Video [http://en.wikipedia.org/wiki/Video_post-processing video post-processing filtering] (bicubic upscaling, etc.)  
:* Video [http://en.wikipedia.org/wiki/Video_post-processing video post-processing filtering] (bicubic upscaling, etc.)  
* Non-power of two textures for the GUI (using NPOT saves a lot of texture memory)  
:* Non-power of two textures for the GUI (using NPOT saves a lot of texture memory)  
* Hardware accelerated YUV 2 RGB conversion (actually GLSL is needed for this, and a few GPU hardware implementations as low as OpenGL 1.4 does provide GLSL as an extension. OpenGL 2.0 guarantees availability of GLSL).
:* Hardware accelerated YUV 2 RGB conversion (actually GLSL is needed for this, and a few GPU hardware implementations as low as OpenGL 1.4 does provide GLSL as an extension. OpenGL 2.0 guarantees availability of GLSL).
=====In the future OpenGL 2.0 might also be needed for...=====
=====In the future OpenGL 2.0 might also be needed for...=====
* More [http://en.wikipedia.org/wiki/Video_post-processing video post-processing filters] to improve visual quality perception.
:* More [http://en.wikipedia.org/wiki/Video_post-processing video post-processing filters] to improve visual quality perception.
* [[Hardware Accelerated Video Decoding]] (using the GPU hardware to assist with video decoding)
:* [[Hardware Accelerated Video Decoding]] (using the GPU hardware to assist with video decoding)


==Troubleshooting==
==Troubleshooting==
===How can I sort out graphic/video issues in XBMC for Linux===
===How can I sort out graphic/video issues in XBMC for Linux===
====Video Device Driver====
====Video Device Driver====
Most of the problems that you encounter with slow display or OpenGL related errors are because you do not have the proper or outdated display drivers installed.
:Most of the problems that you encounter with slow display or OpenGL related errors are because you do not have the proper or outdated display drivers installed.
=====Begin but install the video drivers the Ubuntu Way=====
=====Begin but install the video drivers the Ubuntu Way=====
*For NVIDIA drivers follow the guide [https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia here (link)]
:*For NVIDIA drivers follow the guide [https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia here (link)]
* For ATI drivers follow the guide [https://help.ubuntu.com/community/BinaryDriverHowto/ATI here (link)]
:* For ATI drivers follow the guide [https://help.ubuntu.com/community/BinaryDriverHowto/ATI here (link)]
* For Intel it is simpler since the drivers are open source so they are usually already pre-installed. You need to make sure that you use the newer 'intel' driver and not the older 'i810' driver or the 'vesa' driver. This could be verified by checking the 'Driver' value in /etc/X11/xorg.conf.
:* For Intel it is simpler since the drivers are open source so they are usually already pre-installed. You need to make sure that you use the newer 'intel' driver and not the older 'i810' driver or the 'vesa' driver. This could be verified by checking the 'Driver' value in /etc/X11/xorg.conf.
=====Alternative is to install the latest drivers using Envy=====
=====Alternative is to install the latest drivers using Envy=====
There is a tool called '''Envy''' that helps you setup the proper display drivers. It usually contains the very latest versions of the video drivers. Please follow the guide [http://albertomilone.com/nvidia_scripts1.html here (link)].
:There is a tool called '''Envy''' that helps you setup the proper display drivers. It usually contains the very latest versions of the video drivers. Please follow the guide [http://albertomilone.com/nvidia_scripts1.html here (link)].
====Verify OpenGL support====
====Verify OpenGL support====
Once you have your drivers in place, you need to make sure that OpenGL is properly configured. Run the following command:
:Once you have your drivers in place, you need to make sure that OpenGL is properly configured. Run the following command:
# glxinfo | grep -i direct
: # glxinfo | grep -i direct
The result should be:
:The result should be:
direct rendering: Yes
: direct rendering: Yes
If the result is "No" it means that the display driver have not been properly configured. Also, you can run the command glxgears and you should see the wheels turning smoothly.
:If the result is "No" it means that the display driver have not been properly configured. Also, you can run the command glxgears and you should see the wheels turning smoothly.


====Compiz is not compatible with XBMC====
====Compiz is not compatible with XBMC====
Make sure Compiz visual effects is disabled. You can do this by going to System -> Preferences -> Appearance -> Visual Effects. Make sure "None" is selected.
:Make sure Compiz visual effects is disabled. You can do this by going to System -> Preferences -> Appearance -> Visual Effects. Make sure "None" is selected.
 


[[Category:FAQ]]
[[Category:FAQ]]

Revision as of 03:00, 21 April 2009

Template:XBMC wiki toc Inline

XBMC for specific FAQs about XBMC running under Linux, Linux computer hardware, and Linux operating-system squestions.

What is XBMC for Linux?

XBMC (formerly named "XBox Media Center", not to be confused with Microsoft's Windows Media Center Extender for the Xbox) is an award-winning free and open source media player, originally designed to run on the Xbox game-console. The GPL/LGPL licensed source code basically consist of a GUI framework that has been written from scratch by Team-XBMC, this GUI acts as a front-end control interface for several audio/video players designed for specific purposes (and those are loaded when needed as DLLs), the GUI is also the user interface to all of XBMC multimedia handling functions such as databases and sorting, etc.. The XBMC Project, (who's members maintain XBMC source code), is a non-profit open source hobby project that is developed by volunteers in their spare-time without any monetary gain. The team of developers working on XBMC have always encouraged anyone to contrinute to the projecj, this would be helpoing out with this wiki and write HOW-TO guides, help others in the forum, skin XBMC, submit source code patches for new features or functions, improve on existing ones, or fix bugs.

Why port XBMC to Linux?

The main reasons for porting XBMC to Linux are non-technical, (so it is not that the Xbox hardware is too slow orgetting too old for the XBMC GUI or its existing features/functions), no the real reasons for the Team-XBMC developers is that we want XBMC to get a larger end-user and developer-base, because the more people who use XBMC and help maintain the code (and skins) the longer the project will grow and stay alive. The main reason from an end-user point of view is that the Xbox can not playback native high-definition video (at 720p and 1080i/1080p), especially not if the video is encoded with a H.264 or VC-1 codec. Nevertheless, note that the XBMC project will still keep the old Xbox as the primary reference platform for standard-definition resolution video for some time (possibly a few more years), which means that the same GUI (and skins) that runs smooth under Linux on a relatively new computer must also run just as smooth on the old Xbox hardware (or a old computer that closely matches the Xbox hardware, at 733Mhz Intel Pentium III CPU and only 64MB shared memory with supported 3D accelerator).

Where are the UserData folder and the debug log?

See here.

Does XBMC for Linux support Blu-ray or HD DVD playback with or without menus?

No. There is not yet any C/C++ open source software out there yet capable of fully playing back Blu-ray or HD DVD so we can not add the code from somewhere in any case. FFmpeg (the open source codec-suit that XBMC uses) will probably relativly soon be able to decode all audio and video codecs used in both Blu-ray and HD DVD, but even when that happens you still have to get around the DRM encryptions used by the disc formats and there is not yet any C/C++ open source software library capable of that on-the-fly, nither is there any C/C++ open source software library out there capable of displaying Blu-ray or HD DVD menus. XBMC need C/C++ open source software libraries for all of these things to fully support Blu-ray or HD DVD playback.

Which are the supported Linux distributions?

What is current recommended hardware requirements for XBMC

For end-users the recommended minimum requirement is a x86-based computer, with a 3D GPU (Graphics Processing Unit) that at least supports Shader Model 3.0 and OpenGL 2.0 (that features 24bpp or 32bpp for 3D hardware-acceleration support, which XBMC GUI need to run smoothly at an acceptable frame-rate). Graphic adapters that support DirectX version 9.0c or later usually meet all of those mentioned requirements, (Team-XBMC recommends NVIDIA GeForce 6150 or later as NVIDIA are currently the manufacturer that offers good device-drivers for Linux (and NVIDIA GeForce 6150 or later supports OpenGL 2.0).

XBMC for Linux minimum requirements

Why is a OpenGL 2.0 compatible graphic-controller the recommended minimum for XBMC?

OpenGL 2.0 is not really the current minimum requirement to run XBMC, as in reality XBMC will today run with only OpenGL 1.4 + GLSL support (everything else has fall-backs to be runned in software on the CPU, slower than GPU hardware though), however to be sure to stay future-proof Team-XBMC have decided that the OpenGL 2.0 is the recommended minimum requirement.
Currently OpenGL 2.0 hardware is only needed for...
  • Any deinterlacing that is not linear blending, (FFmpeg does linear blending in software on the CPU)
  • Video video post-processing filtering (bicubic upscaling, etc.)
  • Non-power of two textures for the GUI (using NPOT saves a lot of texture memory)
  • Hardware accelerated YUV 2 RGB conversion (actually GLSL is needed for this, and a few GPU hardware implementations as low as OpenGL 1.4 does provide GLSL as an extension. OpenGL 2.0 guarantees availability of GLSL).
In the future OpenGL 2.0 might also be needed for...

Troubleshooting

How can I sort out graphic/video issues in XBMC for Linux

Video Device Driver

Most of the problems that you encounter with slow display or OpenGL related errors are because you do not have the proper or outdated display drivers installed.
Begin but install the video drivers the Ubuntu Way
  • For NVIDIA drivers follow the guide here (link)
  • For ATI drivers follow the guide here (link)
  • For Intel it is simpler since the drivers are open source so they are usually already pre-installed. You need to make sure that you use the newer 'intel' driver and not the older 'i810' driver or the 'vesa' driver. This could be verified by checking the 'Driver' value in /etc/X11/xorg.conf.
Alternative is to install the latest drivers using Envy
There is a tool called Envy that helps you setup the proper display drivers. It usually contains the very latest versions of the video drivers. Please follow the guide here (link).

Verify OpenGL support

Once you have your drivers in place, you need to make sure that OpenGL is properly configured. Run the following command:
# glxinfo | grep -i direct
The result should be:
direct rendering: Yes
If the result is "No" it means that the display driver have not been properly configured. Also, you can run the command glxgears and you should see the wheels turning smoothly.

Compiz is not compatible with XBMC

Make sure Compiz visual effects is disabled. You can do this by going to System -> Preferences -> Appearance -> Visual Effects. Make sure "None" is selected.