Category:Installation
- See also: Category:Compiling
Installation and configuration of XBMC on Ubuntu based OS with AMD HD Graphic (tested with Zotac AD02 and AD10)
The Goal:
Installing and configuring all the necessary to get a fully functional, stable and great XBMC media center on AMD Plateform using prorietary ATI driver and Hardware acceleration.
Software:
This configuration guide has been tested under Ubuntu based OS running 11.10 TLS and 12.04 TLS (desktop versions of Xubuntu and Lubuntu)
Hardware:
This configuration guide has been tested on Zotac AMD Based HTPC: ZOTAC AD02 and ZOTAC AD10
These two HTPCs are quite the same; One major difference is the included and optional USB IR receiver for Zotac AD10, associated with its nice MCE remote control.
Also, only the Zotac AD02 has an SPDIF output to serve Digital sound, digital sound for Zotac AD10 will be achieved using HDMI ouput
Both of them are embedded with an AMD E350 CPU with ATI Radeon HD able to deal with 1080p video and 5.1 Digital audio :-)
Zotac AD02 Model :
AMD E-350 APU Platform (dual-core) (1.6 GHz)
AMD Radeon™ HD 6310
Zotac AD10 Model : AMD E-350 APU Platform (dual-core) (1.6 GHz) AMD Radeon™ HD 6310
Step 1: Install your system
First choose your Ubuntu version to install.
This guide will only be fully applicable with an Ubuntu based version.
I will not cover the OS installation itself as there is a lot of tutorials on this subject and installation is enought easy right now.
I do not recommend using Ubuntu classic version as it provides by default a very resource consuming interface (Unity) and has a lot of problems and bugs running ATI proprietary driver!
As far as I know and as far as I tested, the only Ubuntu bases distributions with absolutely no issue with the ATI proprietary driver are:
- Xubuntu : Ubuntu based version with XFCE desktop
- Lubuntu : Ubuntu based version with LFCE desktop
I would recommend Lubuntu in the case of a XBMC dedicated system (but that’s all my personal choice and therefore i prefer to use Xubuntu) as it has a really low resource consuming desktop interface.
NB:
You may also want to choose a minimal Ubuntu installation and then only run an Xserver that will directly start XBMC interface. This guide will still be approximately applicable in this case.
I did not choose this option for different reasons:
- No desktop interface to deal with system, files and so on (even if often prefer the command line, 2 possibilities are always betters than one!)
- No Web browser
- No graphical tool to manage Networks connections, etc…
- No access to AMD ATI graphical configuration manager, so no way to simply change resolution, brightness, contrast and so on
Installation recommendations:
3 partitions :
- A first partition for the root system ( / )
- A second partition for home (/home)
- A small Swap partition (1 or 2 GB will largely be enough, a such system is not expected to really swap in normal conditions)
Other:
- Install Third party softwares (mp3 and so on)
- In the installation Software, use “xbmc” as a the login
- Activate autologin for the user "xbmc"
Step 2: Ensure your system is up to date and upgrade if required
sudo apt-get update sudo apt-get upgrade -y sudo dist-upgrade –y sudo reboot
Step 3: Install some requirements
sudo apt-get install ssh python-software-properties udisks upower xorg alsa-utils mesa-utils git-core librtmp0 lirc libmad0 lm-sensors lib32gcc1 libc6-i386 dkms
NB : For lirc, when wizard asks you to choose your hardware in our case we will configure it later so you can choose none...
If you already know how to configure lirc and your hardware you may want to choose the right one.
Step 4: Install ATI proprietary driver (required for XVBA Hardware acceleration)
- Get the driver from AMD Site (same file for both 32/64 Bits):
http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx
- Build Packages:
sudo sh ./amd-driver-installer-*-x86.x86_64.run --buildpkg
NB: I you are missing some requirements to build packages, a graphical apt-get install will automaticaly appear and install requirements, just valid and proceed and package building will continue
Packages will be built in current directory and exit.
- Install packages:
sudo dpkg -i fgl*.deb
- Create xorg configuration files
sudo aticonfig -initial -f sudo aticonfig -sync-vsync=on
Optionnal and not destructive: Disable underscan (black borders)
sudo aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0
- Reboot
sudo reboot
Step 5: Proceed with XBMC installation using pre-compiled packages built for ATI
This procedure will add a ppa containing pre-compiled XBMC stable Eden version with XVBA support and install XBMC:
- Add the ppa:
sudo add-apt-repository ppa:wsnipex/xbmc-xvba-eden
Press enter to valid adding this ppa
- Update and install:
sudo apt-get update sudo apt-get install xbmc xbmc-bin
Step 6: XBMC nice level
- Allow xbmc user to change its nice level:
edit /etc/security/limits.conf add the following line at the end of the file
xbmc - nice -1
Step 7: First start of XBMC and base configuration
Open XBMC and proceed with first settings:
- Open XBMC
- In Appearance / skin, I recommend “NEON” (again my personal choice!)
- In Appearance, adapt your language if required
- In System->Settings->System->Video Settings:
Vertical Sync: Always on
- In System ->Video->Playback:
XVBA: On
Adjust Refreshrate to match video: On
Sync Playback to Display: On
Sync Method: Video Clock (Drop/Dupe)
- Exit XBMC
Step 8: Optimizing XBMC CPU use
Enable Dirty Region Rendering (drastically reduces CPU load on XBMC idle) and DDS Fanart NOTE: do not do this as root or with sudo. this file must belong to your normal xbmc user
create: ~/.xbmc/userdata/advancedsettings.xml
<advancedsettings> <loglevel hide="false">0</loglevel> <gui> <algorithmdirtyregions>1</algorithmdirtyregions> <visualizedirtyregions>false</visualizedirtyregions> <nofliptimeout>0</nofliptimeout> </gui> <cputempcommand>sensors|sed -ne "s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p"</cputempcommand> <gputempcommand>/usr/bin/aticonfig --od-gettemperature | grep Temperature | cut -f 2 -d "-" | cut -f 1 -d "." | sed -e "s, ,," | sed 's/$/ C/'</gputempcommand> </advancedsettings>
Step 9: Configuring Digital Audio
You will certainly want to get Digital sound with your own Home Cinema, to get this working you have two possibilities depending on your hardware :
- Digital sound through SPDIF
- Digital sound through HDMI
I will provide these two examples, you have to adapt this depending on your Hardware !
- Digital Audio with SPDIF on Zotac AD02
As xbmc user, create a new file in your home: ~/.asoundrc
pcm.dmixer { type dmix ipc_key 1024 slave { pcm "hw:1,1" period_time 0 period_size 1024 buffer_size 8192 #periods 128 #rate 44100 rate 48000 } bindings { 0 0 1 1 } }
Restart XBMC, in Settings>System>Audio Output:
- Audio Output: Optical/Coax
- Speaker Configuration: 5.1
- Audio Output Device: Custom
- Custom Audio Device: plug:dmixer
- Passthrought Output Device: Custom
- Custom Passthrought Device: plug:dmixer
- Digital Audio with HDMI on Zotac AD10
As xbmc user, create a new file in your home: ~/.asoundrc
pcm.dmixer { type dmix ipc_key 1024 ipc_key_add_uid false ipc_perm 0660 slave { pcm "hw:0,3" #HDMI, defaults to 48000 kHz channels 2 period_size 1024 buffer_size 4096 } } pcm.!default { type plug slave.pcm "dmixer" }
Restart XBMC, in Settings>System>Audio Output:
- Audio Output: HDMI
- Speaker Configuration: 5.1
- Audio Output Device: Custom
- Custom Audio Device: plug:dmixer
- Passthrought Output Device: hdmi (alsa)
Step 10: Configuring power management to allow shutdown and others power management functions from XBMC
Without configuring it, you won't be able to shutdown or suspend your system directly from XBMC
Source:
http://wiki.xbmc.org/index.php?title=HOW-TO:Suspend_and_wake_in_Ubuntu
- Install requirements:
sudo apt-get install policykit-1 upower acpi-support
Create a new file "/var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla":
For Ubuntu 11.10:
[Actions for xbmc user] Identity=unix-user:xbmc Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.* ResultAny=yes ResultInactive=no ResultActive=yes
For Ubuntu 12.04:
[Actions for xbmc user] Identity=unix-user:xbmc Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.* ResultAny=yes ResultInactive=yes ResultActive=yes
- Restart XBMC and try power management functions such as shutdown
You may have to do more configuration if you need wake up from USB connected devices, in my case with the Zotac AD10 and using remote control, i did not had to and powering up was working from remote control even with the optional IR USB receiver.
Step 11: Configuring Remote Control
In the cas of the Zotac AD10, an MCE remote control is provided, associated with an embeded IR receiver and also an optional USB IR receiver.
Using the optional IR receiver, the remote control was working good without doing anything :)
However, some buttons weren't working as i wanted, and more boring the most usefull button was not working... (Home button, the green with windows logo)
Thanks to him, i found this:
http://ben.periton.co.uk/2012/06/configuring-the-zotac-zbox-remote-control/
- First remove lirc (we will install a specific version):
sudo apt-get remove lirc
- Install requirements:
sudo apt-get install automake dialog libtool
- Download the version from FernetMenta:
wget https://github.com/FernetMenta/lirc/tarball/master -O lirc.tar.gz
- Extract, configure and install:
When you will run setup.sh, choose select driver "zotac" under usb, then save & configure
tar -xvf lirc.tar.gz cd <Directory> ./autogen.sh ./setup.sh make sudo make install
- Create links /usr/sbin:
cd /usr/sbin sudo ln -s ../local/sbin/lircd lircd sudo ln -s ../local/sbin/lircmd lircmd
- Stop X11 from registering device as keyboard
Edit "/usr/share/X11/xorg.conf.d/10-evdev.conf" and place the following code at the begining of the file:
Section "InputClass" Identifier "PHILIPS MCE USB IR Receiver- Spinel plus" MatchProduct "PHILIPS MCE USB IR Receiver- Spinel plus" MatchIsKeyboard "true" Option "Ignore" "true" EndSection
- Add a alias in udev to /dev/remote by creating a new file at /etc/udev/rules.d/10-local.rules with the following:
SUBSYSTEM=="usb" , ATTRS{idVendor}=="0471", ATTRS{idProduct}=="20cc", SYMLINK+="remote", ACTION=="add", RUN+="/sbin/initctl --quiet emit --no-wait ir-ready"
- Replace the current version of /etc/lirc/hardware.conf with:
# hardware.conf for Zotac # REMOTE="Zotac MCE Remote" REMOTE_MODULES="" REMOTE_DRIVER="zotac" REMOTE_DEVICE="/dev/remote" REMOTE_SOCKET="" REMOTE_LIRCD_CONF="zotac/lircd.conf.zotac" REMOTE_LIRCD_ARGS="" TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="" TRANSMITTER_DEVICE="" TRANSMITTER_SOCKET="" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS="" START_LIRCD="true" LOAD_MODULES="true" LIRCMD_CONF="" FORCE_NONINTERACTIVE_RECONFIGURATION="false" START_LIRCMD=""
- Replace the current version of /etc/lirc/lircd.conf with:
min_repeat 9 # suppress_repeat 9 # uncomment to suppress unwanted repeats # toggle_bit_mask 0x7004F begin codes KEY_SLEEP 0x00010082 KEY_WAKEUP 0x00010083 KEY_RECORD 0x000C00B2 KEY_PAUSE 0x000C00B1 KEY_STOP 0x000C00B7 KEY_REWIND 0x000C00B4 KEY_PLAY 0x000C00B0 KEY_FORWARD 0x000C00B3 KEY_LEFTSHIFT 0x000C00B6 KEY_RIGHTSHIFT 0x000C00B5 KEY_BACK 0x000C0224 KEY_INFO 0x000C0209 KEY_MENU 0xFFBC000D KEY_UP 0x00070052 KEY_LEFT 0x00070050 KEY_RIGHT 0x0007004F KEY_DOWN 0x00070051 KEY_OK 0x00070028 KEY_VOLUMEUP 0x000C00E9 KEY_VOLUMEDOWN 0x000C00EA KEY_MUTE 0x000C00E2 KEY_CHANNELUP 0x000C009C KEY_CHANNELDOWN 0x000C009D KEY_1 0x0007001E KEY_2 0x0007001F KEY_3 0x00070020 KEY_4 0x00070021 KEY_5 0x00070022 KEY_6 0x00070023 KEY_7 0x00070024 KEY_8 0x00070025 KEY_9 0x00070026 KEY_0 0x00070027 KEY_NUMERIC_STAR 0x10070025 KEY_NUMERIC_POUND 0x10070020 KEY_CLEAR 0x00070029 KEY_TEXT 0xFFBC005A KEY_TITLE 0x000C008D KEY_ENTER 0x00070028 KEY_RED 0xFFBC005B KEY_GREEN 0xFFBC005C KEY_YELLOW 0xFFBC005D KEY_BLUE 0xFFBC005E end codes end remote
- As xbmc user, replace if already exists or create: ~/.xbmc/userdata/Lircmap.xml
<lircmap> <remote device="zotac.conf"> <power>KEY_SLEEP</power> <wake>KEY_WAKEUP</wake> <record>KEY_RECORD</record> <pause>KEY_PAUSE</pause> <stop>KEY_STOP</stop> <reverse>KEY_REWIND</reverse> <play>KEY_PLAY</play> <forward>KEY_FORWARD</forward> <skipminus>KEY_LEFTSHIFT</skipminus> <skipplus>KEY_RIGHTSHIFT</skipplus> <back>KEY_BACK</back> <info>KEY_INFO</info> <display>KEY_MENU</display> <up>KEY_UP</up> <left>KEY_LEFT</left> <right>KEY_RIGHT</right> <down>KEY_DOWN</down> <select>KEY_OK</select> <volumeplus>KEY_VOLUMEUP</volumeplus> <volumeminus>KEY_VOLUMEDOWN</volumeminus> <mute>KEY_MUTE</mute> <up>KEY_CHANNELUP</up> <down>KEY_CHANNELDOWN</down> <zero>KEY_0</zero> <one>KEY_1</one> <two>KEY_2</two> <three>KEY_3</three> <four>KEY_4</four> <five>KEY_5</five> <six>KEY_6</six> <seven>KEY_7</seven> <eight>KEY_8</eight> <nine>KEY_9</nine> <red>KEY_RED</red> <green>KEY_GREEN</green> <yellow>KEY_YELLOW</yellow> <blue>KEY_BLUE</blue> <star>KEY_NUMERIC_STAR</star> <hash>KEY_NUMERIC_POUND</hash> <subtitle>KEY_TEXT</subtitle> <title>KEY_TITLE</title> <clear>KEY_CLEAR</clear> </remote> </lircmap>
In my cas, i was not fully satisfied with this configuration, the Home button was not doing what i was expecting (going back to XBMC Home, and i wanted a button to be able to change language by the remote control
Under conntruction i have get back my config file ^^
You may try this configuration:
<pre> <lircmap> <remote device="zotac.conf"> <power>KEY_SLEEP</power> <wake>KEY_WAKEUP</wake> <record>KEY_RECORD</record> <pause>KEY_PAUSE</pause> <stop>KEY_STOP</stop> <reverse>KEY_REWIND</reverse> <play>KEY_PLAY</play> <forward>KEY_FORWARD</forward> <skipminus>KEY_LEFTSHIFT</skipminus> <skipplus>KEY_RIGHTSHIFT</skipplus> <back>KEY_BACK</back> <info>KEY_INFO</info> <start>KEY_MENU</start> <up>KEY_UP</up> <left>KEY_LEFT</left> <right>KEY_RIGHT</right> <down>KEY_DOWN</down> <select>KEY_OK</select> <volumeplus>KEY_VOLUMEUP</volumeplus> <volumeminus>KEY_VOLUMEDOWN</volumeminus> <mute>KEY_MUTE</mute> <up>KEY_CHANNELUP</up> <down>KEY_CHANNELDOWN</down> <zero>KEY_0</zero> <one>KEY_1</one> <two>KEY_2</two> <three>KEY_3</three> <four>KEY_4</four> <five>KEY_5</five> <six>KEY_6</six> <seven>KEY_7</seven> <eight>KEY_8</eight> <nine>KEY_9</nine> <red>KEY_RED</red> <green>KEY_GREEN</green> <yellow>KEY_YELLOW</yellow> <blue>KEY_BLUE</blue> <star>KEY_NUMERIC_STAR</star> <hash>KEY_NUMERIC_POUND</hash> <subtitle>KEY_TEXT</subtitle> <title>KEY_TITLE</title> <clear>KEY_CLEAR</clear> </remote> </lircmap>
- Reboot and test, everything should work !
Pages in category "Installation"
The following 13 pages are in this category, out of 13 total.