Warning: This Howto assumes you know how to use ssh and howto create a file on a linux system. Furthermore you need to know what sudo is - if one is unknown to you - this is not the howto you want to follow
After AMD proprietary department did not care for XvBA for more than 2 years now and no AMD driver since 12.10 was really usable, we got into contact with the AMD OSS devs. Within just 2 weeks, we got more working than we ever hoped with the oss radeon vdpau in comparison to fglrx binary blob xvba implementation. As it now made a whole lot of fun working with AMD hardware, we have dropped XvBA completely (it is parked in fernetmentas xvba branch).
What you get
- Bitstream Audio (including DTS-HD, TrueHD, LPCM 7.1)
- max resolution: 2048 x 1152
- mpeg2, mpeg4, h264, vc1 advanced accleration
- Bob and Temporal deinterlacing via vdpau
- The same speed as with the fglrx implementation (currently awaiting rebuild - should be in 10.0.3 + patch)
Known issues for now
- If xbmc is hanging on exit, disable the service version check addon from within xbmc.
-1.) Hardware Requirements / Software Requirements
UVD 2.2 or higher See here: http://en.wikipedia.org/wiki/Unified_Vid...abled_GPUs
Ubuntu Saucy mini iso installed x64.
You can download the mini.iso here: http://archive.ubuntu.com/ubuntu/dists/s...t/mini.iso
0.) Basic Installation and script tuning
After the mini iso is installed, continue with the following steps:
sudo apt-get update
sudo apt-get install ssh python-software-properties software-properties-common udisks upower xorg alsa-utils mesa-utils git-core librtmp0 lirc libmad0 lm-sensors libmpeg2-4 avahi-daemon libnfs1 consolekit pm-utils
sudo apt-get dist-upgrade
Allow every user (everyone) to start X11
sudo dpkg-reconfigure x11-common
Create the xbmc user and it add it the relevant groups. If you have created the xbmc user during installation only do the usermod part.
sudo adduser xbmc
sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip xbmc
To use the following upstart procedure you need to create /etc/init/xbmc.conf to start xbmc via upstart. That scripts does only wait for your HDMI device, if you want to wait for networking, you have to add that.
# starts XBMC on startup by using xinit.
# by default runs as xbmc, to change edit below.
author "Matt Filetto"
# if you use mysql you need to wait for your network device
# that means you should add 'and net-device-up IFACE!=lo' behind the udevtrigger
start on (filesystem and stopped udevtrigger)
stop on runlevel 
# tell upstart to respawn the process if abnormal exit
respawn limit 10 5
limit nice 21 21
exec su -c "xinit /usr/bin/xbmc --standalone :0" $USER
# the following two are to get an idea, if you want to user a window manager
# exec su -c "xinit /usr/bin/fluxbox :0" $USER
edit /etc/security/limits.conf and add before the end. remember xbmc is the username, not the application. This will allow your user to get the audio thread a bit more priority.
xbmc - nice -1
Last thing is missing some permissions to shutdown, suspend the computer, therefore create the file /etc/polkit-1/localauthority/50-local.d/custom-actions.pkla with the following content (don't introduce line breaks, especially the Action= line must be exactly one line (especially no linebreaks or auto ".." in freedesktop.udisks.*), verify this):
[Actions for xbmc user]
1.) Installation of the wsnipex repository which includes all relevant mesa patches in a stable version. Don't use oibaf ppa - it will produce black screens only
sudo apt-add-repository ppa:wsnipex/mesa
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libg3dvl-mesa vdpauinfo linux-firmware
If you get errors when installing (e.g. wayland problem). You have to run sudo dpkg -i --force-all for all the problematic packages in /var/lib followed by sudo apt-get -f install ( see, e.g. here: http://forum.xbmc.org/showthread.php?tid...pid1520014 )
2.) Installation of the repository and the new packages
sudo apt-add-repository ppa:wsnipex/xbmc-fernetmenta-master
sudo apt-get update
sudo apt-get install xbmc xbmc-bin
3.) Update your kernel to a version >= 3.13 stable
Remember to wget all three files
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.5-trusty/linux-headers-3.13.5-031305-generic_3.13.5-031305.201402221823_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.5-trusty/linux-headers-3.13.5-031305_3.13.5-031305.201402221823_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13.5-trusty/linux-image-3.13.5-031305-generic_3.13.5-031305.201402221823_amd64.deb
sudo dpkg -i *3.13.5*deb
Edit /etc/default/grub so that GRUB_CMDLINE_LINUX_DEFAULT reads like, if you find "nomodeset" in that line or vga=normal, remove those.
GRUB_CMDLINE_LINUX_DEFAULT="radeon.audio=1 radeon.dpm=1 quiet splash"
If you get reproducable freezes, when you plugin a monitor after adding the above options, remove radeon.audio=1 again.
Reboot of the system
We are done now with installing. We will reboot now, remember to make the following settings within xbmc in step 4. It could also be good to disable the RSS Reader to save some processing power.
4.) XBMC settings
(Set xbmc to Advanced or Expert before doing this - settings hierarchies, see in the middle of confluence)
Vertical blank sync: Let Driver choose
Prefer VDPAU Mixer: ON
System -> Video -> Playback:
Adjust Refreshrate to match video: On
Sync Playback to Display: On
Sync Method: Video Clock (Drop/Dupe)
advancedsettings.xml in /home/xbmc/.xbmc/userdata/advancedsettings.xml should contain (don't create that file / directory as root - use the xbmc user):
<cputempcommand>sensors|sed -ne "s/Core 0: \+[-+]\([0-9]\+\).*/\1 C/p"</cputempcommand>
<gputempcommand>sensors|sed -ne "s/temp1: \+[-+]\([0-9]\+\).*/\1 C/p"</gputempcommand>
<delay>175</delay> <!-- set to zero or adjust if audio seems out of sync with 24p movies -->
We need full debug logs that show the issue. We don't look at cut out logfiles, as most of the time, the important part is missing. Additionally get us the output of dmesg, Xorg.0.log and vdpauinfo. Don't post the logs inline, don't use google drive or something, just post links to known pastebins. Set xbmc into debugging mode, redo what is causing errors and afterwards do:
sudo apt-get install pastebinit
dmesg | pastebinit
cat ~/.xbmc/temp/xbmc.log | pastebinit
cat /var/log/Xorg.0.log | pastebinit
DISPLAY=:0 vdpauinfo | pastebinit
dpkg -l |grep mesa | pastebinit
glxinfo | grep -i interop should display something like:
Quote:GL_NV_packed_depth_stencil, GL_NV_texture_barrier, GL_NV_vdpau_interop
GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_NV_vdpau_interop
If you have bad luck, you got an AMD card that does mpeg-2 decoding in shaders, which segfaults when done multithreaded. Switch Confluence to Expert and disable Mpeg-2 under Video Acceleration.
Relevant output from qvdpauinfo:
AMD E-350 Processor
VDPAU API version : 1
VDPAU implementation : G3DVL VDPAU Driver Shared Library version 1.0
FATAL: get_bits failed : No backend implementation could be loaded.!!
MPEG DECODING (1920x1080): 59 frames/s
MPEG DECODING (1280x720): 92 frames/s
H264 DECODING (1920x1080): 38 frames/s
H264 DECODING (1280x720): 70 frames/s
VC1 DECODING (1440x1080): 85 frames/s
MPEG4 DECODING (1920x1080): 54 frames/s
MIXER WEAVE (1920x1080): 275 frames/s
MIXER BOB (1920x1080): 439 fields/s
Audio trouble shooting
Check if you audio device is muted
You can use alsamixer -c0 or alsamixer -c1 to do it manually, or use something like:
amixer set 'IEC958',0 unmute
This howto does not install pulseaudio out of a very good reason. We don't support it in xbmc, yet.
If DTS-HD / TrueHD does not work or your kernel complains about broken edid, consider the following:
Download: https://dl.dropboxusercontent.com/u/5572...arantz.bin and save it to /lib/firmware/edid
You have to create the /lib/firmware/edid directory. Make 100% sure, the file has exact 256 Byte after download, if not redownload it.
afterwards edit /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="drm_kms_helper.edid_firmware=HDMI-A-1:edid/marantz.bin radeon.audio=1 radeon.dpm=1 quiet splash"
Bitstream audio still not working
Some receivers deny Bitstream Audio for everything not 60hz. In that case disable Adjust Refreshrate to match Video and also set the Sync Playback to Display to Audio Clock.
Out of historical reasons, you can join #xbmc-xvba for discussing this howto. The channel name shall make us remember forever, that best hardware is worth nothing, if there are no drivers for it :-)