Running Windows Server on Consumer Intel Chipsets (Z87)

Some of you may have seen my recent post on my favorite Build Machine, the SuperMicro SYS-5038D.

My other build machine is also pretty sweet, but there are some kinks with it that drive me crazy. The machine is a custom build with a ASUS Maximus VI Hero Motherboard. The machine has a Intel Core i7-4771 processor, 32GB of ram, two SSD Drives, and another HDD Drive. I load up Windows Server 2012 R2 (Eval) edition, and it works great for testing Hydration and my POC kit and other Hyper-V tasks.

It also has an on-board Intel Gigabit i217v networking card, but it doesn’t work on Server. This isn’t a technical problem.

Server

What is a server? Are we talking about a Mainframe?

Microsoft, Linux, AMD, Intel, VMWare, and others have done very well putting Server Operating Systems, not on large Mainframes but on commodity computer equipment, scaled out!

Microsoft Windows Client and Server Operating Systems, share the same core, but have some slight changes to enable or disable features depending on the target.

If you want to put Windows Server 2012 R2 on a Laptop. You can! As long as you are in compliance with the License Microsoft is cool with that!

INF Files

Windows driver INF files (Windows 95 style), are a bit of a bastard creation. Yes, the design goes back to Windows 95, and has been upgraded, patched, and tweaked to work with modern Windows 8.1 Operating Systems. There is one little feature in the Manufacturer section that makes life difficult here. http://msdn.microsoft.com/en-us/library/windows/hardware/ff547454(v=vs.85).aspx

In this section you can tell the Operating System that this INF section only supports a specific Operating System Version, and Product Type. The Product Type can be Workstation (Windows 7 and 8.1 client), or Server. Drivers should mostly be platform agnostic, but the switch is there.

Take a look at the driver for my Intel Z87 motherboard with the i217v Gigabit network driver:

[Version]
Signature   = "$Windows NT$"
Class       = Net
ClassGUID   = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider    = %Intel%
CatalogFile = e1d64x64.cat
DriverVer   = 06/12/2014,12.12.50.4

[Manufacturer]
%Intel%     = NTamd64.6.3, NTamd64.6.3.1

[Intel.NTamd64.6.3.1]
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00008086
%E153ANC.DeviceDesc%            = E153A.6.3.1,       PCI\VEN_8086&DEV_153A&SUBSYS_00011179
%E153BNC.DeviceDesc%            = E153B.6.3.1,       PCI\VEN_8086&DEV_153B 

Note that my Dev_153B device is in the [Intel.NTamd64.6.3.1] section?

  • NTamd64 – Means that it works for 64-bit Operating Systems
  • 6.3 – means that is works for Windows 6.3 or Windows 8.1 or Windows Server 2012 R2.
  • .1 – means that it will *ONLY* work for Workstation. And that’s our problem.

Apparently someone at Intel saw the switch and said “This means we can prevent a this driver from loading on Windows Server!” The Management Types said: “Hey, this chipset is only intended for clients anyways, so let’s disable server!” (Product Differentiation) I’m also sure that somewhere in their discussions they also realized that “If we disable server, then we don’t have to test on Server either! That will save us time on our test matrix!” I’m sure that sealed it.

Resolution

Good news is that most *Enterprise* class of laptops and desktops *DO* have drivers that support Server. It’s just with consumer hardware you need to be aware.

There are ways to get around loading the driver on Server machines, it typically involves modification of the inf file, and forcing the OS to accept unsigned drivers. However Having worked in WHQL, I believe strongly that you should only load signed drivers in your environments.

Therefore my fix was to install two PCIe networking cards, yes an actual network card.

Turns out that the Intel NUC has the same chipset, so it also suffers from the same problem.

Thanks Intel.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s