July 24, 2009

Sony's Crippled Intel VT Support

 UPDATE: November 25, 2009. Sony has enabled Intel VT on it's FW-series of laptops (and possibly others). Check the Sony support site for the update and details.

A funny thing happened when I recently attempted to create a KVM virtual machine on my Sony Vaio laptop. Upon loading the kvm-intel.ko kernel module, I receive a rather peculiar error message:

 kvm: disabled by BIOS

Disabled by BIOS? Although the error really didn't say much, I could only assume that somehow the BIOS provided by Sony for my laptop disabled Intel VT by default. A bit of googling turned up this article, as well as this KB article from Sony, showing my assumption to be correct.

Not only was my assumption correct, but apparently most of Sony's Vaio laptops (less the BZ series of laptops) have this very same problem. The processor supports Intel VT, yet Sony disables it in the BIOS with no way of turning it back on using the BIOS options!

I was not the only person who ran into this problem. A man named Igor Levicki was having the very same issue, and started a thread on Intel's Virtualization & Software Development forum to discuss the issue. Not only that, but he created a solution that he claims works with the Sony Vaio FW series of laptops. (My laptop is a VGN-FW285J).

So after much googling about MSRs, BIOS, NVRAM, and lolcats, I decided to give Igor Levicki's solution a shot.

First, I installed DOS to a USB drive. The utility I used to do this is available here:

DOS-on-USB (Windows Only)

I chose this utility because of ease of installation, and the fact that I could easily disable certain DOS high-memory features that Igor recommends disabling during this process.

Next, I downloaded Igor's patching and reflashing utility here:

Levicki's Tech Spot Downloads (You need VTPATCH.RAR from that page)

After installing MS-DOS on the USB drive, and copying Igor's utilities over, I was able to boot from USB and run his patching program. The program is quite robust, and asked me a bunch of questions before flashing to ensure that I didn't screw things up. The README file that Igor wrote was also much appreciated, as it contained a wealth of information about how to perform the procedure correctly.

Following his instructions closely (so as not to brick my pretty expensive laptop), I was indeed able to reflash the BIOS without a hitch.

Igor's utility reflashing the BIOS. Source: Intel Software Network Forum.

After following the final steps in Igor's procedure, a quick check showed that KVM's Intel VT support now worked! For another level of confirmation, I downloaded MSR Tools from the kernel.org website, created and added an ebuild for it to my local Gentoo overlay (will commit to sunrise overlay later), and ran rdmsr:

# rdmsr 0x3A
d

This was exactly what Igor said the MSR register 0x3A should return upon patching the BIOS. Intel VT support was indeed enabled.

So I would like to thank Igor Levicki, wherever you are. You probably saved me many hours of fruitless BIOS hacking. May many a lolcat put a smile on your face.

Links

Linux MSR Tools
Sony Confirms No Hardware Virtualization Support
HOWTO: Enable Intel VT on Sony Vaio (FW Series)
Intel VT and notebook manufacturers -- call for action!
Sony Vaio Z disabled (VT) Virtualization Technology
Enable VT on InsydeH20 based Sony Vaio laptops

Click Here!