The quest for the perfect HTPC
I have been an avid fan of HTPCs for quite a few years now. A whole PC dedicated to only playing back multimedia, emulating old consoles and serving as a central media hub in general was therefore on my wishlist for a long time now. After we acquired our new HD-ready Toshiba Regza back in January, I was finally able to convince demod of the usefulness of such a setup, and we set out on our hunt for the perfect HTPC1).
The basic requirements where sketched out quite fast:
- We wanted to use the HTPC additionally as a NAS and backup system with two SATA drives mirrored via RAID 1 to prevent data loss,
- we needed the option of putting a 5.25” optical drive in there someday 2),
- the PC would have to have enough CPU power to allow full encryption of the storage space, thus we wanted something in the general direction of an AMD64 X2 3),
- AlienSwarm should be playable on the PC as well,
- the graphics card would have to be able to support the maximum resolution of our TV (1366×768) without issues when watching movies, and it would be great if it also offered an HDMI output to connect to the TV without another DVI-HDMI adapter,
- the sound card would have to have an optical SPDIF output to connect it to the existing soundsystem,
- it had to be quiet… very quiet,
- it had to fit into our TV rack (which dictated a maximum height of 14.8cm, a maximum width of 49.5cm and a maximum depth of 45cm)
- and – of course – it had to run perfectly under Debian.
Our first idea was to get ourselves a Shuttle SN68PTG5. The built-in board comes with an NVIDIA nForce 630a chipset and an onboard GeForce 7050PV, it has space for two 3.5” drives plus one 5.25” drive, and it could have sat beside the TV rack. But then we read about the noise level those tiny shuttles produce, thanks to their rather loud power unit fans, and the search for something different started.
Finding the right parts
The decision for the harddrives was made fast, we settled on two Samsung HD753LJ with 750GB. Both our workstations run Samsung HDDs now for quite some years, and we made good experiences with these drives.
For CPU and Cooler we settled on an AMD Athlon X2 BE-23504), which has a very low power consumption while still being quite fast, and a Scythe Shuriken, which was advertised as being low-profile and seemed to be a small yet effective cooler for AM2 CPUs.
After reading some reviews (especially this one), we decided on an Abit AN-M2HD MicroATX board. It has the same NVIDIA nForce 630a chipset and the onboard GeForce 7050PV as the Shuttle we first looked at, offers both an HDMI as well as a D-SUB graphical output, has an optical SPDIF, quite a number of USB sockets, an optional PCI-E socket if we decided to add a dedicated graphics card later on, and has only passive coolers.
And then came the hard part with the search for the right case. Most cases offered as HTPC cases where horribly expensive and had gadgets included we really didn't need (remote control, built-in graphic display, VFDs without Linux support, etc), were way to stingy in terms of available driving bays, or simply too big. We already feared we'd never find something suitable when – rather by accident – I fell over the Antec New Solution NSK2480 desktop case. It includes a 380W ATX power unit, accepts MicroATX boards, has two 3.5” and two 5.25” driving bays and – very important – it perfectly fits into our TV rack. Additionally, it was the result of a collaboration between Antec and the guys from silentpcreview.com, and the review of the resulting end product sounded like a great case indeed: three thought-through thermal zones, decoupled driving bays, two 120mm fans doing all the work, solid build. We were sold
As input device we decided on the Logitech diNovo Mini, a small palm-sized bluetooth-based Keyboard/Trackpad combination. Additionally, we bought a PS/2-USB-adapter to be able to connect one of our spare full-sized Cherry G83 keyboards and a full-sized mouse whenever the need arises.
As we had read that the included 120mm fans of the Antec case were the loudest parts of the whole case, we wanted to put two Scythe Slip Stream 120mm with 800rpm into it, but those where on backorder and so we switched rather spontanously to two Scythe Kama PWM 120mm – which somewhat was not one of our better ideas, as it turned out that the mainboard had no PWM controlled fan ports and the fans were way too loud when run without PWM. The logical consequence was a temperature-controlled fan control, and we soon stumbled over the T-Balancer miniNG. This tiny controller offers two separately controlled three-pin fan ports which can be either set to a specific speed manually, or controlled via temperature in three different configurations: to hold a target temperature, to step up to maximum speed once a given temperature is reached or to linearly increase speed based on increased temperature. We combined this with two vibration absorbers for the case fans to further reduce any noise they might produce.
So, this is what we finally ordered:
| Part | Product |
|---|---|
| Case | Antec New Solution NSK2480 |
| Case fan | 2x Scythe Kama PWM 120mm |
| Mainboard | Abit AN-M2HD |
| CPU | AMD Athlon X2 BE-2350 |
| CPU fan | Scythe Shuriken |
| Harddisks | 2x Samsung HD753LJ |
| Fan controller | T-Balancer miniNG |
| Keyboard/mouse | Logitech diNovo Mini |
| Assorted connection material | 2x 30cm 3pin fan cable extension, 1.5m HDMI cable, 1.5m Toslink cable, 2x vibration absorber, PS2/USB adapter |
Yes, there's no RAM mentioned in this table, the reason being that we had a fitting bar of 1GB “lying around”5). All in all, the whole HTPC including the diNovo weighed in at about 590€ including shipping (480€ without the diNovo, 380€ without the diNovo and just one HDD).
Putting it together
The installation of the components was straight-forward and a joy in the Antec case we bought. Both hard disks were mounted vertically in the decoupled HDD bay and can swing freely thanks to the silicon mounting brackets. Installation of the CPU cooler made me cringe a bit, as it was necessary to lock two mounting brackets rather tightly, and I feared the pressure produced by this tight fit would break the die. But when everything finally snapped together, the CPU still worked fine
As expected, the included case fans were horribly loud, and we immediately put in the Kama PWMs. The fan controller was installed into one of the two 5.25” driving bays and we connected both case fans to it via the extension cords. The temperature sensors were attached to the CPU cooler and between the two HDDs. We manually set the fan closer to the front to about 50% of its top-speed6). The fan closer to the back was coupled with the CPU temperature sensor and usually doesn't run but steps up to about 80% once the CPU reaches something around 45°C. We experimented around a while until settling on this setup, as all other variants were too noisy for our taste or simply didn't work (apparently the T-Balancer miniNG got some issues here or we got a semi-defective model). Additionally, we didn't use the PWM feature of the fan controller, as it made the Kama fans even louder than the stock fans, and instead used the analogue throttling method.
While trying to setup a WinXP/Debian dualboot system on the machine, we ran into some issues with the Debian installer. Debian stable refused to detect the second HDD, prolly due to some trouble with the NVIDIA chipset. The Debian testing installer on the other hand did detect both HDDs properly, but killed the Windows partition each time we tried to setup a LUKS in the RAIDed7) storage partition of the drives. We finally solved this by simply reinstalling Windows after the Debian installation went through.
It turns out that our TV does not support its native resolution on the HDMI port, therefore we currently have 1280×720 configured as output resolution for both the XFCE-based desktop on virtual terminal 7 as well as Freevo on virtual terminal 9. This generally makes for a good picture, when working with a lot of text (e.g. while browsing sites) it looks a bit icky though. We so far did not have any success achieving native resolution via D-SUB.
SWAP and most of the HDDs are encrypted, SWAP using /dev/random for key generation, which makes suspending the machine impossible but requires no key entry at boot time. The storage space gets mounted on demand, using a password entered via SSH on one of our workstations. Thus, the machine can boot without anyone standing by to enter passwords. Poweron and poweroff are accessible on our workstations with just one click as well, thanks to a couple of shell scripts and the wonderful invention of wake-on-lan.
Getting the diNovo to run first proved to be a bit difficult, but turned out to be rather straight forward once we understood the whole bluetooth-keyboard-handshake-thingy. In the end we only had to press the sync button in the battery compartment of the diNovo and emit a sudo hidd –search on the HTPC for it to find and sync with the keyboard. Using a different Bluetooth dongle than the one included8) even gave us a functioning trackpad, which refused to work with the included dongle from Logitech. Setting HIDD_ENABLED=1 in /etc/default/bluetooth gave us a functioning connectivity between the diNovo and the HTPC even after a reboot
.
Conclusion
All in all, we are very satisfied with our HTPC/NAS/backup server. The noise it produces is still audible, with the HDDs being the loudest part of the whole PC (different SATA disks might produce better results here, and in the future Solid State Disks might be an option – once they get bigger and cheaper that is) and the PSU coming in second. The general background noise of the room is usually louder though, and when watching movies (even with silent parts), it doesn't bother me. YMMV
The power of the onboard graphic card is sufficient for the usage scenario of the PC, it was pushed past its limits though by a quick test with Command&Conquer 3 – an expected result of course
But it's certainly sufficient for playing AlienSwarm (although the proprietary NVIDIA drivers currently have certain issues with the underlying UT2k4 and cause some weird effects which don't disturb AS gameplay).
Reading speed via the gigabit link from the encrypted storage partition is around 65MB/s (and puts full load on both cores), writing speed averages at about 37MB/s (measured with ncsend and ncrecv). Via NFS we got reading speeds of 50MB/s and writing speeds of 24MB/s. This counts as “sufficient” in my book
The whole system runs very cool, with the CPUs usually around 32°C idle and stays below 50°C under load thanks to all the fans, also the harddrives run both around 35-39°C. The CPU fan proved to be very efficient in cooling down an already hot CPU when spinning up, but usually runs at something around 400rpm, producing no audible noise even when your ear is just 2cm away from it. The BIOS settings used for FanEQ can be found here.
Pictures
To close this very lengthy post, a couple pictures of the HTPC follow (click to enlarge), enjoy
| Topview of the case. You can see the three compartments for PSU, mainboard and HDDs that make up the thermal zones. |
| The CPU cooler with its 100mm fan, and the two 120mm exhaust fans on the side. |
| The fancontroller. |
| Looks nice in the dark |
| Closeup of the HDD cage. You can see the white silicon mounts decoupling the drives from the cage. The bottom mounts are designed equally, allowing both HDDs to swing freely to a certain degree. |
| The Antec has a very clean front which looks nice in the TV rack. |
| Freevo running on the HTPC. |
| Of course, we also got an XFCE desktop available on another virtual terminal |
md as the onboard-RAID-controller of the board is just a fake HW controller anyway












Discussion