Update on Home Media PC

I built a home media PC last October using an Asus Pundit-R "booksize" computer and Ubuntu Linux. You can read about the saga in my home media PC category.

Where we last left our story, there were two remaining items on my "less than ideal" list: the system was noiser than I'd like and hibernation wasn't working.

I have some better understanding—no progress—to report on the noise issue. The system is still louder than I'd like. It's not as loud as, say, a Sony Playstation 2, but it's still annoying to me. After all, people typically don't try to play André Segovia classical guitar music on a PS2.

I may be stuck and I suspect the CPU may be the culprit. I built the system with an Intel Celeron D 335 (2.8GHz) Prescott processor. It seems the Prescott architecture is notorious for heat and power issues. I wish I could swap it out for a Celeron M (Dothan) processor. The "M" stands for mobile (as in built for laptops), and they sound like great processors: zippy on the MIPs and stingy on the watts. (My Dell Inspiron 600m laptop uses a Pentium M and it kicks butt relative to its clock speed.) Unfortunately, it appears even though the Celeron D and Celeron M processors are both "Socket 478" packages, they are not plug compatible. (I've seen the notation "Socket 478M" to distinguish the latter.)

It's times like this I wish I had a good tweaking motherboard—not to overclock the processor but rather to underclock it and slow down the power burn.

Now, on to the good news: I got hibernation to work. Actually, the system would hibernate correctly—the problem was with resume. The system would resume alright into text mode, but would hang when it tried to enable graphics. My dilemma was that the ATI proprietary fglrx driver doesn't support hibernation, but the open source ati driver doesn't support the TV output.

The solution I found was to use the dumb vesa frame buffer driver. That gives me a display without video acceleration, but I really don't need it for typical use. The only thing remotely graphically involved I do is visualizations for the music player, and that continues to work fine on the vesa framebuffer.

Here are the steps I performed to make this work:

  • Make a backup copy of the /etc/X11/xorg.conf file.
  • Run sudo dpkg-reconfigure xserver-xorg
  • When asked to "autodetect video hardware" select "no".
  • Select "vesa" driver.
  • Pretty much take the defaults. The only place I didn't was when asked whether to use the "kernel framebuffer device interface". The default was "no" but I selected "yes".
  • When asked for "video modes you would like the X server to use" I selected 800x600 and 640x480 (i.e. turned off 1024x768).
  • I selected the "medium" option for "selecting your monitor characteristics".
  • Then, I selected an "800x600 @ 60Hz" monitor.

With the configuration complete I restarted X and verified that the TV-out was still working correctly. Then I ran sudo /etc/acpi/hibernate.sh and watched the machine hibernate. When I rebooted the machine it found the suspend image, loaded it up, and brought me right back to where I was.

The results are great. Now, when I want to listen to music, it takes just 35 seconds for the computer to return from hibernation. The cold boot, by comparison, takes about 1:40—that's about 60 seconds to boot Linux and 40 seconds to start the KDE desktop. This is a significant improvement.