Sunday, July 10, 2011

Sound through HDMI and an nVidia GeForce 210

Continuing on from the previous post about my new HP Microserver, I was mainly interested in seeing how the CPUs did playing a HD movie. Watching the CPU load while playing back a H.264 preview and it wasn't as bad as I expected: both cores sat around 30-60% usage, which includes background system tasks. For the usage I expect of my media server this is sufficient, it's rare that it's playing any video at the same time as anything else. It's also worth mentioning that considering the vast range of formats of most of my media it would be highly unlikely if even the majority would benefit from much offloading to the GPU, however it would be nice to have, so I was still keen on a graphics card with the necessary features.

Considering the space inside the Microserver and the positioning of the PCIe slots, I've got a rather restrictive list of graphics card requirements:

  • heat sink cannot be “thicker” than the width of a PCI slot
  • low profile
  • nVidia (Linux drivers), preferably with a GPU with good PureVideo support
  • fanless/passive
  • HDMI out, but would settle for DVI

After a bit of searching and lots of squinting at images of cards trying to determine how high the heat sinks were, we found a range of Zotac GeForce 210 cards that fit the bill. The GT210 is one of the first chips to have nVidia's latest PureVideo technology (although now superseded by generation 5 and the GT520). It has a low form factor face plate replacement in the box and the heat sink is the same thickness as the slot. The card also has a HDMI port so can be my sound card as well. The exact model I ended up ordering was the Zotac ZT-20309-10L GT 210 512MB DDR3 LP Silent for £34. I would have preferred a 1GB RAM model but due to availability in the region I settled on the 512MB.

Installing the card was trickier than I thought. There's some annoying bits of metal at the back of the Micro case that the top of the graphics card's face plate was hitting. Had to bend the metal out of the way with a thin screw driver to get the card to slide back properly. Aside from that, the heat sink fits snugly along the side of the case.

HD video play back performance appears unchanged. This could be for several reasons: first off I've only attempted some very basic tuning of Ubuntu and VLC, there's surely many things I haven't tried. Secondly the format of my test MPEG-4 video may not be one that nVidia's PureVideo can offload. More importantly for me at this time is sound: Ubuntu is not playing out of the HDMI audio controller.

Some research and a lot of time later (this project was shelved for a few weeks), I've got Ubuntu playing out the nVidia audio controller. The XBMC wiki and Arch Linux forums contained the necessary tips, namely the installation of the ALSA sound modules, setting the correct options for the snd-hda-intel kernel module and loading the ALSA module into PulseAudio. The probe mask has ALSA using the nVidia codec of the card:

luke@nexus-micro:~$ grep snd-hda-intel /etc/modprobe.d/alsa-base.conf options snd-hda-intel enable_msi=0 probe_mask=0xfff2

Reboot or rmmod / modprobe, then see what device ALSA detects:

luke@nexus-micro:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1

Subdevice #0: subdevice #0


ALSA says Card 0 Device 3 so that goes into PulseAudio :

luke@nexus-micro:~$ grep alsa /etc/pulse/default.pa load-module module-alsa-sink device=hw:0,3

And done. Next I'll be looking more into video playback performance and maybe doing a disk swap from old media server to new media server.

HP ProLiant Microserver for my new media server

Some months ago a few of us at work bought a HP ProLiant Microserver after HP were advertising a £100 cash back - 4 HDD bays, 1 optical bay, dual core Atholon II 1.3 GHz, 2 RAM slots, 1 PCIe 16x, 1 PCIe 1x and an internal USB socket. The storage potential is huge: convert the optical drive bay into a fifth 3.5” slot or maybe even several 2.5” if you are smart, boot off the internal USB slot and you've got a very cheap system that can hold 5+ HDDs.

I immediately thought of replacing my current media server with something a lot smaller and lighter. There's nothing wrong with the current one at the moment, it's even got newish 2TB disks, but it's getting on 3 years since I built it and I worry about losing my collection of music that I never listen to and the movies and TV that I never watch. Throw a fanless nVidia graphics card in there with a HDMI port and I've got a video and sound card all in one. If only a DVI port was available, a sound card could be put in the PCIe 1x slot, or worst case a USB sound card.

A few of us were stupid (including me) and bought the 160GB HDD version which is probably not covered on the cash back scheme (I don't think anyone's tried yet), but it was still only £189 for a decent amount of hardware.

The little box arrived a few days later and I'm happy with it for the price: sleek and subtle enough case for a living room, four front USB ports and two rear. An on board VGA socket, Gig Ethernet and a large slow-RPM fan at the back for ventilation to the disks. There are some chassis screws in the front door for adding extra disks (thoughtful) and there is also zero disk cable management: the SATA disks plug directly into a SAS backplane that is connected to the motherboard.


Here it is next to a Sony Vaio and 24" BenQ monitor for size comparisons.

There was some discussion at work about the power of the CPUs. The dual core Athlon II is fine for a small office file server, but how would it hold up decoding HD movies? A GPU that supported nVidia's latest PureVideo to offload as much of the decoding as possible would be helpful. Watching movies would then be less affected by other tasks the Micro is doing, in other words there would be no: “Luke, the movie's playing really slow, fix it!”.

So, the first thing I did was put Ubuntu 11.04 on the internal disk to play around with the hardware. It doesn't come standard with an optical drive and there's no PATA port (all my old PCs have PATA optical drives so no chance of salvaging one) so used a USB stick to install off. As I was poking around the optical drive bay I noticed it might prove to be a bit of a mission to get power and data cables up there. I didn't play with it too long though, there might be more avenues for cable management if you disassemble the case further.

First criticism: I'm not super keen on the level of noise at the moment. I've only got the 160GB HDD that it came with plugged in and it is about as noisy as my current media server is now with 4 HDDs. I half expected this though, I built the tower to be silent - lots of rubber feet for the disks and rubber seals on the tower chassis. It remains to be seen how well the Micro chassis holds up noise wise with all four disk bays full. Discussions at work suggest that using low power HDDs will go a way to reducing noise. I've also not looked in to lowering the fan speed. Final solution is to crank up the volume in VLC.

Secondly the internal space is very tight. The motherboard sits on the bottom and the PCIe 16x slot is closest to the side. This means that any card you put into this slot can't be much wider than the width of a PCI slot (about 1.5 cm?) or it will either make contact with the side of the case or physically won't fit at all. Finally the PCI slots are low profile so the card can't be too tall or needs to have an adjustable / replaceable face plate.

Here ends my little review of the HP ProLiant Microserver, I continue on about graphics card purchases, video play back performance and getting sound out of the HDMI port.