Building an AMD AM1 based HTPC - part 2, software

2014/04/30

Tags: XBMC AMD linux

After getting the hardware setup, I moved onto getting the software going.

First, I installed Windows 8.1. This may seem a strange thing to do considering 99.99% of the time the box is going to be booted into linux, but it’s definitely easier to install Windows first, and let it create it’s UEFI partition, and install it’s boot manager etc.

I then resized the Windows partition, and installed Arch Linux. As we’re using UEFI to boot, the disc uses GPT partitioning, so this is a bit different from normal MBR partitioning. For a boot manager I use Refind, which I’ve had good success with in the past. After installing Refind, Windows would not boot as Secure Boot complained that the UEFI setup had been tampered with. The Arch ISO does have a Linux Foundation Secure Boot keysigning tool on it, but in the end I gave up and turned off Secure Boot in the BIOS.

After getting the basics installed and rebooting into the system for real, I started installing the necessary packages.

A lot of this is personal choice, but I went with:

Resolving graphical problems

When I fired up XBMC for the first time I was pretty disappointed. Firstly the frame rate was really low. Secondly there was bad tearing near the top of the screen.

First I tried playing back the video in smplayer. No tearing, but frame rate was still bad.

I figured out that the best video acceleration API to use with the open source radeon driver is VDPAU. Selecting this in XBMC however resulted in XBMC locking up. With acceleration set to software, there was enough CPU horsepower to decode most 1080p videos fine, but there was a nasty tear 1/5th of the way down the screen. Not good!

Eventually I ended up installing the XBMC Gotham beta (now RC) from the AUR (xbmc-beta) as well as xf86-video-ati-git. This worked better with VDPAU, but I was still getting the tear, although slightly nearer the top of the screen now.

After some research it appears that this is an issue with libsdl detailed in this bug “ libsdl1.2 always uses backingstore which causes tearing in modern X servers “ https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/1280665

To resolve this, the easiest way is to turn off the backing store. I changed this in my lightdm config, setting

[SeatDefaults]
xserver-command=X -bs -core

Remaining issues