Archive:Linux FAQ

From Official Kodi Wiki
Revision as of 13:54, 1 September 2010 by >Nico
Jump to navigation Jump to search

Template:XBMC faq 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 is the debug log?

$HOME/.xbmc/temp/xbmc.log
See also HOW-TO Submit a Proper Bug Report.

Where is the UserData folder?

$HOME/.xbmc/userdata

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.3 + 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.3 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

Graphic/video issues

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. Alternatively, you can tell Compiz not to interfere with XBMC. Install and run CompizConfig, and under General Options tick Unredirect Fullscreen Windows.
For NVIDIA-Graphis use this (link).

Audio issues

S/PDIF out for both analog and digital audio

You might find yourself able to get one of both working, but switching from one to the other might not work. Ubuntu and other distributions use PulseAudio to manage ALSA devices and unfortunately it doesn't provide management for passthrough digital audio. The following solution bypasses PulseAudio and forces XBMC to directly use ALSA. There is no need to uninstall or tweak PulseAudio on Ubuntu in any way.
  • Open ~/.asoundrc in a text editor (create the file if it doesn't exist) and add the following:

note: make sure to use the correct card/device id and replace 'pcm "hw:0,1"' with it. You can find the id's by typing 'aplay -l' in a terminal.

pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,1"
        period_time 0
        period_size 1024
        buffer_size 8192
        #periods 128
        #rate 44100
        rate 48000
     }
     bindings {
        0 0
        1 1
     }
}
  • Launch xbmc and go to "system->settings->system->audio hardware" and change the following:
AUDIO OUTPUT DEVICE: custom
CUSTOM AUDIO DEVICE: plug:dmixer (note: this is case sensitive, even though xbmc shows only capitals!)
PASSTHROUGH AUDIO DEVICE: iec958

Now all audio output (besides menu sounds) should work including crossfading and switching digital/analog audio sources.