I have pieced together two Sandy Bridge machines. This entry contains my notes on the two machines. Mostly for myself to refer back to later, but it might come in handy for others along the way.
I went scouring slickdeals and other deal sites for most of these components, so there are some mismatches. Like the slightly mismatched ram in the second machine, and the fact that I am using a 2500k in an H67 (B2!) board. No real point in an unlocked cpu in a locked board, but the k was cheaper than the non-k at the time, and who knows, I could swap the motherboard. And yes, it is a B2-stepping board, so the SATA2 ports are iffy. But since I am not using them it doesn't bother me.
Using 11.04 and following the instructions for building a bootable USB stick from http://www.ubuntu.com/download/ubuntu/download installation was trivial.
On the i7 box I am using the M4 SSD as my boot and OS drive and have /var on the two 2TB drives in Raid0. It wasn't super obvious how to tell the Ubuntu installer how to do that during the install, so I just did it afterwards with:
mdadm --create /dev/md0 --chunk=128 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
I tend to be rather anti-GUI for OS admin stuff, but I have to confess I used "Disk Utility" for everything other than creating the actual /dev/md0.
Modern Linux kernels have TRIM support, but you still need to tell it to actually trim. In my /etc/fstab I have:
UUID=65da1033-347d-4b9a-a660-312cb2f33ac0 / ext4 discard,noatime,errors=remount-ro 0 1
UUID=6f473b40-3ec0-419d-81b3-f77e7cc6dc08 /var ext4 noatime,errors=remount-ro,user_xattr 0 2
And no, I don't actually have a swap partition. Swap seems like an outdated concept to me. I have 16G of ram in this box. If it runs out I'd rather have it die dramatically than start swapping on me. It's a dev box, not a production server.
This gets a bit more interesting. After running sensors-detect coretemp works out of the box on Ubuntu 11.04 which gets me:
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +37.0°C (high = +80.0°C, crit = +98.0°C)
coretemp-isa-0001
Adapter: ISA adapter
Core 1: +37.0°C (high = +80.0°C, crit = +98.0°C)
coretemp-isa-0002
Adapter: ISA adapter
Core 2: +34.0°C (high = +80.0°C, crit = +98.0°C)
coretemp-isa-0003
Adapter: ISA adapter
Core 3: +39.0°C (high = +80.0°C, crit = +98.0°C)
but nothing else. I want fan speeds, voltages and the other temperature sensors, but the kernel driver doesn't detect the nct6776 chip correctly. However, there is a fixed version here: http://roeck-us.net/linux/drivers/w83627ehf/. Grab that, make install and modprobe it and I now get:
nct6776-isa-0290
Adapter: ISA adapter
Vcore: +0.96 V (min = +0.94 V, max = +1.32 V)
in1: +1.85 V (min = +0.90 V, max = +1.15 V) ALARM
AVCC: +3.26 V (min = +2.98 V, max = +3.63 V)
+3.3V: +3.26 V (min = +2.98 V, max = +3.63 V)
in4: +1.01 V (min = +0.90 V, max = +1.10 V)
in5: +1.70 V (min = +0.00 V, max = +0.00 V) ALARM
3VSB: +3.42 V (min = +2.98 V, max = +3.63 V)
Vbat: +3.28 V (min = +2.70 V, max = +3.30 V)
fan1: 1724 RPM (min = 200 RPM)
fan2: 1945 RPM (min = 400 RPM)
SYSTIN: +31.0°C (high = +38.0°C, hyst = +35.0°C) sensor = thermistor
CPUTIN: +30.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
AUXTIN: +22.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
PECI Agent 0: +33.0°C
cpu0_vid: +2.050 V
In addition to the previous coretemp sensors output. Of course, the default limits and labels aren't going to match, and it is only showing 2 of the fans which looks to be a chassis fan (fan1) and the cpu fan (fan2). Alternatively you can install the newer 2.6.39 kernel which has this updated nct6776 support in it:
sudo add-apt-repository ppa:kernel-ppa/ppa
sudo apt-get update
sudo apt-get dist-upgrade
But you still don't get access to all 5 fans. A really hackish way to get all 5 fans is to do:
sudo rmmod w83627ehf
sudo isaset -y 0x2e 0x2f 0x1c 0x3
sudo isaset -y 0x2e 0x2f 0x24 0x1c
modprobe w83627ehf
but it is a bit dangerous poking around in your sensor chip like that. I am hoping a future ASRock bios will address this since it seems to be a mistake in how they are setting up the nct6776 chip. I also need to write an /etc/sensors.d/nct6776 file to set the labels and limits properly once I figure out what these are. I will update this when I do so.
Here come the really bad news.
[ 9393.599237] xhci_hcd 0000:04:00.0: Unknown completion code 192 for reset device command.
[ 9393.599243] usb 5-2: Cannot reset HCD device state
[ 9393.599246] hub 5-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
[ 9393.599278] hub 5-0:1.0: unable to enumerate USB device on port 2
Both the H67M and the Extreme4 Z68 ASRock motherboards use the Etron EJ168A USB 3.0 host controller. There is no support for this controller in the Linux kernel as of kernel version 2.6.39. I assume it will eventually be supported, but this was a definite lack of research on my part. Currently for the best Linux support you want a board with the NEC USB 3.0 controller on it. ASRock and Gigabyte boards all use the Etron. Asus has switched to ASM for their latest z68 boards. The only z68 board I can find with a NEC controller is the MSI.
Despite the USB 3.0 disappointment, the machines are incredibly fast. Especially the i7 with the z68 board. It runs Handbrake like you wouldn't believe, although even without overclocking it (yet) the CPU can easily hit 50°C when I am hitting it hard, so something other than the stock Intel CPU cooler might be needed. And the M4 SSD makes rebooting something I don't even think about anymore.
I also like the new Unity interface in Ubuntu 11.04 along with the top-bar indicators.