Does VT-x really need bios support?

Posted on

Problem :

I have an old laptop with Core Duo (not Core 2).

The CPU supports VT-x but the bios doesn’t. (And never, no more BIOS update)

Does VT-x really need BIOS support? Can we do it with a Linux kernel patch?

Solution :

On page 2916 of this Intel software developer’s manual, you can see that a hardware “hook” is provided that can allow a BIOS to disable or enable virtualization.

VMXON is also controlled by the IA32_FEATURE_CONTROL MSR (MSR address 3AH). This MSR is cleared to zero
when a logical processor is reset. … Bit 0 is the lock bit. If this bit is clear, VMXON causes a general-protection exception. If the lock bit is set,
WRMSR to this MSR causes a general-protection exception; the MSR cannot be modified until a power-up reset
condition. System BIOS can use this bit to provide a setup option for BIOS to disable support for VMX. To
enable VMX support in a platform, BIOS must set bit 1, bit 2, or both (see below), as well as the lock bit.

If the BIOS has cleared Bit 0 in hardware Model-Specific Register (MSR) 0x3A, virtualization is disabled and cannot be reenabled unless the CPU is reset, which then gives the BIOS control.

A Linux kernel patch cannot undo this as this is in hardware. The BIOS would have to be flashed to skip setting this bit.

Leave a Reply

Your email address will not be published. Required fields are marked *