Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by whitelisting our website.

A Windows user confession: XBMC on Ubuntu using ION chipset, the way it should work!

As the topic says; I am a Windows user. I been using the XBMC on Xbox1 for many years. Since the hardware on Xbox does not handle the new “HD-thing”, I started to find a replacement. This is my recipe that forced me to learn some basic linux stuff.

Comments regarding other ways to handle stuff will be highly appriciated!

1. What hardware do you need?
I prefer a simple ION-chipset based computer to take on the task. They are small and have what it takes. I have tested two boxes: Asrock I330 and Acer R3600. Both work well and plays HD in 720p and 1080p without any problems.

None of the boxes above has an IR-eye. If you have an existing MCE remote you can use that, if not jump over to eBay and search for “mce remote”. Most of them work work good with LIRC (Linux IR control), ensure that you have a power on/off button on it.

2. What software do you need?
Ubuntu Desktop (v9.04, called Jaunty, it is what this guide is based on): Download the 32-bits version
XBMC will be installed using respotories after Ubuntu is installed.

2.1 Installing Ubuntu
There are several good guides out there for installing Ubuntu, like this one. Notice! Enable “Log in automaticly” on the “Who are you?” page, that saves you some trouble. Just follow the guide for references and instructions.
None of the ION boxes have a DVD-drive so you will be forced to use an USB-stick. Check this guide out for information regarding that topic.

Update Ubuntu with the Update Manager afterwards, like you would do with any OS.

2.2 Installation of NVIDIA graphics driver
As any operatingsystem you should install a new driver for the gfx-card. For the ION you must!
1. Download the drivers using firefox from here (The 190.18 was the latest when I wrote this and it is based on that)
2. Store them to your Desktop (NVIDIA-Linux-x86-190.18-pkg#.run files)
3. Press CTRL-ALT-F1 (you are now in a terminal without GUI)
4. Login with your username & password
5. Write: sudo killall gdm
6. Check that desktop is killed with CTRL-ALT-F7 (should show some text)
7. Goto root-mode by entering: sudo -i (the username in front should change from to root)
8. Write: cd /home/username/Desktop/ (username is what you entered earlier, might differ from locale to locale, TAB is your friend 🙂 )
9. Start the installation by: sh NVIDIA-Linux-x86-190.18-pkg0.run
10. Next your way through it, straight forward
11. Reboot system by entering: reboot

You should now have Nvidia-Settings under System -> Administration tab on the start-menu. Here you can check the current installed version and change the screen resolution. Other settings are available, just make sure to let the gpu-core run on performance-mode!

2.3 Installing SSH-server as backdoor for updating NVIDIA driver after kernel update
Note: After a while new kernels will be available, when installed they corrupt the NVIDIA driver. Because NVIDIA-driver builds binarys on each kernel, you probably have to do chapter 2.2 again with crappy resolution.
If the driver corrupt you could manage it from another computer, in the same network, using SSH. It is simple and often quicker, here is what you do:
1. Open a terminal (Applications -> Accessories -> Terminal)
2. Install SSH by entering: sudo apt-get install openssh-server openssh-client

The default setup & config is OK from the start. Use Putty as your SSH-client on another computer (ssh on another linux box).
1. Connect to the dns-name/ip of the HTPC
2. Login with your username & password
3. Goto the desktop directory by entering: cd ~/Desktop
3. Visit the NVIDIA driver page and copy the directlink. Download the file like this: wget ftp://download.nvidia.com/XFree86/Linux-x86/190.18/NVIDIA-Linux-x86-190.18-pkg0.run (do the same for alle the files)
4. Follow the chapter 2.2 point 5 and down for finishing installation

2.4 Making your user sudo-master-password-free
Your HTPC does not need security, so to get Ubuntu stop nagging about its precious root-password you should do this. (Warning: This removes the security totally, beware!) Collected from this guide.
1. Open a terminal (Applications -> Accessories -> Terminal)
2. Enter: sudo visudo
3. At the end of file (in the nano-window) enter this:

username ALL=NOPASSWD: ALL
%username ALL=NOPASSWD: ALL

Change “username” to what your username is. The installer creates a user and group with your selected username.
4. Press Ctrl-X, save changes
5. Reboot (to activate the setting)

The “sudo” command in terminal will now stop nagging you.

3. Setting up audio over hdmi
The ALSA (Advanced Linux Sound Architecture) is default installed to the system. It does not manage to setup sound-over-hdmi for some reason. Please check out Alsa Wiki for more information. This is how I managed to fix the problem. This could be different on your system, so please be flexible 😉
1. Open a terminal (Applications -> Accessories -> Terminal)
2. Enter: alsamixer
3. Select IEC958 (or simular) using navigation keys and press M to mute/unmute
4. Press Ctrl-C when finished
5. Download wav-examples from here
6. Unzip it by entering: unzip filname.zip
7. Enter: cat /proc/asound/devices it will give you a list simular to this:

lars@htpc:~$ cat /proc/asound/devices
18: [0- 2]: digital audio playback
17: [0- 1]: digital audio playback
16: [0- 0]: digital audio playback
24: [0- 0]: digital audio capture
33: : timer

The brackets shows card and device number. [card- device]
8. Play the file by entering: aplay -D hw:card,device file.wav (replace card with your card number and device with your device number and file.wav with the soundfile. Example: aplay -D hw:0,2 file.wav, used the first device in the list).
You might have to try through different card and devices, you should get sound on one of them. When you do remember the card & device.
10. Create a file by entering: sudo nano /etc/asound.conf
Change x to your cardnumber and y to your device.

ctl.!default {
type hw
card x
device y
}

pcm.!default {
type plug
slave {
pcm {
type hw
card x
device y
}
}
}

11. Reboot is required and you should get sound in all applications afterwards 🙂

4. Installing Xbox Media center (XBMC)
First of all, visit Xbmc.org download page for the latest info. This guide handles the Jaunty installation only.

This is collected from the XBMC Wiki:
Adding the XBMC Repo tells your system where to look for xbmc for installation and future updates
1. Open a terminal (Applications -> Accessories -> Terminal)
2. Enter: echo “deb http://ppa.launchpad.net/team-xbmc/ppa/ubuntu/ jaunty main” | sudo tee -a /etc/apt/sources.list.d/xbmc.list
3. Enter: sudo apt-get update
4. Enter: sudo apt-get install xbmc
5. Enter Y for any questions
(Ignore the key nagging. If you care, import the PGP key by reading the Wiki above)

After installation is finished you’ll find XBMC in Applications -> Sound & Video

4.1 Using VDPAU as your player in XBMC
In XBMC go to: Settings -> Videos -> Players -> Rendering
Change rendering to VDPAU

4.2 Testing the player
Download some 720/1080p *.mov files from Apple
Try different formats from here: http://www.bigbuckbunny.org/index.php/download/

5. Installing LIRC (Linux InfraRed Control)
This guide is based on a simple MCE remote bought from eBay. It should have a on/off button + a Windows logo button in center. If you have different receivers you could find others that works with another default setup.
1. Open a terminal (Applications -> Accessories -> Terminal)
2. Enter: sudo apt-get install lirc
3. In the “Configure lirc” window select: “Windows Media Center Remotes (old version Microsoft USB ID)” using navigationkeys.
4. Select “None” on transmitters
5. Test LIRC by running command: irw (send IR-signals with your remote, they should be printed to the screen)

If you encountered problems you can start all over by running command: sudo dpkg-reconfigure lirc
Restart LIRC by running command: sudo /etc/init.d/lirc restart

If irw works then, IR should work in XBMC also 🙂 Notice the name of the remote it should be mceusb. (If not check the Lircmap.xml if it is default supported).
If you want to reconfigure the buttons in XBMC enter: sudo nano /usr/share/xbmc/system/Lircmap.xml

Last tip:
If you have an iPhone and don’t like the idea of spending time setting up LIRC, download the XBMC Remote

    What is next…
    A new guide! It will explain suspend-to-ram and how to manage LIRC after a suspend (IR-gone missing).
    Irxevent scripts and common start/stop/reboot scripts for XBMC will also be included + desktop navigation with the IR-remote.
    Read all about it here

Please write comments regarding errors and other ways todo stuff quicker 😉