[ Wednesday, 11 November 2009, alkor ]
As an experiment I decided to build Media PC based on Linux. First of all I was wondering, how much did the Linux distributions evolve in the past few years (I’ve used Linux since a few years only on servers). The second thing is, I was fascinated by quite new, miniaturized hardware solutions based on Intel Atom processors. The third was, I wanted to check in real life the suitability of so called Media P..
Concerning the last one, after a tentative googling I made a few assumptions, which I’d like to achieve:
- watching films/pictures in HD on my TV set;
- listening to music (including webcast);
- browsing on the TV set;
- using everything as a simple NAS (Network Attached Storage) – mainly for a backup.
And the usage of all hardware should be not much involving, which means that I’d like it to ensure:
- an easy allocation of media (that is data) in the device;
- easy handling – the best option would be a remote control;
- a quick start – optimal using a hibernation mechanism.
It’d also be good if the hardware was silent and didn’t use much energy. Not meaningless would be also fitting it all into a small and aesthetic case – looking more like an audio player than a PC (only with this assumption you can negotiate with the fair sex leaving the machine in a saloon – that is close to the TV set).
2. Choosing the hardware
I chose a quite modern solution – ZOTAC IONITX-A – based on NVIDIA ION. The mainboard is small (standard Mini-ITX) and uses little energy. It’s equipped with a dual core Intel Atom N330 processor, so we’re still staying in the standard x86 architecture. The graphics processing is based on a GeForce 9400M chipset, which is very positive concerning usage under Linux (I mean the basic work of a graphic card, so as hardware decoding of popular video formats without overloading the CPU too much).
The mainboard is also very well equipped with outputs. So we have:
- video outputs: VGA (D-Sub), DVI, HDMI (so we have digital outputs, which we can without any problem plug into a TV set);
- an optical, digital audio output (it’ll come in useful for simply connecting the mainboard to an external Hi-Fi hardware);
- even 10 USB slots (which can assure a pretty easy extension of the hardware);
- a few additional ports – showed in the specification.
Concerning the network communication – the mainboard has a built-in wireless and Ethernet adapter (10/100/1000).
Additionally the hardware contains an external power supply, which allows to reduce the costs connected with a case. The overall cooling is unfortunately active (additional noise and mortality of the fan).
A full hardware specification can be found on the manufacturer’s website.
The price of the mainboard is approx 190 USD.
On the polish market it was not easy to find many cases in Mini-ITX standard, especially those, who were easily available. At last the choice was: Aplus Cupid 1 Mini-ITX.
It came out to be a pretty good choice. From the quality the case looks better than on available photos in the net and by the way, it’s functional. At front there’s a slot for an optical drive (SLIM) with a closing panel:
- two USB inputs (a perfect place for plugging in an USB keyboard/mouse) – there’s also a proper space between the inputs – without any problem I managed to plug in a pretty wide, additional wireless adapter and at the same time a pendrive;
- a reader for memory cards, used often in cameras (4 slots, which support over 50 memory card formats);
- a headphone input and a microphone input;
Theoretically the case is pretty good ventilated (the openings on the sides and on the top of the case ensure a pretty good air supply), but in some cases it might not be enough (more about cooling is described later in the article).
The price of the case is about 100 USD.
c. Hard drive
I equipped the hardware with a 2,5″ hard drive (a format well known from laptops) of 320 GB capacity (Seagate Momentus 7200.3, 7200 RPM, SATA/300). First I was afraid it’d be loud, but actually during work it’s almost not audible.
The price of the hard drive is around 100 USD.
I equipped the mainboard with two 2GB DDR2 sticks(800 MHz).
Both sticks cost about 60 USD
3. The components match and the network architecture.
After further googling i made the choice for Kubuntu distribution (version 9.04) – it’s quite up-to-date and based on Debian (my favourite distribution).
Then concerning an application as basis for the media center I decided to use the XBMC Media Center (it looks quite well rounded and since a while systematically developed). Not meaningless is also the fact that there’s an application out for iPhone XBMC remote, which allows a pretty nice control of the Media Center.
Before getting to work there’s also a simple network project of the whole device environment left – so the whole solution would fit very good into my own infrastructure (LAN and the audio-video devices). And it looks like that:
4. Installing Kubuntu
For the moment I don’t have any optical drive installed in the device (I’d like to install a Blu-ray adapter later on – the case has a free SLIM drive slot), so I chose an installation from a pendrive. This is where the portal pendrivelinux comes into handy. At least for the start I didn’t want to risk installing the 64-bit version and I decided to install the standard 32-bit version of the system.
Preparing a boot pendrive with Kubuntu under Windows is basically limited to a few simple steps.
After plugging the pendrive in to the USB slot and starting the device, we see an installation screen – I chose to install the system to the hard drive. The whole installation is quite smooth and takes 10-15 minutes.
5. First impression
The first run of the Media PC I made in the configuration:
- a few years old LCD Samsung 913N (19″) monitor connected via D-sub;
- wireless keyboard and mouse (Logitech Y-RAJ56A) connected via USB (more precisely the USB has a wireless signal receiver for the keyboard and mouse plugged in);
- an Internet connection through the Ethernet (the plug is connected with the house router port).
A short while after running the machine I see a graphic KDE log in screen. After logging in on a previously created user I see the first problem – the resolution is barely 640×480. I’m not able to change the resolution in the KDE graphic configurator (start->computer->system settings->display). The program offers me at his best decreasing the resolution…to 320×200.
The next step is downloading the drivers for the graphic card from the NVIDIA website (Linux Display Driver – x86, Version: 185.18.14). After a successful installation of drivers I get the same problem – the change of resolution in the graphic environment is not possible.
After checking the /etc/X11/xorg.conf file it appears that the system didn’t recognize the monitor… finally based on materials found on the net I decided to reedit xorg.conf manually (mainly concerning the monitor settings). Bingo – I managed to run KDE in 1280×1024 resolution. An additional problem are still too small fonts, but I will leave this for now.
6. XBMC (XBMC Media Center)
In the background I run the system update (it’s mainly about security – I use for this purpose the graphic package manager). Then I install XBMC according to the description.
- vi /etc/apt/sources-list and adding the entry:
deb http://ppa.launchpad.net/team-xbmc/jaunty-ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/team-xbmc/jaunty-ppa/ubuntu jaunty main
- importing a suitable GPG public key;
- apt-get update
- apt-get install xbmc
After a while I get an up and working XBMC (version 9.04.1 r20654).
During the install of patches and XBMC, I see that the system has found a built-in wireless network adapter: Atheros AR928X supporting the standards: 802.11 b/g/n.
The full information about this adapter given by lspci, looks like this:
04:00.0 Network controller: Atheros Communications Inc. AR928X Wireless Network Adapter (PCI-Express) (rev 01)
After the system update I make a simple test using a graphic network manager (KNetworkManager) – based on connecting to my wireless network, secured with WPA-PSK mechanism. Automatically the needed network settings are being assigned (using DHCP). The wireless LAN connection procedure itself is not the most comfortable one (2 times I received an error concerning an “unexpected end” of certain processes, several times I needed to type in my wireless access password). The user interface of KNetworkManager is also not very intuitive…
In the end to test the stability of the wireless connection I install Firefox and browse through some websites with news (e.g. linuxnews.pl . The browser works prompt and the network without any problems (the computer stands barely one meter from the Access Point).
Before plugging the device in to the TV, I also check the device temperature. It’s relatively low – the sensor on the chipset shows 50 degrees Celsius and the case is even cool.
7. A test on the TV
I connect the hardware to a 46″ Samsung TV, using the HDMI interface. The TV supports Full HD – I will have an opportunity to test the whole thing working in 1920×1080 resolution. The wireless keyboard and mouse are the whole time connected to the front panel of the case (through the before mentioned adapter). I’ll be testing the Internet connection, using the built-in wireless LAN.
This is how the device looks like after connecting (without the keyboard/mouse):
The time from pressing the “Power” button to the GRUB welcome screen takes barely a few seconds. And the time from selecting the kernel in GRUB to the KDE logging screen takes barely 34 seconds (more accurate performance tests will be shown in the next part of the article).
The keyboard and the mouse work properly, even if they’re almost 3 meters away from the USB adapter. So I can very comfortable use the device from my armchair.
But I can clearly see problems with the fonts. This time they’re way too large. I check the resolution settings and set it to 1920×1080 – this time without any problems. Unfortunately the fonts are still way too big.
In the meantime I can see that the wireless signal is very weak (at least this is what the KDE network manager shows). I can connect to the Access Point only after installing the directional antenna – the signal quality is still on an unsatisfactory level – still are these only 20%, and the connection isn’t stable.
So I decide to use an Edimax wireless LAN, based on the RaLink chipset (RT2501USB Wireless Adapter). I install wicd (KNetworkManager somehow didn’t click) and using this software I configure the wireless connection through Edimax. This time the signal quality is 75%.
The googling shows that the problems with LAN cards based on the AR928X system is very well known. And it’s not the fault of the card, but of the ath9k driver. What’s interesting, the problem can be even solved in the latest kernels. In my case the problem is caused by the kernel 2.6.28-11 (the update to 2.6.28-13 and installing the package linux-modules-backports-jaunty unfortunately didn’t bring any improvements; look description).
I run XBMC and change the resolution to 1920×1080 (menu: settings). After restarting XBMC, the whole thing looks really nice.
I run a few passed tests:
- a slideshow from a pendrive connected to the front panel;
- running an internet radio (the built-in in XBMC possibility of choosing a radio station available at shoutcast.com);
- running a movie from a .VOB file – in low resolution (the file was given on an external USB drive, which had to be connected to a rear slot on the mainboard);
- running a movie recorded with a camera (cards: xD, Compact Flash);
- running music from a WMA file;
- running a weather report.
All test are positive (that is I get as minimum a basic functionality, which I expected from a certain module).
My target is to have the audio signal output through HDMI (TV) or an optical digital output (a Hi-Fi stereo). In the standard configuration the audio is routed on a headphone output.
After shutting down the device I see another shortcoming – the case is very hot. It’s most probably because of a very low air circulation on my shelf, where I’ve placed the device. After running the device one more time I read the GPU temperature (it can be read by the command: nvidia-settings -c :0 -tq GPUCoreTemp) – it’s 65 degree Celsius. Unfortunately I’m not able to check the CPU temperature under Linux (the latest compilation of lm-sensors 3.1.1 also didn’t work).
As for now I can say about the hardware that it’s “linux-friendly”. I’m also very positive surprised by the performance of the whole solution (as well in case of the graphics, as of the processor – more about this comes with the next article).
Concerning the hardware problems, what disturbs me for now, there’s only:
- not properly working drivers for the built-in wireless LAN;
- no possibility of reading from Linux the temperature of the CPU/built-in fan speed.
But after reading some materials in the net, I think a solution for this topics is only a matter of time. Other shortcomings I experienced are:
- resolution problems in the X Window;
- font problem in the graphic environment (DPI);
- a not very intuitive NVIDIA drivers installation;
- a way too uncomfortable method of configuring the wireless LAN (KNetworkManager available in KDE).
They’re not that difficult problems, but for an occasional Linux user, who would like to fast configure his Media Center, they can be annoying or almost even not to solve in reasonable time.
Till now I was able to configure the device in a way, in which it can be relatively easy used. In the next part of the article I will describe some facilities, which can make the work with the device really comfortable:
- running the audio output through the HDMI/digital audio output
- connecting external cooling
- solving the font problem in KDE
- hardware video decoding (movies in Full HD resolution)
- running NAS (using FTP/Samba)
- using hibernation for an efficient run and shut-down of XBMC
- running the remote control of XBMC on iPhone
- running the remote control of the mouse and keyboard on iPhone.