Games A Quick Review of Dragon Age: Origins for PC

0 Comments

I bought a boxed copy of Dragon Age: Origins and played as a female Dwarf Noble warrior named Theona (because my son thought she looked like the character from Shrek). I spent over 105 hours in Ferelden exploring over 90% of it and finished at level 22. I used the longsword Topsiders Honor for much of the campaign and, with few exceptions, my traveling NPC companions included Alistar (Templar/Warrior), Leliana (Rogue), and Wynne (Healer/Mage). Here are my quick thoughts on the game…

Pros…

The title – Probably the best thing about Dragon Age: Origins is that it doesn’t have a “2″ in the title. In an era where big publishers ride the sequel horse until it dies starving in the desert called mediocrity (Call of Duty I’m looking at you), it’s refreshing to see some new “intellectual property” in the gaming world.

The story – Bioware’s RPGs are highly praised and successful for their story telling, and Dragon Age: Origins certainly maintains this pedigree. Simply put, this is probably one of best – if not the best – RPG I’ve played.

The combat – Combat was action-packed, reminding me of BioWare’s Knights of the Old Republic. Every encounter was a heated skirmish between your party members and usually large packs of enemies. Like many of BioWare’s RPGs, you’re able to pause the game at any time to give orders to your henchman.

Cons…

Textures – While I found the story and combat best of breed, some of the graphics leave a lot to be desired. Dungeons, structures and towns for example look great for the most part, while other locations – outdoor scenes in particular – are just damn ugly. My theory is that Dragon Age: Orgins was in development for so long that it’s likely Bioware just didn’t get around to going back and optimizing some of the game content that was created first.

The loot – If you’re looking for a “lootapalooza” in every dungeon or building you fight through, this is not the game for you. Special weapons, armor and even health poultices are few and far between. Of course, some would argue that this is a good trait – it makes you really appreciate the good loot when you find it. But, if you’re one of those players that likes to constantly swap out old gear for new, you may be left less than satisfied.

Combat and companions – Some of the mechanics of combat that make the game great can also be a pain in the ass. Every battle is a full on skirmish, usually with your party outnumbered. To make matters worse, melee enemies converge quickly and surround your position making the combat close and cramped. This makes it difficult to spread out and fight or use tactics like pulling. I found myself constantly hitting the space bar so I could reposition my companions, health them up, etc. This resulted in a kind of chess game and really interrupted the natural flow and pace of the combat for me. Also, the shear amount of tweaking you can do to the tactics used by your comanions is staggering. As a result, I found myself constantly tweaking, worrying whether or not I had the right tactics set up for each companion in each encounter. Again, just another disruption in the natural flow and pace of the game for me.

Tips…

Healers are good – I recommend using Wynne for healing and buffing. She does a great job of managing herself, stays out of harm’s way, and will help save on those few and far between health poultices.

Ahh them Rogues – If you’re not playing as a rogue I recommend taking one along in your party. Not only can they open chests (which contain some of the better loot and health poultices) and spot enemies if setup correctly but many of their skills (“Deadly Strike,” “Below the Belt”) will be a huge help in combat.

Revenants must die – A revenant is a “corpse possessed by a demon of pride or of desire…” Whatever. It is, however, one of the toughest damn things you’ll face in the game. There are ten of them in total, four of which are involved in a quest called “The Mages Treasure.” Bring down those four and you’ll have yourself the “Juggernaut” armor set, some of the best armor in the game.

It’s okay to be a weenie – Combat, especially early in the game, can be very tough. I recommend embracing your inner noob and playing the game on “easy” until you get the hang of tactics and positioning.

Tags: ,

Networking How to Install and Configure dnsmasq

0 Comments

This post will describe how to install and configure dnsmasq on a Linux- or Unix-based host. Once configured, you’ll be able to use dnsmasq to provide DNS and DHCP services in your home network.

So, why do you even need dnsmasq? Afterall, your ISP provides DNS and your home network gateway/router likely provides DHCP service for your network, right? Perhaps the best way to answer then is to explain the problem I was trying to solve. In my home network I would typically assign a static IP address to each host on my network, and then use its host file to resolve the host’s name to the IP address it was assigned. This approach allowed me to easily communicate between these hosts by simply typing their name rather than trying to remember their static IP address. However, as the number of hosts on my network started to grow, configuring static IP addresses and constantly updating the host files became unwieldy. dnsmasq solves this problem.

dnsmasq is a small, lightweight, and easy to configure caching DNS proxy and DHCP server targeted at small or home networks. It can serve the names of local hosts which are not in the global DNS, and its DHCP server integrates with its DNS server to allow hosts with DHCP-allocated addresses to appear in the DNS along with names configured either in each host or in its configuration file. dnsmasq supports static and dynamic DHCP leases and even BOOTP/TFTP for network booting of diskless hosts. dnsmasq is opensource software and is distributed under the terms of the GPL. Supported platforms include Linux, *BSD, Solaris and Mac OS X.

The versions for the software used in this post were as follows:

  • FreeBSD 7.2 RELEASE and dnsmasq v2.52,1
  • Fedora v12 and dnsmasq v2.51-1.fc12
  • Ubuntu server v9.10 and dnsmasq v2.47-3_all.deb
  • Download and Install

    I chose to install dnsmasq on my Ubuntu server-based machine. However, any host on your network in which you can add one or more external nameservers to /etc/resolv.conf and some or all of your hosts in /etc/hosts, can easily be used for hosting dnsmasq.

    To install dnsmasq on a Debian-based distribution like Ubuntu:

    sudo apt-get install dnsmasq
    

    On Fedora-based distributions:

    $ su
    # yum install dnsmasq
    

    And on *BSD, if you’ve installed the Ports collection:

    $ cd /usr/ports/dns/dnsmasq/
    $ su
    # make install clean
    

    Or, if you would prefer to add the package:

    $ su
    # pkg_add -r dnsmasq
    

    The dnsmasq script will be installed in /etc/init.d, symlinked from runlevels 2-5, and start automatically in a Debian-based distribution like Ubuntu. In Fedora-based distributions, the dnsmasq script is installed in /etc/init.d; however, you will need to create a symbolic link to it from the appropriate runlevel directory in order for it to start automatically at boot time. The easiest way to accomplish this is to use the chkconfig command as root. The following example shows how to add the dnsmasq script to runlevels 2-5 and start dnsmasq in Fedora:

    $ su
    # chkconfig dnsmasg on
    # /etc/init.d/dnsmasq start
    

    In *BSD, the dnsmasq script will be installed in /usr/local/etc/rc.d. To get dnsmasq to start at boot time, add the following line to /etc/rc.conf:

    dnsmasq_enable="YES"
    

    Then start dnsmasq:

    $ su
    # /usr/local/etc/rc.d/dnsmasq start
    

    Configure

    Configuring dnsmasq is straightforward. The various DHCP and DNS options can be passed via command line when starting dnsmasq, or may be set via its configuration file, dnsmasq.conf. I generally prefer to use dnsmasq’s configuration file; it’s very well commented and easy to follow.

    Let’s walk through the changes I made to the default configuration file in order to provision both DNS and DHCP service for my network. Make sure you create a backup copy of your default file before you begin.

    To start, I uncommented the following two options to force dnsmasq to filter my local network DNS queries so they did not reach the public DNS servers.

    # Never forward plain names (without a dot or domain part)
    
    domain-needed
    
    # Never forward addresses in the non-routed address spaces.
    
    bogus-priv
    

    By default, dnsmasq will send queries to any of the nameservers you define in /etc/resolv.conf, however, it will try to favor those it knows to be up. Uncommenting the following setting forces dnsmasq to use the nameservers listed in /etc/resolv.conf strictly in the order they appear. Since I had a pretty good sense of which DNS servers I wanted to use and in what order I uncommented this line:

    strict-order
    

    By default dnsmasq will listen for DNS queries on all network interfaces. I have several interfaces on my server (Hamachi, eth0, eth1, etc.), but only one that is physically connected to my local network, so I uncommented the following line in order to force dnsmasq to listen for DHCP and DNS requests on that interface only – in my case eth0. Simply repeat the line with the another interface name if you have additional interfaces you would like dnsmasq to listen to.

    interface=eth0
    

    The following two lines are optional; however, if used, dnsmasq will append the domain name you choose to the host names defined in dnsmasq.conf and/or /etc/hosts. I use these, but the only real benefit I saw in my network was that I was able to ping devices such as my game consoles based on the names I defined for them using the dhcp-host parameter (see below).

    # Set this (and domain: see below) if you want to have a domain
    # automatically added to simple names in a hosts-file.
    
    expand-hosts
    
    # Set the domain for dnsmasq. this is optional, but if it is set, it
    # does the following things.
    # 1) Allows DHCP hosts to have fully qualified domain names, as long
    #     as the domain part matches this setting.
    # 2) Sets the "domain" DHCP option thereby potentially setting the
    #    domain of all systems configured by DHCP
    # 3) Provides the domain part for "expand-hosts"
    
    domain=home.net
    

    To enable dnsmasq’s integrated DHCP server you’ll need to uncomment the following line and provide the range of addresses available for lease in your network, and optionally, a lease time.

    dhcp-range=192.168.10.100,192.168.10.254,24h
    

    If you have a host on your network that you’d like to have receive the same IP address every lease, then uncomment the following line and provide the host’s MAC address, as well as the preferred IP address – one from the dhcp-range you defined above. For example, I like to have the computer I use most often receive the same IP address. That way I can easily forward ports to it, etc. Alternatively, I could have simply given it a static IP address and defined the name/address combination in the /etc/hosts file of the machine hosting dnsmasq.

    dhcp-host=00:27:0E:02:A8:AE,192.168.10.100
    

    If your network is anything like mine you probably have devices that don’t have a host names associated with them the same way a computer does (e.g., Xbox 360). The following parameter will assign a name to these devices in dnsmasq. You’ll need to provide the devices’s MAC address and the name you’d like associated with it. Here’s an example of how I have this defined in my network:

    dhcp-host=00:0B:E6:05:38:47,wii
    dhcp-host=00:22:48:48:EE:37,xbox2
    dhcp-host=00:12:5A:99:67:DE,xbox1
    dhcp-host=00:04:5A:A5:26:B0,tivo1
    dhcp-host=00:1D:7E:00:E5:58,tivo2
    

    By default dnsmasq assumes that host running dnsmasq is your gateway/router. That wasn’t the case in my network so I needed to specify the IP address of my Cisco gateway/router in the following line:

    dhcp-option=3,192.168.10.1
    

    The DHCP server needs somewhere keep its lease database file. I simply retained the default location chosen by dnsmasq for my Ubuntu server install. Note that this default location will vary depending on which platform your using to host dnsmasq:

    #dhcp-leasefile=/var/lib/misc/dnsmasq.leases
    

    Finally, you can adjust the number of entries dnsmasq will keep in its DNS cache in the following line. I retained the default of 150.

    #cache-size=150
    

    That’s it for configuring dnsmasq.conf. Keep in mind though that the options described here really only scratch the surface. I would strongly urge you to read through dnsmasq.conf thoroughly as there are many more options available for fine-tuning dnsmasq’s numerious capapbilities. But for now let’s move on and consider two additional files, /etc/resolv.conf and /etc/hosts, that are important when configuring dnsmasq.

      resolv.conf

    dnsmasq will consult a several locations when going about the business of resolving your network’s DNS queries. These locations include its internal cache, for any queries it may have already resolved; /etc/hosts, for any static name/IP address combinations that may be defined there; and, if the DHCP server is being utilized, it will of course know from its configuration file and lease database file which IP addresses it has assigned to the hosts configured to use DHCP. When it can’t resolve DNS queries via these methods, dnsmasq will send queries to the nameservers defined in /etc/resolv.conf. You must have at least one public DNS server defined there and it’s typical to simply use the DNS server(s) provided by your ISP. Following is an example of how I have my /etc/resolv.conf file configured. Recall that I uncommented the strict-order line in dnsmasq.conf as described above so dnsmasq will utilize DNS servers in the order I have them listed here.

    #Allow applications on the machine hosting dnsmasq to also use it too
    
    nameserver 127.0.0.1
    
    #Google DNS
    
    nameserver 8.8.8.8
    
    #OpenDNS
    
    nameserver 208.67.222.222
    nameserver 208.67.220.220
    
    #Cox
    
    nameserver 68.105.28.11
    nameserver 68.105.29.11
    nameserver 68.105.28.12
    
    #An option to use my network gateway/router as the upstream DNS. Note that the #pubic DNS server addresses will need to be defined in the router.
    
    #nameserver 192.168.10.1
    
      /etc/hosts

    As I mentioned, dnsmasq will consult the /etc/hosts file on the host its running on when resolving DNS queries. This comes handy when there are hosts in your network that you have assigned, or would like to assign, static IP addresses to. In those cases the host name/IP address combinations can simply be added to /etc/hosts. In fact, if desired, you could elect not to use dnsmasq’s DHCP server at all and rely soley on dnsmasq’s use of /etc/hosts to resolve local IP addresses. In this respect, /etc/hosts is no different than any other host file resident on most computers except that now you only need to maintain the one file. Of course, the tradeoff is that you’ll need to configure static IP addresses on all your hosts. I settled on a hybrid approach for my network. I configured all client hosts (laptops, desktop PCs, game consoles, etc) to use dnsmasq’s DHCP server, and configured all servers and network equipment (access point, router, network printers, etc.) with static IP addresses. Here’s an example of my /etc/hosts file:

    127.0.0.1       localhost
    192.168.10.1    router
    192.168.10.2    wap
    192.168.10.4    server1
    192.168.10.11   server2
    192.168.10.51   print-hp
    192.168.10.52   print-canon
    

    Final Steps

    Once dnsmasq.conf, /etc/resolv.conf, and /etc/hosts are configured to your liking restart dnsmasq:

    # /etc/init.d/dnsmasq restart
    

    Or, if your using *BSD:

    # /usr/local/etc/rc.d/dnsmasq restart
    

    Make sure to disable any other DHCP servers that may be running in your network, then simply configure your hosts to use DHCP – they should recieve an IP address that’s in the range defined in dnsmasq.conf. If you’re planning on configuring some hosts with static IP addresses, set the IP address of the host running dnsmasq as the DNS server and IP address of the gateway/router as the gateway. You’ll also want to make sure to enter that host/IP address information in /etc/hosts on the host running dnsmasq. That’s it! You now have DNS and DHCP service up and running in your network.

    Now let’s run a quick test to make sure dnsmasq is caching DNS queries. The simplest to do that is to use the dig utility:

    $ dig iceflatline.com
    

    When you look at the output from dig and find the line showing the query time. Note the time and run the command again. You should see a noticable improvement in response time indicating that dnsmasq is caching query results locally.

    Conclusion

    This concludes the article on how to install and configure dnsmasq on your Linux- or Unix-based host. As you can see, dnsmasq isn’t terribly complicated and proves to be a really nice open source package for implementing a small, lightweight caching DNS proxy and DHCP server. For a full list of all the configuration options and other information I encourage you to visit the dnsmasq web site.

    References

    http://www.thekelleys.org.uk/dnsmasq/docs/setup.html
    http://www.thekelleys.org.uk/dnsmasq/docs/FAQ

    Tags: , , , , , ,

    Hardware Intel Core i7 Build: Overclocking the Intel DP55KG and Core i7 860

    2 Comments

    This is the third post documenting my upgrade to an Intel Core i7 Lynnfield system. In my first post I discussed the components I selected and why. I talked about assembling the system and some of the challenges I encountered in my second post, and in this final post I’ll be discussing my efforts at overclocking the Intel DP55KG motherboard and Core i7 860 processor.

    Two Approaches

    Intel’s new “Turbo Mode” feature is able to increase the processor multiplier value beyond its default value (21 in the case of the Core i7 860) if the processor is operating within what it considers are safe temperature parameters. For example, in Intel’s Core i7 Bloomfield architecture, processors are allowed to raise the stock multiplier value by 1 or 2 depending on the number of cores being used. Intel’s Lynnfield processors are considerably more aggressive with Turbo Mode, increasing Turbo Mode multipliers within a range of ~2-5. Essentially what this means is that when fewer processor cores are demanded by an application or process, larger multiplier values are used, thus the processor is allowed to run faster than the default multiplier would normally allow. In the case of the Core i7 860, it’s not uncommon, for example, to see it use a multiplier value of 26 in single-threaded applications, yielding a processor speed of 3.46 GHz, well above its stock speed of 2.8 GHz. While this sort of dynamic overclocking is pretty damn impressive, a question arose for me when it came time to overclock my Intel DP55KG and Core i7 860: should I attempt to overclock the system with Turbo Mode enabled, meaning I would have to consider the headroom required when higher multiplier values are used, or should I simply disable it and go with the more traditional overclocking approach? I ended up trying both approaches to see how they compared and to evaluate which would work best for me.

    Regardless of which approach you use though, overclocking a Lynnfield system is pretty straight forward. Adjust the host clock frequency until the system achieves a stable CPU speed. From there, the memory multiplier can be adjusted to compensate for the change in host frequency. If desired/needed you can also adjust the CPU voltage, memory voltage, and Uncore voltage to further stabilize the system. That’s pretty much all the adjusting the architecture allows you to do.

      Turbo Mode enabled

      My first attempt at overlocking the Intel DP55KG and the Core i7 860 involved raising the host clock frequency but leaving with Turbo Mode enabled. These are the BIOS settings I started with:

      Performance

      Host Clock Frequency Override: Manual

      Performance -> Processor Overrides

      CPU Voltage Override Type: Dynamic
      CPU Voltage Override: Default (default)
      CPU Idle State: High Performance
      Intel Turbo Boost Technology: Enabled (default)

      Performance -> Memory Configuration

      Performance Memory Profiles: Manual – User Defined
      Memory Multiplier: 12
      Memory Voltage: 1.65
      Uncore Voltage Override: 1.10 (default)

      Performance -> Bus Overrides

      All settings in this section were left at their default values.

      Power

      Enhanced Intel SpeedStep Tech: Enabled (default)
      CPU C State: Enabled (default)

      With this approach, my objective was to try to achieve the best stable overclock I could using Turbo Boost and leaving the voltage settings at thier default values. However, I did alter two voltage settings: the CPU Voltage Override Type, which I set to Dynamic, allowing the CPU to still manage its own power usuage but with higher upper limits; and the Memory Voltage, which I set to 1.65 to match the voltage input specified for my Mushkin DDR3-1600 kits. I left the RAM timings at the default SPD values of 9 9 9 24.

      And the result? I was able to achieve a host clock frequency of 154 MHz before the system became unstable (stability in this case is defined as the ability for the system to run without failure using Prime95 (v25.9) Large FFT for 2-3 hours). This yielded a CPU speed of 4 GHz, assuming a Turbo Boost multiplier of 26 (154 * 26 = 4.00 GHz). I did notice, however, that the multiplier in my case generally liked to stay at 25 a large percentage of the time during idle. I suspect this was the result of the High Performance setting in BIOS that forces the system to use the higher multiplier when the operating system would otherwise be allowed to lower it.

      According to CPU-Z (v1.53) The CPU voltage (VID) fluxuates between .8 and .9 at idle and core temperatures according to Speedfan (v4.40) were ~30c at idle. Given the DRAM multiplier setting of 12, the DRAM frequency weighed in at a nice 1848 MHz. Loading all four cores resulted in VID rising to 1.096 volts and core temperatures to ~63c. Using all four cores of course also resulted in the system using the default CPU multiplier value of 21 (154 * 21 = 3.23 GHz).

      So, in summary, I was able to achieve ~15% overclock under load using Turbo Boost and leaving the voltage settings at thier default values.

        Turbo mode disabled

        After determining the optimal overlocking settings for my Intel DP55KG and the Core i7 860 using default voltages and Turbo Mode enabled, I attempted to overclock the system with Turbo Burst disabled as well as the freedom to use higher voltage settings, if necessary, to make the system stable. These are the BIOS settings I started with:

        Performance

        Failsafe Watchdog: Enable (default)
        Host Clock Frequency Override: Manual
        Host Clock Frequency: 133

        Performance -> Processor Overrides

        CPU Voltage Override Type: Static
        CPU Voltage Override: Default (default)
        CPU Idle State: High Performance
        Intel Turbo Boost Technology: Disabled

        Performance -> Memory Configuration

        Performance Memory Profiles: Manual – User Defined
        Memory Multiplier: 10
        Memory Voltage: 1.65
        Uncore Voltage Override: 1.10 (default)

        Performance -> Bus Overrides

        All settings in this section were left at their default values.

        Power

        Enhanced Intel SpeedStep Tech: Disabled
        CPU C State: Disabled

        And the result? With Turbo Burst disabled and the latitude to increase VID and other voltage settings if necessary, I was able to achieve a host clock frequency of 170 MHz using a VID of 1.2 before the system became unstable, yielding a CPU speed of 3.5 GHz (170 * 21 = 3.57 GHz). Further increases in VID, memory or Uncore voltage did not allow for a stable system using higher clock speeds. Core temperatures rose to ~35c at idle and loading all four cores caused the core temperatures to rise to ~74c. With a the DRAM multiplier setting of 10 instead of 12, the DRAM frequency fell to 1700 MHz. Here again I left the RAM timings at the default SPD values of 9 9 9 24. I did try to run with the DRAM multiplier set at 12 but there was just no way my 1600 MHz RAM was going to run at 2040 MHz!

        So, in summary, I was able to achieve ~28% overclock under by shutting down Turbo Boost and raising VID to 1.2.

        Comparison

        Table 1 shows the results of few highly unscientific tests I threw at both cases to see how they compared.

        Table 1
        h.264 Encoding
        (Minutes)
        SiSoft Sandra
        Memory Bandwidth
        (GB/s)
        SiSoft Sandra
        CPU Arithmetic
        (GOP/s)
        3DMark Vantage
        (1280x1024, 4xAA)
        X3 Terran Conflict
        (1280x1024, 4xAA)
        BattleForge
        (1280x1024, 4xAA)
        Crysis
        (1280x1024, 4xAA)
        Stock33177115904 (15311/17996)927745
        Turbo Mode
        On
        25228016732 (15750/20587)1097746
        Turbo Mode
        Off
        23188715342 (14209/20160)1188147

        The h.264 tests involved transcoding a typical MPEG-2 DVD *iso to the h.264 high-profile format using Handbrake. You can see there was not a significant difference in time between the two methods, but both represented a nice improvement over the default settings. Turbo Boost, however, did provide a nice bump in memory bandwidth, due mostly to the ability to run at a higher DRAM multiplier value. The use of Turbo Boost also wins out where 3DMark Vantage is concerned, suggesting that the higher multipler values played a role here again (the results show the overall scores followed by the GPU/CPU score in parenthesis). The game-based tests were vitually useless since these particular games strongly rely on the GPU and not the CPU. However, a game like X3 Terran Conflict, which likely makes use of all four cores for physics calculations, clearly benefits from the higher host clock speed.

        Conclusion

        Turbo Mode is something that should be evaluated based on your needs and the specifics of your overclock. Which one did I go with? I decided to run with Turbo Mode enabled and the lower host clock frequency. There were a couple of reasons for this choice. First, I rather like using the default voltage settings; by allowing Intel to manage the power settings, I’m able to run my system moderately faster, and in some cases a hell of a lot faster, but also a lot cooler. Second, I typically run applications that do not utilize all four cores, so a moderate overclock with Turbo Mode gives me better results than a higher-speed overclock without Turbo Mode. However, it’s good to know that as I grow to depend on more cores consistently, I can simply shutdown Turbo Boost and clock the system higher.

    Tags: ,

    Games A Quick Review of Torchlight for PC

    0 Comments

    I bought Torchlight on Steam; played as a Destroyer; spent ~18-19 hours on it; and finished at level 37. I dual-wielded a hammer and a sword for much of the game. Here are my quick thoughts on the game…

    Pros…

    The artwork – The cartoon look of the game is reminiscent of WoW. It’s a nice break from the usual game textures.

    The loot – In short, tons. If you’re at all a fan of Diablo, Titan Quest, and the like, this game’s for you.

    The pet – Besides fighting the hordes along side you, your cat or dog companion has its own inventory slots for you to stash even more of your spoils. And when all of your slots are full you can send your pet back to town to sell your loot! Single best game feature ever.

    The price – I paid $20 for it through Steam and spent a little over 18 hours playing it. That’s $1.11/hour – damn cheap entertainment.

    Cons…

    The artwork – While I found the artwork endearing, not everyone will find Torchlight’s “cartoony” art style appealing.

    The repetition – Kill everything that moves, pick up the spoils, rinse and repeat. I found myself occasionally wonder “when does this game end?”

    The pet – While your pet may excel as your emissary back at the market, her endurance leaves something to be desired. She doesn’t die, but rather runs away when her health drops too low. This is followed by a narrator repeatedly uttering the annoying phrase “your pet has fled.” You can feed her health potions by opening your inventory and dragging one of your health potions to her food dish, but it’s a bit clunky.

    Tags: ,

    Hardware My Intel Core i7 Build: Putting It Together

    0 Comments

    Recently I decided it was finally time to upgrade my gaming computer. I had skipped over Intel’s recent spate of chipsets, as well as Windows Vista, so my computer – still based on the Intel x975 chipset and Windows XP Pro – was definitely in need of an upgrade.

    This is the second post documenting my upgrade to an Intel Core i7 Lynnfield system. In my first post I discussed the components I selected and why. In this post I’ll talk about assembling the system and the challenges I encountered. In my final post I’ll cover my attempts at overclocking the new system.

    The Build

    I like to build systems outside of the case. Then, when I’m sure everything is running well, I’ll place the components in the case and dress up the wiring (See Figure 1). Similar to other motherboard manufacturers, Intel has finally taken to mounting the SATA II ports horizontally, facing the back of the case, instead of vertically. Good thing too because the video card would likely have prevented me from using the first couple of ports. I’m using two 36GB Western Digital “Raptor” drives configured for Raid 0 to hold the OS. I placed these on SATA ports 0 & 1. I also have a pair of 74 GB Raptors will be configured for Raid 0, but these will become my d:\ drive and hold only data files. I placed these drives on SATA ports 2 & 3. My CD/DVD drive then ends up on port 5.

     Screenshot of my Core i7 build outside of the computer case

    Figure 1

    I decided to get a new power supply for this rig. The existing PC Power & Cooling Silencer 750 that I originally intended to use for this upgrade I felt could best be used elsewhere. I’m partial to the single 12 VDC rail design for PC power supplies so I ended up picking up OCZ’s CMPSU-750TX.

    Intel offers several methods for updating their BIOS, including updating directly from the OS using a utility called “Express BIOS Update.” Sans OS though, your choice is to use Intel’s tried and true “IFLASH2” utility and the BIOS file from a bootable floppy, USB or optical disk, or use a bootable ISO image to update the BIOS firmware. I chose the latter and it was a breeze. Burn the image to a CD-R, boot to it, and in 5 minutes your BIOS firmware is updated.

    In order to build the RAID arrays, I navigated to Advanced -> Drive Configuration -> Configure SATA and made sure that the RAID option was selected, then rebooted and entered Intel’s Raid configuration utility (using CTRL-l). I chose the default stripe size of 128 KB for my two RAID 0 arrays. Returning to the BIOS, I made some additional preliminary tweaks before installing the OS, including disabling the 1394 port (never use it), disabling CPU and System fan control (I prefer to run them wide open), and turning off the Event Log (this is a feature?). Adjustments to Performance section of the BIOS will be saved for when I start overclocking the system. I then booted into Memtest86+ (v4.00) and ran it for 2-3 passes to verify that the RAM was solid. Sweet, no errors.

    Windows 7 comes with native support for RAID, so rather than choosing to install my own via the usual “F6” method I let Windows use its own. After the OS was fully operational though, I installed Intel’s RAID driver, as well as the essential audio, LAN and graphics drivers; activated the OS and downloaded Microsoft updates. I then installed applications and performed the my usual OS performance tweaks. With the exception of a few applications, such as Guild Wars and Quake 3 Arena, which I made run using compatibility mode, all my applications installed and ran just fine on Windows 7 Pro 64-bit.

    My Canon i560 printer had me scratching my head though. First, Canon’s Windows 7 64-bit driver for the i560 does not work; and, to complicate things, my printer is parked on a D-link print server. To install a driver that would allow this PC to see the printer, I first had to connect the printer directly to the PC via USB. Then, instead of messing further with the flaky Canon driver, I let Win 7 find and use its own native driver. Then I deleted that printer and put the printer back on the print server. I created a new printer, but this time configured for a proper TCP/IP port. When it came time to load a driver, I simply reused the one Win 7 added when the printer was directly connected.

    The Temp

    Almost immediately after I get a new system up and running on the bench I navigate to the BIOS’s hardware monitor to verify the temperature(s) it’s reporting for the CPU so as to ensure I have the heatsink and fan installed and working correctly.

    Back in the good old days (you know, before Core i7), you would typically pay attention to the “CPU temperature” the motherboard was reporting. This is the processor’s Tcase temperature, the temperature at the geometric center of the topside of the integrated heat spreader as measured (or estimated) by a sensor IC. This temperature value is routinely used by utilities such as Everest, SpeedFan, as well as ones provided by the motherboard manufacture, to report the thermal condition of the processor. According to Intel, Tcase should be maintained at or below the thermal threshold listed in the processor’s datasheet. For the Core i7 860 processor for example, that value is 72.7C. Given a reasonably accurate measurement of Tcase and the not-to-exceed threshold value provided by Intel, you knew exactly where you stood with respect to your processor’s temperature.

    Enter core temperatures. Unlike Tcase, the processor’s core temperature is the temperature measured by the processor’s Digital Thermal Sensor (DTS). This value is always relative to what Intel feels is the maximum core temperature threshold for a given processor model, a parameter Intel calls TjMax. Nominal core temperature values, as reported by utilities such as Core Temp and Real Temp, would be an equally reliable way of representing processor temperature if you knew with certainty the value of TjMax. Knowing that value would provide you with a fairly reliable way to calculate your core temperature, and by extension, how much margin you have before encountering TjMax:

    Core Temperature = TjMax – DTS reading

    Unfortunately, Intel treats the TjMax value as if it were a matter of national security, and so these utilities are left to essentially guess what the TjMax value is in order to report the nominal core temperature values. In other words, core temperatures, while nice to know, aren’t terribly useful because: 1) Their accuracy is suspect; and 2) there is no direct correlation to the nominal value of Tcase and it’s threshold as provided by Intel in the processor’s specification.

    On the Intel DP55KG that I’m using for this upgrade, the situation seems to have gotten even murkier. On this motherboard there are two temperature readings reported in BIOS: Internal and Remote. Instead of Tcase, this Internal temperature is apparently meant to represent the processor’s core temperatures. This was confirmed when, after installing Real Temp, the temperatures reported by that utility matched the one reported by the BIOS within about one degree. Speedfan’s readings also closely matched these readings. And the “Remote” temperature reported by the BIOS? Since it routinely reports temperatures 2-5 degrees below those reported by the Internal reading, I suspect its readings come from a thermal sensor near the processor, whose job it is presumably to keep track of the internal case temperature.

    It appears then that Intel now seems to be more interested in focusing on core temperatures and their relative difference from TjMax. But how does this help me ascertain how much headroom I have with respect to the Core i7 860’s thermal profile value of 72.7C? In short, it doesn’t. So I guess I’ll need to trust that Intel will keep the processor from exceeding whatever it feels are its critical thermal thresholds, Tcase or otherwise. My job, it appears, is merely to keep the core temperatures as low as possible.

    The DP55KG’s BIOS was reporting that the processor’s core temperature was idling at ~36C (ambient room temperature is routinely ~20C). I felt I could probably do better than this so I went in search of a heatsink to replace the Arctic Cooling Freezer 7 Rev.2 I was using for this build. As mentioned in my initial post, even finding a suitable heatsink for an LGA1156 CPU was a challenge. While there were plenty of options for 1366-based boards at the time I was pulling the parts together for this build, very few of the more reputable heatsink manufactures had yet to put out parts yet that were made specifically for with newer.LGA1156. The second time out though I ran into this Maximum PC article regarding the Cooler Master Hyper 212 Plus air cooler.

    I picked one up, replaced the Freezer 7, and was able to lower the idle temperature to 30C. Needless to say I’m quite happy with it. As you can see though, the heatsink does land very close to the RAM modules (See Figure 2).

     Screenshot of proximity of the heatsink to the RAM

    Figure 2

    This brings up another issue that would be a good to mention here and that’s the best procedure I found for applying the thermal compound. The instructions at Arctic Silver suggest applying their Arctic Silver 5 product in a line over the CPU heatspreader horizontally, but not spread the line out. Instead, when you place the heatsink on top of heatspreader of the CPU, the line of Arctic Silver 5, they suggest, will “spread out just like an oval pancake.” Well, it did spread out a bit and it may resemble an oval pancake (See Figure 3), but this method does not yield the best results. I tried several variations of this pancake method and compared the results with the more traditional method of placing a small amount of compound in the center of the processor and spreading it thinly and evenly so it covers the entire top of the processor, and in each case the latter method produced the best results.

     Screenshot of the Core i7 860 and the result of applying a thin horizontal line of thermal compound

    Figure 3

    I think the problem with Arctic Silver’s method is that it actually places too much compound on the processor resulting in poorer heat transfer, not better. But perhaps a more significant factor leading to poorer results in my case is the unique design of the Cooler Master 212’s heatsink itself. Instead of the typical smooth copper surface, this heatsink is built in such a way as to allow its heat pipes to rest directly on the processor. Consequently, the heatsink surface is not smooth but instead has ridges where the heat pipes nestle against a nickel plate. These ridges seem to be preventing the thermal compound from spreading out as well as Arctic Silver intended (See Figure 4).

     Screenshot of the Core i7 860 and the result of applying a thin horizontal line of thermal compound

    Figure 4

    Final Thoughts

    After putting each of these speed bumps behind me I was ready to place all of the components in the NZXT Tempest mid tower case. I decided to forego using the case’s side fan in order to improve positive air flow, but even with one less fan, it was immediately apparent that I was going to run out of fan headers. No worries though, I typically run the fans wide open anyway so I simply wired 12VDC to each of them. The Tempest isn’t the easiest case to dress up wiring in but I managed hide some of it behind the motherboard (See Figure 5).

     Screenshot of the Core i7 860 and the result of applying a thin horizontal line of thermal compound

    Figure 5

    In the next post I’ll share my experiences with overclocking the DP55KG and Core i7 860.

    Tags: ,