tHog

Hoo

This machine has been updated enough to warrant a new page. This old page is still available for hardware reference.

Gentoo Linux
1machine2gpus

Intro

A nearly fanless server and media center (replacing the old one) with a single 12-cm 7-volt fan, and components designed for passive cooling.

BIOS/Grub bug -> LILO

I struggled for a couple of hours to get my prebuilt system to boot. Every time the Grub prompt was about to show up, the system rebooted. The same thing happened with a Grub boot CD, but Live CDs booted fine. Thus the problem was narrowed down to Grub itself. Live CDs use Syslinux, but for ordinary HD booting there is the good old LILO, which is what I currently use.

Back in the day, some machines failed Grub because of ancient HD access methods. In this case, the CD fails too, and in the era of SATA/AHCI the problem should be somewhere else. Perhaps a future BIOS update will fix this, or there is some obscure BIOS setting I have yet to find. Or perhaps a Grub option. A BIOS update on 2010-11-03 did not bring about any change, it was likely the same as the stock version.

Linux drivers

CPU temperature monitorcoretemp, ISA buslm_sensors
CPU frequency scalingp4_clockmodpowernowd or similar
Ethernetr8169
Integrated graphicsi915
SATAAHCISee below
SoundIntel HDA, Realtek implementationmodel=3stack-dig
WLANath9k

CPU frequency scaling

Apparently, many Atom processors have Enhanced SpeedStep for proper frequency and voltage control, similar to Pentium M and the various Core series. However, this one does not. I guess it is OK to waste power and generate heat just because it is a 'desktop' model :-/

However, there is still the old P4 clock modulation. It is not really a frequency scaler, more like throttling by skipping clocks. (There is also a separate sysfs interface for throttling, which achieves the same goal.) Due to the high switching latency, dynamic conservative/ondemand governors do not work, and a userspace daemon like Powernowd is required.

In my case, powernowd recognizes all four logical CPUs, but only the first core is affected. That is still better than nothing, and it is responsive enough at the default polling interval of 1 s.

Open source and OpenCL on Radeon

At the moment (2010-10-31), binary drivers are needed to use OpenCL and many other features of the Evergreen series of GPUs (HD 5xxx). However, AMD is open about the specs, and free drivers are well on their way. Thus buying a Radeon supports an OSS friendly business. Moreover, Radeons are generally faster for integer work, compared to Nvidia cards of similar wattage and GFLOPS.

The binary drivers are available on Gentoo as ati-drivers, and there are instructions available.

Video decoding on Radeon

[2011-03-02] Works with libva (in Portage), xvba backend and mplayer-vaapi. There are some limitations, for example adding black bands for subtitles does not work, and there is some display tearing. Using multiple cards does not work quite smoothly, but on a single GPU it generally does the expected.

x11-libs/xvba-video is in portage since 2011-04-26, but the above site may have more current drivers.

However, CPU decoding up to at least 720p H.264 is also smooth, when using mplayer2 (formerly mplayer-uau), without any of the above issues.

SATA

The motherboard has 6 onboard SATA ports and one eSATA. Two of the six are regular ports driven by the Intel chipset. The remaining four are advertised as a RAID, driven by a JMicron chip. Apparently, the chip only has two ports, one of which is the eSATA, and the other going through a port multiplier to the four RAID ports. Configuring the ports as individual drives may be tricky at the moment.

Currently, the HD is connected to the Intel ports, and the DVD drive to one of the "RAID" ports. (A discrete GPU is blocking the other Intel port.) Both work as expected from individual drives. The port multiplier kernel option is not necessary, at least with one drive on the PM.

The DVD drive's SATA connection often drops when other ports are configured, and it needs at least a reboot to get back up. ESATA has worked fine so far.

Hyperthreading on the Atom D510

In the days of Pentium 4, hyperthreading was an ugly hack that may have improved performance by 10% on a good day. Most of the time, it would actually slow things down, as two threads would compete for a single execution unit. Of course, a sensible person never bought a P4, so I have no first-hand experience on those ;)

The Atom is a different beast. The in-order design may deserve some criticism, and it keeps the pipeline rather sparse. However, this means more opportunities for filling those bubbles using HT, and it actually seems to work. In some cases, I seem to get about 50% improvement, while some cases show no effect. Most notably, mplayer2 shows a drastic improvement over vanilla mplayer, though it does improve performance on a single-thread CPU as well.

The D510 has two x86-64 CPUs with two-way HT, so the OS sees four CPUs. Intel likes to name a wide range of processors with the same name, and you have to be careful with model numbers so you do not end up with an ugly old x86, for example. Most Atoms do not have virtualization either, and neither does this one.

Graphics limitations

The integrated HDMI is limited to a maximum resolution of 1366x768. Moreover, this must be chosen from BIOS, as it appears as a fixed-resolution LVDS panel. The integrated VGA also has a weird resolution limit, though higher than the HDMI. These seem like marketing choices rather than technical limitations; an older Intel GPU in my other machine handles higher resolutions just fine, though it has similar LVDS quirks.

As of 2012-12-20, I have moved on to Linux 3.7.1 and latest (v12) fglrx drivers. Version 11 is still faster for Bitcoin/Litecoin mining on the HD5870s, so I keep a patched ebuild available (though only up to Linux 3.6.x for now). I use the AMD APP SDK version 2.5

Using the Intel graphics simultaneously with fglrx is impossible, because Intel requires KMS, but fglrx does not allow it. At the moment, it would be possible with the opensource Radeon drivers, but OpenCL is still not very practical.

Furthermore, the integrated graphics should be disabled in BIOS to get the fglrx setup working.

About the name

"Hoo" is an imaginary exclamation with Asian connotations. It may also be the name of that Asian guy who, unbeknownst to you, lives somewhere in your apartment.


Risto A. Paju