[<< | Prev | Index | Next | >>] Wednesday, June 28, 2006
A Fast, Quiet, Affordable machine for Ubuntu Dapper Linux
(Yes, yes, I should paint the optical drives to match.)My Fujitsu Laptop finally kicked the bucket. The hard drive died after being on 24/7 for almost three years, which I guess is the consequence of using a laptop as a desktop machine. Since my research simulations have been begging for more compute power, I decided to build a desktop machine to get more bang for the buck:
- CPU: AMD64 X2 4200+ (dual core)
- MEM: 2G DDR400 dual-channel, 2-3-3-6
- Disk: 500G, SATA 3Gb/s
- Misc: dual display/dual head, 1G net, high quality audio, firewire, usb 2.0, etc.
- OS: Gnu/Linux Ubuntu Dapper 6.06
- Cost: Under $1000 (from Newegg; not including the monitors or optical drives, which I already had)
The machine isn't silent, but it's pretty quiet. Almost all the noise is the stock CPU fan, so I may investigate alternatives for that. The drives are virtually silent, between being quiet to begin with (Samsung Spinpoints) and being suspension mounted (standard option in the Antec Solo). Against the CPU fan, I can't tell for sure how noisy the power supply or case fans are, but my initial impression is that the power supply is nearly silent, and the case fan fairly quiet.
Here are the specific parts:
- Motherboard: MSI K8NGM2-FID Socket 939 NVIDIA GeForce 6150 Micro ATX
- CPU: AMD Athlon 64 X2 4200+ Manchester 2000MHz HT Socket 939 Dual Core
- Memory: CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM DDR 400 (PC 3200) Unbuffered Dual Channel Kit System Memory Model Twinx2048-3200c2pt
- Disk: SAMSUNG SpinPoint P Series SP2504C 250GB 7200 RPM SATA 3.0Gb/s
- Power Supply: ENERMAX Liberty ELT400AWT ATX12V 400W
- Case: Antec Solo Black/Silver Steel ATX Mid Tower
Here are the minor nits and tips, in case anyone is building a similar machine:
- Motherboard: This is a great motherboard for the price. It includes good quality audio, video, networking, USB, firewire, PS/2, and probably a couple other things I'm forgetting, all on-board for $80! For a non-linux look at this board, with lots of specs and info, see this thread.
The only caveats I ran into are: It's a little ambiguous whether it will actually handle the claimed 4G of memory at all, and especially at full speed. Beware also of using 4x512M sticks. But for 2x1G, it's fine. The other is that memtest immediately starts reporting memory errors, and lots of them. But this turns out to be a quirk of the BIOS, and if you turn off Legacy USB support, it will memtest fine (assuming your memory is good, of course), and then you can re-enable it when you're done memtesting it. Don't ask me why it errors only when memtesting but not in actual use.
Also, note if you want to use two monitors, one needs to be DVI and the other VGA. (Happens to be what I had on hand, so I lucked out...)
Memory: I doubt the higher performance memory made much of a difference. I probably could have gone cheaper here. But it works fine.
Case, Power Supply, Disks, CPU: All great. I'm using one 250G disk as a backup of the other, spinning it down when not in use so the two hopefully won't die at the same time.
Ubuntu Dapper installs almost without a hitch. Both the x86 and AMD64 versions work, with the latter running marginally faster. However, I had troubles with Skype under the AMD64 install (it ran, but had problems..) and since that's my primary phone right now I'm running the x86 install.
I used Automatix to get various extras, and in particular the nvidia drivers.
I had to add 1280x1024 options to all the Modes lines in /etc/X11/xorg.conf by hand for some reason.
Under the x86 version, I had to "apt-get install linux-686-smp" to enable the second processor. (Perhaps I should have used the k7 kernel instead -- maybe I'll try that at some point.)
- If you want a backup drive that spins down automatically when not in use, you need something like this in /etc/hdparm.conf:
# Spin down the backup drive if idle for more than half an hour. /dev/sdb { spindown_time = 241 }Beware, however, that Dapper has hdparm disabled by default, so you need to enable it in the System/Administration/Boot-Up manager or the above will have no effect.It took a little futzing with my xorg.conf file to get the middle button working on my particular Logitech track ball (Marble Mouse USB), and while I was at it I set it up so the right-middle button (it has two) turns the track ball into vertical and horizontal scroll wheels, which is really handy. However:
If you want to use horizontal scrolling in Firefox to actually scroll horizontally instead of going forward and backward in the history:
- From "about:config" in firefox, set the following: - mousewheel.horizscroll.withnokey.action = 0 - mousewheel.horizscroll.withnokey.numlines = 2 - mousewheel.withnokey.numlines = 2 - mousewheel.withnokey.sysnumlines = falseThat's about it. The last major issue was getting dual head/dual monitor support working, which took a bit of googling but worked as expected once I got the setup right. The main non-obvious trick was that the "BusID" must be specified in each Device section, as this appears to be what tells Xorg that the two devices are actually two screens coming off the same card (and hence same BusID). I got the BusID by grepping for "PCI:" in /var/log/Xorg.0.log. I haven't tried Xinerama mode (where the two screens behave as one) since at the moment I'm enjoying having one screen with multiple virtual desktops and a second screen with stationary stuff (email, IM, system status, etc.). But in principle that's just one option change since the basic dual-head support is working fine.
Here are the relevant portions of my xorg.conf file, for two monitors and my Marble Mouse. (Note there are other sections I'm not including here, like the "Files" and "Module" sections, so don't use this verbatum.) The single-monitor setup is a subset of this, but really it's only the Modes lines that I had to change from the default.
Section "ServerLayout" Identifier "Default Layout" Screen "VGA Screen" Screen "DVI Screen" LeftOf "VGA Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" # These settings are for the logitech marblemouse # which has 4 buttons but presents itself as a 5-button # mouse with the middle button missing: # LargeLeft/LargeRight/SmallLeft/SmallRight = 1/3/4/5 # # Option "Protocol" "auto" Option "Buttons" "5" # This configuration puts scrolling on the left small button, # and makes the right small button the middle button. #Option "ButtonMapping" "1 9 3 8 2" # This one puts scrolling on the right small button, # and makes the left small button the middle button. Option "ButtonMapping" "1 9 3 2 8" Option "EmulateWheel" "true" Option "EmulateWheelButton" "8" Option "YAxisMapping" "4 5" Option "XAxisMapping" "6 7" # If EmulateWheelTimeout wasn't broken, this might be better: #Option "ButtonMapping" "1 9 3 2 8" #Option "EmulateWheelButton" "2" #Option "EmulateWheelTimeout" "1000" EndSection Section "Monitor" Identifier "VGA Monitor" HorizSync 28.0 - 51.0 VertRefresh 43.0 - 60.0 Option "DPMS" EndSection Section "Monitor" Identifier "DVI Monitor" HorizSync 28.0 - 51.0 VertRefresh 43.0 - 60.0 Option "DPMS" EndSection Section "Device" Identifier "VGA Device" Driver "nvidia" BusID "PCI:0:5:0" Screen 0 EndSection Section "Device" Identifier "DVI Device" Driver "nvidia" BusID "PCI:0:5:0" Screen 1 EndSection Section "Screen" Identifier "VGA Screen" Device "VGA Device" Monitor "VGA Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 15 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection EndSection Section "Screen" Identifier "DVI Screen" Device "DVI Device" Monitor "DVI Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 15 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection EndSectionIf you have any questions or comments about this setup, please go here so others can see them as well.
See Also:
Installing Ubuntu Linux on MSI K8NGM2-FID motherboard with AMD Athlon 64 X2 3800+
Performance of MSI K8NGM2-FID motherboard with amd64, 686, and k7 kernels
[<< | Prev | Index | Next | >>]