There is lots of information about all the problems related to VAAPI, AMD, drivers and hardware accelaration in Linux (with Windows 7 this platform works like a charm already and it beats ATOM/ION on price, performance and features). In the meanwhile, nice development happened and the platform is ready for a HTPC with Linux. What happened?
- AMD added support for their Fusion Platform with their closed source catalyst drivers (aka fglrx) from day one the products hit the market.
- Open Source drivers are updated and getting better and better (not likely to outperform the closed source drivers with media playback for comming years)
- Problems related to VAAPI and XBMC are fixed.
- VAAPI is not enabled in XBMC 10.0 and 10.1. VAAPI is only enabled in the nightly (GIT) builds and most likely from Eden and on.
- Genereal Linux developments (like ALSA, MESA, kernel, etc.) are in kernel 3.0 and on. Soon the distro's will give easy access to all those developments.
- It's confirmed to work with most hd and sd movies.
- No GPU deinterlacing support but CPU can handle it (atm only single core due to XBMC. FFMPEG already is dualcore. btw, same problem for Intel with their Sandy's). Needs work on libva to have this for GPU.
team-xbmc PPA can't be used until this ticket is closed.
Since needed dependencies are missing in most Linux distro's, compiling yourself a build is not easy. Right now, there are 2 compiled options for you (with VAAPI enabled):
- A user did all this work and posted a precompiled version overhere (custom xbmc-live ubuntu 10.10 x64 build). This build is working pretty well but contains some outdated drivers. Here is the same file as ISO, another iso, NZB and torrent.
- There also is the PVR branch (precompiled VAAPI XBMC (including PVR; see this install instructions for Ubuntu 10.10
- openelec.tv: this is work in progress; you can download an experimental build. This is the best and easiest way to try AMD + Zacate + Linux.
- XBMC(Freak)Live: added fglrx driver but isn't supporting this hardware yet.
The only other way to get this hardware running with XBMC on Linux, is to compile xbmc yourself. I went for Ubuntu Natty Mini (11.04) x64. Here, Natty installation guide and here you can find most info to compile XBMC for yourself. I would recommend not to build on your AMD Fusion machine since that cant take over 2 hours to build. Instead, use a better desktop with a virtual environment to build your Linux system and use i.e. unetbootin to export the .iso to the usb.
Here we go....
Basically what you have to do is:
1. Install & update mini OS based on Ubuntu;
2. Install va-api stuff ;
3. Install catalyst;
4. Confirm if everything is ok;
5. Install & compile xbmc 10.1.
Of course this guide will be coming less and less complicated as the git changes get into the Ubuntu packages. I will try to update this guide when there is a change which makes it less complicated.
Wytraven created a step-by-step guide similar to the one below.
We will use an 64-bit 11.04 Ubuntu Natty minimal to start with the newest basic packages for your OS.
Choose Command-line-install and use xbmc for username.
After reboot, install ssh so you can continue work with Putty (for win) or with the "ssh -l xbmc your.IP.address" from a linux terminal. Also we install py-properties to easy add ppas. Also add the user (I have chosen XBMC as the username) to the video and audio group because without this xserver can not access your gpu directly and falls back to software rasterizer. Get a terminal with crtl+alt+f1, than
sudo apt-get update
sudo apt-get install ssh python-software-properties udisks upower xorg alsa-utils mesa-utils git-core librtmp0 lirc
sudo adduser YourUserName video
sudo adduser YourUserName audio
Upgrade to 3.0 kernel from ppa:xorg-edgers/ppa and reboot with the new kernel.
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install linux-headers-3.0??? linux-headers-3.0???-generic linux-image-3.0???-generic --fix-missing
Verify that you are using kernel 3.0
Optionally you can disable ppa:xorg-edgers/ppa untill everything is more mature.
sudo nano /etc/apt/sources.list.d/xorg-edgers-ppa-natty.list
and comment out the two lines (or move that file away), after which you have to
sudo apt-get update
The source of the 3 needed libs [libva & libva-dev & xvba-video] from splitted-desktop.com.
cd ~/; mkdir vaapi; cd vaapi/
sudo apt-get install -y libkms1 libdrm-dev pkg-config vainfo
sudo dpkg -i xvba-video_0.8.0-1_amd64.deb
If xvba isn't recognized properly then you have to create this symbolic link manually:
cd /usr/lib/dri; ln -s /usr/lib/va/drivers/fglrx_drv_video.so fglrx_drv_video.so
sudo nano /etc/environment
add these lines to the "/etc/environment" file
We need to install the latest AMD/ATI drivers (now: 11.7). See this howto and those install notes. As the Zacate/Fusion platform is brand new, I recommend to keep them (but also ALSA, MESA and X.org) always up to date with Xorg-edge and x-updates PPA's (will be re-enabled once the system runs).
sudo apt-get install -y build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 dh-modaliases
sudo apt-get install -y ia32-libs
cd ~; mkdir catalyst11.7; cd catalyst11.7
chmod +x ati-driver-installer-11-7-x86.x86_64.run
sudo sh ./ati-driver-installer-11-7-x86.x86_64.run --extract ati
sudo ./ati-installer.sh 8.872 --buildpkg Ubuntu/natty
rm -rf ati
sudo dpkg -i fglrx*.deb
sudo aticonfig --initial -f
sudo aticonfig --input=/etc/X11/xorg.conf --tls=1
1. Start xbmc in safe mode (or kill xbmc with xserver)
2. type: startx - enter (to start Xorg)
3. left mouse click -> applications -> shells -> bash
4. here u can check vainfo and fglrxinfo etc
Output should be something like this:
libva: libva version 0.32.0
Xlib: extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/fglrx_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.32
vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.7.8
vainfo: Supported profile and entrypoints
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
(And yes, mpeg2/SD Content isn't accelerated by AMD/ATI and that's not too bad since CPU can handle it)
and for fglrxinfo it should be like this:
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 6310 Series
OpenGL version string: 4.1.10834 Compatibility Profile Context
Install git and checkout 10.1 branch
sudo apt-get install git
git clone [url]https://github.com/xbmc/xbmc.git[/url]
git checkout 10.1-Dharma
Before we can build XBMC we need to install some prerequisites/dependencies (Deps should be copied from the readme README.linux)
Continue to 2nd post.