XBMC on a CubieBoard?

The very first result that Google gave me when trying to find information on running XBMC on the CubieBoard (which is powered by the Allwinner A10), was this link.

http://wiki.xbmc.org/index.php?title=Android_hardware

This, in clear letters states…

Avoid hardware that uses the Allwinner series of chips (such as the Allwinner A10).  Development is not going well for these devices.”

Yes, “Avoid” really is written in bold.  This does not bode well.

I shall try, none-the-less.  After all, I have my backup img files for when things go horribly wrong.

The link below suggests that it’s doable, but with an unofficial 3rd party release of XMBC.

http://linux-sunxi.org/XBMC

So, time for some experimenting.

[ Downloading, compiling, sleeping ]

It’s now the next day, and after following the instructions on the above link (and having to wait 15 hours for the compile to complete), XBMC works surprisingly well, at least on first glance.

There’s one or two issues I need to resolve, so I may split this up into separate posts.  One for each topic.

  • HDMI Sound Output isn’t working
  • I need to get it to boot into XBMC on startup

First up HDMI sound, because if I can’t get this working, there’s no point having it boot into XBMC on startup.

I’ve done a bunch of googling, to try to find out some info, but what they all say I should be seeing (digital audio, s/pdif, etc) isn’t there. All suggested installing this, so let’s go ahead.

  • apt-get install pulseaudio
  • apt-get install pavucontrol

Still not seeing what I’m supposed to see, and not getting any audio through HDMI.

In this article over at the Archlinux Wiki are some instructions for manually detecting and configuring everything, and I finally get some sound coming through the TV after executing…

  • aplay -D plughw:1,0 /usr/share/sounds/alsa/Front_Right.wav

And with…

  • load-module module-alsa-sink device=hw:1,0

…added to the /etc/pulse/default.pa file, I’ve rebooted. Let’s see what happens.

Reboot, get LXMusic playing a sample song on loop, fire up pavucontrol, and in the playback tab change “sunxi-CODEC Analog Stereo” to “sunxi-sndhdmi” and we’re good to go!

Then just turn all analogue devices off in the “Configuration” bit and, in theory, everything should default to the digital HDMI output.

Time to fire up XBMC and see what happens.

Well, there’s still no audio coming through HDMI from XBMC, and as it takes over my entire desktop as soon as I load it, I can’t bring up pavucontrol to see if I can change anything (alsamixer doesn’t even give me any options for HDMI).

Before taking the time to get the audio working, I wanted to see how well it would even handle 1080p, so I’ve ripped one of my Blu-Rays to mkv format and added it to the XBMC video library.

Even without sound, I can see that the video does periodically slow down or appear a little jerky, and then speed up to try to catch up with itself.  There’s some tearing, and occasionally flashes of nothing where the codec seems to confuse it (or it just can’t write out to the graphics hardware properly).

There are also one or two funny things going on whenever I bring up the XBMC interface on top of a playing movie.  There’s some strange artifacting going on, which allows me to see the image through some of the interface (parts which should be fully opaque – like buttons).

I also cannot connect the “Official XBMC Remote” app on my iPhone to it, as I can with the Pi.

It does work, and standard definition DVD rips play nice and smooth (but again, no sound), but 1080p is definitely an issue – and 1080p is what I want.

Overall, it sort of works, but not to any level of practical and useful standard.  So, it looks like I’ll be picking up another Pi for the living room, and this will become a full time web server for developing.

The only question now is which backup I restore from.  Do I really need X?

Most of the time I’ll simply be connecting via FTP to upload files, and through a browser to view the results.  Occasionally I will need to SSH in, but will I ever actually need a GUI (either locally, or remotely via VNC)?