| « Benchmarks: gtk+ engines revisited | Hands on with ebuilds: Abiword 2.7 » |
Hardware hackery
My next bit of tinkering (after a guided tour of hacking up Abiword ebuilds) will be hardware and software.
NewEgg is having a sale, so I just purchased an ATI RadeonHD 4550. This is the cheapest one on the 'net, and it has free shipping in addition to the sale price. And most importantly, it's fanless! And it's got a low-profile bracket!
I've been planning to downsize or "sidegrade" (not upgrade) my main desktop workstation for some time now. Moving to a smaller desktop case saves a few square feet of precious floor space, and it's part of reducing the overall system energy consumption.
I intend to change my computing habits, starting with using less power and quitting 3D games (such as UT2004). So moving to a less capable graphics card is a big step in that direction. As of right now, the radeon and radeonhd drivers only have working 2D acceleration, which is all I expect to need.
The last time I used an ATI card, I was extremely impressed with its 2D rendering speed and flicker-free video playback. Granted, that was an R500 card and the RadeonHD 4550 is an R700 card. However, supposedly its 2D driver is just as good as the code for the older card, so I expect a similar experience. Although KMS and 3D acceleration are nowhere near ready, I don't need them. Working KMS on my Intel laptop is nice, but it's not crucial. Nor will it be for my desktop.
The most important things for my new desktop are good FOSS driver support/performance, silence, and adaptability for case changes. I'm completely spoiled by running nothing but fanless graphics chips. After the terrible experience with the fan on my X1950Pro, I purchased an AC Accelero S1 rev. 2. It made a world of difference! The 4550 I bought today is also fanless, and has a much smaller heatsink.
Which brings me to my next point: adaptability. Sure, I could have just (re)used my X1950Pro, since it already has working 2D and 3D acceleration, and has a fanless cooler, but it also uses more power than even my GeForce. Which makes sense, since the 1950 was a high-end card for its day, and the 7600GT was a low-to-midrange card. In every test I found, the RadeonHD 4550 uses 18W or less at max 3D load, and idles at about 7W. That's outstanding for regular desktop usage.
That'll let me stuff the card and the rest of my computer into a microATX case such as the Antec NSK1380. Or even into a low-profile case like the super-slim desktop form factors. I'll need a new CPU heatsink, possibly even a more modern CPU. My current Athlon X2 is a 2.4ghz 65W chip, but moving down to a 45W chip that's even faster (say, 2.7ghz) saves even more power and heat. That'll let me run my whole system off a tiny, super-efficient, space-saving PSU like the PicoPSU.
And it probably won't stop there . . . I'll probably trade my 160GB RAID1 array for a single SSD, and just be smarter about making more frequent offline backups. The SSD will likely be an OCZ Vertex or one of the other Barefoot ARM-based drives. No sh*tty JMicron controllers for me, thankya very much.
A small, cute new case, a seriously efficient PSU, CPU, GPU, and HDD . . . so that's basically a whole 'nother workstation, but I think it's worth it. Fun, too! The challenge of choosing and assembling parts is the shortest. The longer challenge is reinstalling Gentoo, tweaking the SSD for max performance and longevity, and getting the graphics driver to work.
These last two bits will likely be the trickiest, as the radeon driver seems to work best when using either a .28 kernel or a really recent 2.6.30. However, the later .30-rcX kernels have serious issues with ReiserFS, my preferred filesystem. And only some folks have reported that the latest -rcX versions have fixed the regressions. Ah well. While I've always experienced the best performance with ReiserFS, that's been on normal magnetic drives. Apparently the new hotness is stuff like BtrFS, NILFS, and ext4. Probably end up going with ext4 as I wouldn't entirely trust the first two with my data safety just yet.
Ahhh, hardware hacking. It's so fun, yet it's over so quickly. It's an expensive hobby to keep up constantly, which is why I try to go years between component changes, and spend the intervening time tweaking the software. Will it ever be "good enough?" Time will tell. ![]()
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
6 comments
http://dpaste.com/52404/
This should make it to the overlay soon as well.
Running a git graphics stack? That's not bleeding-edge, that's off-the-edge-and-plummeting-to-your-doom crazy! :D
But I may give it a shot. I do know that I'll need the DRM bits from a specific git branch of the upstream code just for working 2D, as until the filesystem stuff in 2.6.30-rcX is sorted out, I can't use the DRM in there. If I was willing to run a .30 kernel, it would greatly simplify things; I'd just need ~arch xf86-video-radeon and assorted packages. Nothing that isn't already in Portage.
Thanks for the tip though; I'll keep in it mind!
Might want to avoid the OCZ Vertex, it has its own issues:
http://www.techreport.com/articles.x/16848
http://www.techreport.com/articles.x/16979
The Samsung and Corsair (Samsung rebadge) SSDs are the closest to Intel without breaking the bank.
Also, no need to re-install (if you don't want to) most of the time. I personally hate re-installing and pretty much never do. A few Gentoo installs I still have running go back to '03 and started out on oldish P2 hardware (now Athlon X2s, Core2s, etc. with intermediate steps along the way). All of them have seen between 2-4 different MB/CPU/GFX combos over the last 6 1/2 years. It's a little different depending on each boxen's role, but for the most part its just prep a 2nd kernel for your new hardware, remove your persistent net/cd rules, remove any HW-specific services (sensors, hdparm, mdadm or whatever) and move the disk(s). Once booted on the new hardware w/ new kernel just add services back to runlevels, change CFLAGS and a few other things. Migrating disks/RAIDs is about the same difficulty (not), just a different process.
If GCC auto-vectorization is used (gcc4.2-3ish @ -O3) you may need to recompile with the lowest common denominator beforehand (or mtune instead of march) depending on CPU compat.
It can be a wee challenge the first time moving hardware around but you'll be able to do it in your sleep in no time. Another cool thing about that is you'll gain valuable skills to recover a dead box using entirely different hardware quickly (as long as ARCH remains the same of course).
The next time a non-redundant box dies @ work that needs to be back up asap and you don't have identical spares (happens) you'll have all the skills necessary to recover quickly with the hardware immediately available.
The next step after that is moving installs from physical hardware to virtual machines (+vise-versa) and between entirely different VM solutions. Usually this is only slightly more challenging. I know there are some tools out there that claim the ability to do at least the phys->virt part for you. But IME most of them work poorly at best and hide everything they are doing behind the scenes (which I also dislike).
I've read the TechReport articles, and their conclusions are extremely suspect, as numerous comments and forum threads at TR have discussed. Their methodology is rather lacking; they're even still using HDTach, which has been soundly debunked as an SSD benchmarking tool. (http://benchmarkreviews.com/index.php?option=com_content&task=view&id=270&Itemid=38 et al).
AnandTech had smarter benchmarks and more thorough investigation of the Indilinx controllers a couple of months ago.
Every other site on the 'net that put the Indilinx-based drives through synthetic and real-world benchmarks, including on Linux systems, found them to be spectacular performers, behind only Intel and a few Samsung-based SSDs. I'd be quite comfortable buying one or two, especially as I wouldn't be running them in a severely degraded, artificially heavily-worn condition as they are in the TechReport setups.
Actually, what I'd really like to do is put my main system on an Indilinx drive, and move the heavily-written directories (/var, /usr/portage) to their own cheap, small SSD, to get some nice read speed improvements. I've outlined my plans here:
http://www.techreport.com/forums/viewtopic.php?f=5&t=66642
Thing is . . . I can't seem to find a non-JMicron SSD for under a hundred bucks. Don't get me wrong, the Indilinx-based drives are a good value for their size, but they're also expensive considering I don't need more than 8GB for my intended usage.
* * *
Anyway, as far as reinstalling goes . . . while the base hardware (CPU, mobo) remains the same, thus negating any real kernel changes (except for choosing the NOOP scheduler and a new filesystem like NILFS/ext4/btrfs). moving from a RAID array to a single disk isn't something I really look forward to. If I have to do all kinds of interesting partition/block alignment tricks, filesystem tweaks, and whatnot to the drive to get it ready, I may as well install Gentoo from scratch while I'm at it. I haven't really looked into simple data migration like making a tarball of the entire root FS and copying it, or anything like that.
However, the tips are appreciated. Still, for anything as convoluted as moving down a chain of Athlon XP/AMD64/Core2, I'd rather take the easy way out and make an offline backup of /home, and just perform a new install. It's also good practice. Let's me really create a lean, mean system, having learned some things about optimization and bloat prevention over time. Oh, and reinstalling lets me verify that the handbooks I write are still accurate. :)