Archive:HOW-TO:Install XBMC on Ubuntu/HOW-TO 3
Introduction
Most of XBMC users are aware that XBMC Live is being released regularly by TeamXBMC, allowing a set-top box experience both running from a CD, a flash disk or fixed disk drive. XBMC Live is a streamlined Ubuntu-based system, optimized for removable media, that once installed on a fixed disk drive is a pure Ubuntu-based system, although customized for set-top box experience.
An XBMC Live system will be exactly like the one that this procedure will generate, except that no build environment will be available by default. Instructions for installing a build environment are under "Optional Installs".
This guide describes how to build an Ubuntu-based system with the minimal set of features that are part of XBMC Live, from which an expert user could start to create his/her perfect setup. The result will be a customized media center allowing the user to add support for specific hardware or providing additional functionalities. Internet access is required during the installation.
Although this guide is not written for Linux neophytes, it is easily followed by anyone who can complete a Linux install.
This guide assumes you are using the Ubuntu 10.04 "Lucid Lynx" Minimal CD. A window manager is not required for running XBMC.
If your processor supports 64-bit, it is recommended you use that version of Ubuntu. Otherwise, use the 32-bit version.
Install miminal Ubuntu
The Ubuntu community provides a handy "Minimal CD image", a tiny bootable CD (<15 MB) to be used to perform a custom installation with a text-based installer. Get the most recent Lucid Lynx ISO image from here.
- The ISO can either be burned to CD (seems like a waste for 12.5 MB); alternatively, I used UNetbootin to make a bootable USB drive from ISO.
After starting the computer with either the CD or the USB drive, select "Install" at boot prompt, then when prompted provide info about your location, language, keyboard layout, time zone. Disk partitioning will be basic, the full disk will be deleted and used.
- Note: If you want more control on the install options you can opt for the "Expert install" at boot prompt, that provides you more flexible disk selection and partitioning options.
When prompted, create an username for your account. Note that XBMC will run on its own account "xbmc" that will be created later in the install process.
During the installation select "OpenSSH server" as the only option if you want to have (secure) remote connections facilities.
The installer will then download all the required packages and finally the system will reboot.
From now on, if you installed OpenSSH, you can SSH from a computer to simplify the rest of the install.
Initial system configuration
On Ubuntu 9.10 or higher, run the following commands:
sudo apt-get install python-software-properties pkg-config sudo add-apt-repository ppa:team-xbmc/ppa sudo apt-get update
Install XBMC
The core XBMC application and its related dependencies can be installed by typing:
sudo apt-get install xbmc xinit x11-xserver-utils
This will take a considerable amount of time since lots of packages are due to be installed.
Install "restricted drivers" if you have an NVIDIA or ATI/AMD GPU
XBMC requires 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). As of writing, only Intel, ATI/AMD and NVIDIA have compatible products. However, while Intel drivers are included by default in the standard Ubuntu kernel, NVIDIA and ATI/AMD are not and require additional steps for installation.
If using NVIDIA: install NVIDIA restricted drivers
Method 1: Default NVIDIA drivers Installation
Ubuntu has official packages for NVIDIA drivers in their repository. You can see these by:
apt-cache search nvidia | grep glx
Looking at the listed versions from the command above enter the following command substituting 185 if you desire a different version:
sudo apt-get install nvidia-glx-185 nvidia-settings mesa-utils libvdpau-dev
Method 2: use NVIDIA-VDPAU repository
For NVIDIA versions > 185 use this method.
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
Update your apt database:
sudo apt-get update
Search available releases:
apt-cache search nvidia | grep source
Currently, version 256 is the highest available version to Ubuntu 10.04. This is perfect if you are using audio over HDMI, as later versions introduce a change which prevents the ALSA driver from handling this properly.
Install your desired version:
sudo apt-get install nvidia-256-kernel-source nvidia-glx-256 nvidia-settings mesa-utils libvdpau-dev
Method 3: Manual Installation
First, download the open source NVIDIA nForce drivers from here.
Latest version available to download is 260.19.44 for both 32-bit and 64-bit platform. This version is okay for audio over HDMI.
binutils and gcc must be installed for nVidia package installer to run/compile. The installer will stop running if those packages are not found on the system.
sudo apt-get install binutils gcc
The driver can be downloaded directly using 'wget' (you may have to install wget, if not installed yet).
sudo apt-get install wget
Linux IA32 (32 bit version):
wget http://us.download.nvidia.com/XFree86/Linux-x86/260.19.44/NVIDIA-Linux-x86-260.19.44.run chmod 755 NVIDIA-Linux-x86-260.19.44.run sudo ./NVIDIA-Linux-x86-260.19.44.run
Linux AMD64/EM64T (64-bit version):
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/260.19.44/NVIDIA-Linux-x86_64-260.19.44.run chmod 755 NVIDIA-Linux-x86_64-260.19.44.run sudo ./NVIDIA-Linux-x86_64-260.19.44.run
If everything goes right, you should see the driver being installed on the screen. For further reading on this, look here
Generate an xorg.conf file
Default xorg.conf
You need a proper xorg.conf file; you can generate a new one automatically by using:
sudo nvidia-xconfig -s --no-logo --force-generate --output-xconfig=/etc/X11/xorg.conf
Judder free playback (NVidia Only) Very Recommended
For a judder free playback at 23.97/59.94 Hz follow this guide.
Load the NVIDIA kernel module
The NVIDIA module can now either be loaded:
sudo modprobe nvidia
Or you can reboot and it will be automatically loaded:
sudo reboot
If using ATI/AMD; install ATI/AMD restricted drivers
Follow one of the two methods described in the "Unofficial ATI Linux Driver wiki". Manual install is very likely to give the best results.
Install XBMC-live and Test XBMC
You do not need a window manager to run XBMC. In fact, your system will be much more lightweight without one. Instead, install the XBMC-live startup script.
The xbmc-live package requires the "xbmc" account, but does not create one. Create one before you install it:
sudo adduser xbmc --gecos XBMC
Set the password to whatever you wish.
Add the xmbc user to the required groups:
sudo usermod --group audio,video,cdrom,plugdev xbmc
Install XBMC-live for Automated startup:
sudo apt-get install xbmc-live
Now to test, logout of your administrative user and log back in as "xbmc". Then run:
xinit xbmc-standalone
If everything has been setup correctly, you should be greeted by the XBMC interface. If not, a likely culprit is your X setup. Check the logfile /var/log/Xorg.0.log. A quick way to find fatal errors is with the command:
grep EE /var/log/Xorg.0.log
If you find problems, try reinstalling your drivers and editing your /etc/X11/xorg.conf file.
Safe Mode
If you want to boot to a console for repair without starting XBMC, hold down the shift key when booting and "grub" will give you a choice of "(recovery mode)". Select this and the system will boot to a console. Alternately, you can attach a keyboard and switch out of XBMC to a text console by pressing CTRL-ALT-F1 through CTRL-ALT-F6, you can switch back to XBMC with CTRL-ALT-F7.
Install ALSA
sudo apt-get install linux-sound-base alsa-base alsa-utils
The sound level will be set to zero, to change the volumes we need to enter the sound mixer.
sudo alsamixer
Adjust the channels you are interested in. Press ESC to exit out of the mixer.
Save the volumes of Alsamixer.
sudo alsactl store 0
Updating ALSA
NOTE: Only if you experience difficulties with audio.
There are a few issues with the current ALSA package shipped with Ubuntu, therefore it might be a good idea to upgrade.
By using this guide.
Credits for the script: Soundcheck/Temüjin on Ubuntu forums
This should download and update your ALSA to the latest version (1.0.24.2 when writing this)
- NOTE: ALSA v1.0.22.1 is installed by default with Ubuntu 10.04 [Lucid Lynx] and there is no need to upgrade if you really have some serious issues. If you have GeForce/nForce iGPU, then you can follow this guide to enable audio over HDMI.
Reboot the computer and check that ALSA is updated, start alsamixer and look in the caption, the version should show there.
By default the sound card will have several channels muted, others with low volumes. You have to find your setup by running
alsamixer
and adjust the channels you are interested in. Once done, save the sound volumes permanently with
sudo alsactl store 0
Updating ALSA with PPA
By following this guide you can update alsa with a ppa.
HDMI audio on NVidia GeForce G2xx
By following this guide you can setup HDMI audio for NVidia GT2xx
Audio over HDMI for NVidia GeForce/nForce controller
By following this guide you can setup audio over HDMI audio for NVidia GeForce/nForce.
Optional Installs
Install XBMC unstable build environment
If you want to walk on the bleeding edge and follow daily development of XBMC you have to install unstable and all XBMC build dependencies:
sudo stop xbmc-live sudo rm /etc/apt/sources.list.d/team-xbmc* sudo add-apt-repository ppa:team-xbmc/unstable sudo apt-get update sudo apt-get upgrade sudo start xbmc-live
Enable the XBMC user to shutdown or put the computer to sleep
The following commands, gives the xbmc user rights to suspend, hibernate, reboot and shutdown:
sudo apt-get install upower
Create a custom-actions.pkla file with the following contents:
sudo nano /var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla
Put this in the file.
[Actions for xbmc user] Identity=unix-user:xbmc Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.* ResultActive=yes ResultAny=auth_admin ResultInactive=yes
For more info see this page Ubuntu Suspend / Wake
USB Automount
To enable automount of usb mass storage (show up as source) in xbmc and to unmount (using the context menu)
sudo apt-get install udisks usbmount
Add NTFS support (maybe allready installed)
sudo apt-get install ntfs-3g
sudo nano /etc/usbmount/usbmount.conf
Change line
FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus"
to
FILESYSTEMS="ntfs vfat ext2 ext3 ext4 hfsplus"
Set permissions for user xbmc to handle udisks policys: Modify the file (see also previous chapter ! ):
sudo nano /var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla
Put this in the file:
[Actions for xbmc user] Identity=unix-user:xbmc Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.* ResultActive=yes ResultAny=auth_admin ResultInactive=yes
Custom Boot Splash
If you want to replace the standard Ubuntu boot screen with a custom, XBMC related one TeamXBMC provides the following in its repository:
To install the logo, type the following:
sudo apt-get install plymouth-label v86d sudo wget http://excyle.nl/plymouth-theme-xbmc-logo.deb sudo dpkg -i plymouth-theme-xbmc-logo.deb
Change the Grub-config
sudo nano /etc/default/grub
Add "video=uvesafb:mode_option=1366x768-24,mtrr=3,scroll=ywrap" to the GRUB_CMDLINE_LINUX_DEFAULT line.
Change the Initramfs-Module
sudo nano /etc/initramfs-tools/modules
Add as last line "uvesafb mode_option=1366x768-24 mtrr=3 scroll=ywrap" without the quotes.
sudo nano /etc/initramfs-tools/conf.d/splash
Put in "FRAMEBUFFER=y" without the quotes.
Update grub and the kernel.
sudo update-grub sudo update-initramfs -u
Reboot
sudo reboot
Credits to eXcyle for creating the logo and to [.A.C.I.D.] for making a tutorial.
Support for a Remote
Install Lirc
If you prefer to navigate in XBMC with a remote, check if your remote is supported by "lirc" on their website, and if it is you can install and configure it with:
sudo apt-get install lirc
For the original XBOX DVD Dongle remote, configuration here
Resume from Sleep with Remote
Refer to the "Remote Suspend & Wake" section of "Ubuntu Suspend / Wake".
Support for DVD
Dvd-rom spin-down
Dvd spin-down is used, eliminating the noise of a rotating disk. How-to for spindown
Unlock the DVD/CD drive for eject
The eject function in XBMC may not work unless you do the following.
sudo bash -c "echo dev.cdrom.lock=0 >>/etc/sysctl.conf" sudo sysctl dev.cdrom.lock=0
Disable HAL DVD automounting
If you see a pop-up about the DVD device being mounted and a complaint about unsafe removal when you eject the DVD, you should disable HAL's polling for DVD insertion. Automounting through HAL is not required for DVD playback.
Create a file named "/etc/hal/fdi/policy/nodvdmount.fdi" with the following contents:
<?xml version="1.0" encoding="UTF-8"?> <deviceinfo version="0.2"> <device> <match key="storage.cdrom.dvd" bool="true"> <remove key="info.addons" type="strlist">hald-addon-storage</remove> </match> </device> </deviceinfo>
Known Issues
Overscan
When connecting the PC to the TV using HDMI, the 4 sides of the screen may be cut off. The recommended fix is to set 1:1 pixel mapping on your display. On the Panasonic TC-P54V10, go to the "Picture" menu to access "Advanced picture" and then set "HD Size" to "Size 2". Most modern displays have this as an option for the input.
Sound Delay Issue
When using HDMI to connect the the audio of the PC to a TV, there appears to be a 2-3 second delay after the video playback is resumed before sound plays. The issues does not occur when the the analog audio out is used. More information on this issue is available at: this thread and this thread.
Poor Playback of H.264 Files
When playing H.264 files (e.g MKVs), if the playback is uneven and the sound unsynced or non-present, VDAPU is likely not being used for decoding. This can be verified by checking the playback statistics. The decoder should show "dc:ffh264vdpau." If it does not, VDAPU is not being used for decoding even if it is selected from the playback menu. The solution is to run "sudo aptitude install mplayer-nogui". Credit to: gradinaruvasile
Multi-channel PCM over HDMI is broken
Due to a bug in the nvidia drivers version > 185, multi-channel audio (in non-passthrough mode) will be sent as regular stereo. These are the consequences:
- Multi-channel audio (typically AAC which XBMC needs to decode) will come through as a normal stereo signal
- Voices are muted - they are supposed to come over the center channel, which has been discarded as consequence of the stereo signal
Possible workarounds:
- Use nvidia driver version 185 with ALSA 1.0.21 or later, or
- Use any nvidia driver version, but enable downsampling in the audio settings - you will lose surround, but at least everything can be heard.
Follow the discussion here: [1].
External Links
- XBMC Linux Forum Here you can find different solutions to problems of XBMC on Linux.
- XBMC Complete Installer I believe this is the most up to date version of the Setup script referenced below.
- Complete & Easy XBMC Install script for ION Based Systems Pretty impressive installer script.
- Lifehacker article on "Build a Silent, Standalone XBMC Media Center On the Cheap"
- HOW-TO make a minimal install of Ubuntu on Acer Revo ION in under 25 minutes Some of this guide is based upon the forum
- XBMC Setup Script - Automatic installation of XBMC for Linux The script was built for Ubuntu 9.04 (I believe). Some of the action performed are no longer needed. Page 18 has an updated version, but still performs actions that are not strictly required.