This post will document my new computer, which I assembled last weekend, as well as my experiences with Ubuntu 10.04 Alpha 3 on it so far. I hope that this will be useful for others that want to build a system like mine and for those that want to learn a bit about the latest version of Ubuntu.
For me, the joy of building a computer is that my component choices are virtually unlimited. I can choose from hundreds of cases, motherboards, power supplies, non-volatile storage, optical drives, processors, and add-on cards. Usually, the selection is only limited by physical constraints (a full ATX motherboard can’t fit in a microATX case), not artificial constraints as is often the case in other markets (such as mobile phone manufacturers locking their phones to a single carrier). This quality of computer component selection is a testament to the consumer benefits of competitive markets, as computer hardware manufacturers must compete on features and price, while also working together through committees to create interface standards (like PCI Express and SATA) to ensure that all the components work together. Perhaps one day the operating system and application software markets will achieve the same level of compatibility between components; for now we can only dream.
Here’s the result of my computer component shopping spree:
Each of the above boxes/packages was shipped separately to me, but all arrived by Friday, March 5 (I placed the order the night of Monday, March 1). The bottom box is the case, the top box is mostly empty but for a serial slot plate, and the middle box is the rest. The yellow envelope contains a DVI cable that I ordered on Tuesday after I realized I forgot it in the original order. Thanks to the wonderfully competitive market that is eBay, I got it for about $5 including 2-day shipping.
Case and power supply
Ironically, the most time-consuming part of selecting components was finding a case I liked. The other components had been decided on weeks ago, but I left finding a case to the last minute, not anticipating how difficult it would be.
The primary problem I have with most cases is that they’re larger than necessary. Convention says that a tower must have horizontal 5 ¼” drive bays and use a standard ATX power supply unit (PSU), which is 6 inches wide. Add a little bit of extra room for mounting the PSU and you arrive at 7 inches, the average width of a conventional ATX or microATX case. I chose microATX as there are very few Mini-ITX motherboards for the Core i5 and none of them have the features I want (more on that later).
At first, I searched for alternative case configurations with a standard ATX power supply. One of these is the desktop case, which peaked in popularity in the early 90’s. Initially I settled on the In Win IW-D500T.300BL, as it had full-sized expansion slots, but kept the height down thanks to the re-oriented 5 ¼” bays. However, I later determined that the power supply was non-standard so I would be unable to swap in a better one, making this case unsuitable. There are also slim desktop cases like this one, but they limit you to low-profile add-on cards, which are a hundred times more difficult to find than full-size add-on cards and I wanted to be able to easily upgrade my system.
Other case options with standard ATX power supplies included “cube” cases, like this one, and media center cases, like this one. Cube cases have the motherboard lie flat and place the PSU above the motherboard, reducing the case width, but increasing the height. Despite being short, I felt these cases had far too much wasted space. Media center cases optimize the other dimension, keeping the case very thin while increasing its width by placing the PSU sideways next to the motherboard. However, these cases tend to be very expensive, are very wide, and often use low-profile slots.
So I started exploring power supply standards. Some digging revealed other PSU form factors that were better-suited to a minimalist case. I considered TFX (3.4″ x 2.5″) and EPS1U (3.9″ x 1.6″), but it is hard to find a desktop case that supports these. The Rosewill R379-M appears to support TFX power supplies and is quite slim at under 4″, but uses low-profile slots and is a beefy 16″ deep, which is mostly required to keep the drive bays clear of the motherboard.
In my searching, I stumbled across the Evercase ECE0526, which pushes the limits of compactness for a microATX case. By using the space above the expansions slots for the power supply (see the rear view), this case’s width and height are limited only by the dimensions of a microATX motherboard. The depth is also impressive, at 12.5″. The inside view shows just how tight this layout is. It may even be possible to use the FSP220-60LE 220 watt, 80 PLUS power supply (discussed later), although the depth of that power supply may cause problems. Despite the optimal smallness of this case, I decided against it because there is no space for expansion cards (low-profile or otherwise), it only supports slim optical drives, which can be difficult to find, and I couldn’t find a place to buy one with some brief searching.
I ended up settling on SFX (5.0″ x 2.5″), which improved the selection of cases and power supplies, especially those with full-size expansion slots and 5 ¼” drive bays, while keeping case width in check. Of all the SFX cases I looked at, the In Win BK644.BN300TBL had the smallest dimensions (at 10.80″ x 5.50″ x 12.70″). It was even smaller in volume than the Rosewill R379-M I mentioned earlier, at 754 cubic inches versus the Rosewill’s 789 cubic inches. The In Win case happened to look pretty good, too, with a smooth black front panel free of logos and uncovered ports/bays (these are hidden behind plastic doors with magnetic fasteners).
You can see that it has a single, vertically-mounted 5 ¼” bay and two 3 ½” bays, one of which is hidden. Both exposed bays have doors to keep them hidden when not in use, in addition to a door for the 4 USB ports and audio jacks on the front. There is a blue LED behind the large silver power button that lights the ring around it and a yellow hard disk activity LED above it and to the right (when the case is upright), which is right next to a recessed reset button. I very much appreciate cases that include a reset button as there will inevitably be a time when the OS crashes (especially when you’re experimenting with its kernel) and you will want to quickly return to a working state without holding the power button for 5 seconds.
I swapped out the bundled 300 watt power supply for an 80 PLUS-certified SFX power supply, the FSP300-60GHS-R. In general, I find that bundled power supplies are low-quality; their fans are cheap and can easily fail. Also, I figured that since I’m aiming for low power, I should at least have an efficient PSU. I hope to eventually reproduce the 25 watt system at Tom’s Hardware, which recommends an efficient, low-wattage PSU. Unfortunately, I couldn’t get a hold of an 80 PLUS SFX power supply less than 300 watts (or a bracket for the EPS1U/Flex ATX power supply used in the Tom’s Hardware article); I’m hoping that what I have is minimalist enough. So far my idle power hovers around 45 watts according my Kill A Watt. This might be closer to 25 watts than it seems, since I don’t know Tom’s Hardware’s methodology for determining power consumption figures. Maybe when I have some time I’ll try to pare that 45 watt figure down. This is important for me as I plan to use my system as both a general purpose computer and a torrent/SSH server, leaving it on all the time. The only real issue I have with the FSP300-60GHS-R is that its P4 power connector cable is a bit short. As you can see from interior of the case pictured later, it barely reaches to the top-left of the motherboard. But it still makes it, so the issue is minor.
I’ve been following the latest CPUs fairly closely recently as my primary computer, a Dell Latitude D800 with a 1.3 GHz Pentium M processor, has been proving less and less capable of doing what I want. While web browsing remains snappy with Chromium, watching HD videos (even 720p) is not an option; the CPU simply can’t keep up. The system also limits experimenting with new OSes and doing system-level programming, as a single core CPU is not really suitable for multiple VMs and it takes forever to compile large programs like Wine and the Linux kernel. I figured it was about time for an upgrade, since I purchased my D800 in 2003, when IE’s usage share was 95%, when Firefox was still known as Firebird and hadn’t hit 1.0 yet, and before there was a 2.6 Linux kernel or a distro called “Ubuntu”.
I had been interested in the Core i7 CPUs for a while, as they provided 4 cores (8 threads) of processing power at a reasonable price. Unfortunately for me, Intel did not provide integrated graphics for the i7. That’s why I was excited to hear about the latest generation of Core i5 CPUs, which include a 32nm CPU and a 45nm Intel GPU in the same processor package.
Perhaps I should explain my preference for Intel’s integrated graphics. The graphics market is dominated by three players: Nvidia, AMD/ATI, and Intel. To achieve full functionality on Linux, Nvidia’s and AMD/ATI’s cards require proprietary drivers. Even if I were not opposed to proprietary software on principle (that it should not be used because it does not allow the user to modify it and learn from it), I would be opposed to proprietary video drivers because they have stopped me from fixing performance issues in the past. Specifically, I profiled a particular 2D game and discovered that most of the processing time was spent in the Nvidia driver, which I could not fix. Working on the open source driver might have helped, but it naturally lags behind the proprietary driver, lacking features like second monitor support (essential for using a projector), because Nvidia directs all of their developer resources to the proprietary driver, just like AMD/ATI. As a result, I decided not to purchase Nvidia or AMD/ATI graphics chips for my system. Instead, I chose to use Intel’s graphic chip (available in integrated form only), for which Intel provides open source drivers. Intel has been making these drivers available since 2006.
Some other bonuses of using the 32nm Core i5 include AES instructions (for more efficient disk encryption and OpenSSH transfers thanks to kernel and OpenSSL patches) and much lower power consumption than Core i7 chips, as Core i7 platforms require discrete graphics (which consume more power than integrated graphics) and because they use the less-efficient 45nm process. Some have managed to get a whole Core i5 system to use less than 25 watts while idling. Additionally, all Nehalem chips (including the Core i5) support SSE4.2, which includes the CRC32 instruction. This speeds up checksum operations such as those in the upcoming Btrfs, which I will be migrating to when it becomes stable. Support for the new instruction is already in the Linux kernel. Current AMD processors lack all of these features (and also cannot be used with integrated Intel graphics), which are my main reasons for not choosing one, despite their more attractive pricing.
Interestingly, the mid-range Core i5 670 currently has the highest stock base clock speed (3.47 GHz) of all the Nehalem processors currently on the market. This is higher than even the soon-to-be-released Core i7-980X Extreme, which is the first 32nm Core i7 processor and sports 6 cores (compared to the i5 670’s 2 cores). However, the 8-core Nehalem-EX server chips that will launch this month may have a higher clock. If not, the Core i5 680, scheduled for release in Q2 2010, will certainly take this crown from the i5 670. But for now I can rest assured that my CPU clock is the fastest Nehalem clock out there, however superficial such a designation might be.
Choosing a motherboard was relatively painless. My criteria was primarily based on the range of ports the motherboard provided, rather than its overclocking ability, power consumption, or performance (the latter two vary little between motherboards). Ideally, my motherboard would support HDMI, DVI, DisplayPort, USB 3.0, SATA 6 Gb/s, eSATA, PCI, IDE, and serial. I wanted PCI and IDE because I have a lot of old components around that use them and serial for a serial console in case the network interface goes down and I’m accessing it remotely (a serial console can also show boot loader and kernel messages). Though less widely-deployed than HDMI, DisplayPort is a much more robust interface and is royalty-free so it seems likely to take off; I already use DisplayPort-capable monitors at work. For more information, see DisplayPort versus HDMI. Just as I got FireWire, USB 2.0, and gigabit Ethernet on my D800 7 years ago, I wanted USB 3.0 and SATA 6 Gb/s to future-proof my investment, though SATA 6 Gb/s was less important as few devices are limited by SATA 3 Gb/s’ interface speed. I also wanted an eSATA port so I could access my external 1 terabyte hard drive more quickly; accessing it through the USB 2.0 interface limits the performance.
Of all the options, the Gigabyte H57M-USB3 fit my needs the best. About the only thing missing was SATA 6 Gb/s, which I decided I could add later if I needed it. The ASUS P7H57D-V EVO was another option (it included SATA 6 Gb/s), but it was much more expensive and lacked DisplayPort. The H57M-USB3 is a good deal, and includes a lot of voltage and frequency tuning features that I’m sure overclockers will love.
In retrospect, an H55M-USB3 would suffice for most use cases. It is less expensive, omitting one USB header and “fake RAID” on the the default SATA ports (“fake RAID” is still supported on the two SATA ports Gigabyte adds). Given that I have 10 USB ports hooked up with two USB headers to spare, I doubt most people would miss the extra header.
About the only qualm I have with the H57M-USB3 is that it doesn’t appear to support DVI output in the boot screens. When booting the system with only a DVI monitor connected, nothing appears on the screen. However, the OS can use the DVI port once the BIOS is finished, which is exactly how I have it setup now. VGA and HDMI output are both supported in the boot screens.
With my non-existent overclocking needs, I picked the cheapest 2x2GB RAM I could find. I’ll pick up an internal Blu-ray burner when they come down in price. Optical storage is useful for archiving, as an EMP can wipe out the data on hard disks and SSDs (I might be slightly paranoid). For now my optical drive is an external DVD writer. I chose an SSD for my boot disk as the prices have come down considerably and I wanted to see what sub-millisecond seek time was like. So far I’m impressed, though I admit that with all the new fastness, I’m not really sure which component is responsible for each speedup I experience.
Ubuntu 10.04 Alpha
Ever since I switched to a Linux distribution on my primary computer in 2003, I’ve never looked back. I finally feel in control of my computer (rather than controlled by it) and all of the useful tools that are installed by default have become indispensable (perhaps the best one is a real POSIX shell). With an OEM version of Windows starting at over $100 and Apple’s unwillingness to sell me Mac OS unless I buy their hardware (let alone all of these OSes’ other problems), choosing Ubuntu was a no-brainer.
I’ve chosen Ubuntu over other distros, primarily because of its frequent release cycle and excellent, pain-free hardware support. I will concede that I haven’t tested other distros very extensively, but when I do try them, their defaults leave something to be desired (ie. no syntax highlighting in “view” on Fedora). I like to stay up-to-date with my distro, installing a new version every 6 months, so having defaults that I don’t need to mess with is important to me.
Though the final version is well over a month away, I selected Ubuntu 10.04 for my new system because it was the most likely to support my new hardware, particularly the graphics chip. And I was not disappointed. Ubuntu 10.04 Alpha 3 recognized the Clarkdale GPU immediately, using Intel’s open source drivers, and provided me with full access to the monitor settings through Ubuntu’s default tool (System -> Preferences -> Monitors), rather than some proprietary manufacturer-specific tool like
nvidia-settings. I have successfully used a Dell 1704FPT monitor with VGA and DVI, plus a 37″ Panasonic TC-L37S1 over HDMI without issue. The GPU and graphics drivers have no problem handling a combined resolution of 3200 x 1080 (TC-L37S1 at 1920 x 1080 next to the 1704FPT at 1280 x 1024).
One of my reasons for getting a new system was to be able to play HD videos. The Core i5 does not disappoint. I was able to watch Big Buck Bunny in Theora at 1920 x 1080 using Totem, which consistently stayed between 30% and 50% CPU usage. I also watched a bit of the 1920 x 1080 Dirac/Vorbis version of Sita Sings the Blues, which played smoothly as well, though it used more CPU (around 150%, presumably across two cores), possibly because of a less-efficient decoder or a lower-bitrate stream.
Linux distributions have come a long with since I installed Gentoo on my D800 in 2003. System-specific guides for installing the operating system like the one I used are by and large unnecessary these days. About the only component I actively selected for its Linux compatibility was the graphics chip (and that was only because I wanted open source drivers); I just assumed that the other components would work with Ubuntu, and they did.
There were some quirks getting Ubuntu 10.04 Alpha 3 installed, but nothing I wouldn’t expect from alpha-quality software. When I initially booted the live CD and it prompted me to upgrade the installer, I agreed, but then it crashed at the final stage of the installation wizard. After rebooting to get the old installer version, I found the old installer refused to enter the partitioning step, claiming that I had no space (my drive was unpartitioned). Partitioning the drive myself with fdisk and re-running the installer solved the problem.
After installing and restarting, I was greeted by a blank screen, but could get to GDM’s login screen by pressing Ctrl-F7/Ctrl-F8 a few times. While this should definitely be fixed, it wasn’t a show-stopper for me and it’s the only real issue I’ve encountered with the installed system so far. Update (2010-03-21): I did an
apt-get upgrade today and this problem has disappeared; I suspect it is fixed in Ubuntu 10.04 Beta 1, released two days ago.
Overall I’m quite pleased with the new Ubuntu. The new theme takes some getting used to, but I think it’s for the better. Ubuntu 10.04 ships with Firefox 3.6, a welcome addition given 9.10’s default of Firefox 3.5 and 9.04’s default of Firefox 3.0. I might not even have to install Chromium, as I did on my D800 for speed reasons, since Firefox is super-snappy on the Core i5.
Building a new computer was a surprisingly painless experience for me, despite not having assembled a complete system in about 10 years. The system does everything I expected and is very snappy. I hope this one will last me as long as my D800 did. Here’s a picture of the fully-assembled system next to a Dell 1704FPT 17″ monitor for size reference:
After a week of use, I still haven’t run into any major issues with Ubuntu 10.04 Alpha. There are a couple of UI quirks that I expect will be ironed out before the 10.04 release, but overall is a pleasant operating system experience. I hope that OEMs like Dell will add more systems running Ubuntu to their lineup when the LTS (long-term support) 10.04 is released. The web browser choice screen is a step forward, but it hides the underlying problem: that most users have little perceived choice in operating systems, which is a problem best solved by OEMs taking initiative in providing users with more operating system choices. Perhaps one day we’ll have an OS choice screen (main article), something users should have had years ago.
I’m open to comments or questions about anything in this article. If you’d like to know more about a specific component I selected or if you want to see more photos of particular parts of the system, let me know.