This kernel requires x86-64 cpu, but only detected i686 cpu

Discussions related to using VirtualBox on Windows hosts.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: This kernel requires x86-64 cpu, but only detected i686 cpu

Post by mpack »

Yes, NX is a requirement for certain guests, which has nothing to do with what the FAQ is for. It has nothing to do with the guest being 64bit, nor AFAIK does it require VT-x/AMD-v. Nor anything to do with the OPs problem indicated in the topic title.
socratis
Site Moderator
Posts: 27330
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: This kernel requires x86-64 cpu, but only detected i686 cpu

Post by socratis »

mpack wrote:Yes, NX is a requirement for certain guests
Do you have a list of known guests that require NX?
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: This kernel requires x86-64 cpu, but only detected i686 cpu

Post by mpack »

I believe it's one of the requirements of Windows 8.1 and 10.
erdeslawe
Volunteer
Posts: 241
Joined: 8. Jul 2015, 10:23

Re: This kernel requires x86-64 cpu, but only detected i686 cpu

Post by erdeslawe »

There's some information/explanation of the NX requirement in the following link, if it's of any value: http://www.thewindowsclub.com/your-pcs- ... -windows-8
socratis
Site Moderator
Posts: 27330
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: This kernel requires x86-64 cpu, but only detected i686 cpu

Post by socratis »

NX is not required in real systems. I know because my old computer (Pentium-D) is running a triple boot with Win7-32, Win7-64 and Win10-64 and I had (by accident/ignorance) NX disabled in the BIOS until a week ago. Win10-64 never complained. I've never tried Win10-32.

As far as VirtualBox guests, according to the "suggestions/hints" for when creating a new guest, by "Global.cpp", Win8, 8.1 and 10 have the "VBOXOSHINT_PAE" set. Mind you, only the 32-bit versions. Now given that the "PAE/NX" setting is one and the same in VirtualBox configuration, I take it that PAE is actually required, while NX is not. Of course NX on the other hand requires PAE:
To use the NX processor feature, the processor must be running in Physical Address Extension (PAE) mode.
So, I did some tests:
  • Win10-64 physical system. Runs with and without NX enabled in the BIOS.
  • Win10-64 guest, PAE/NX enabled. It runs just fine. [1]
  • Win10-64 guest, PAE/NX disabled. It runs just fine. [1]
  • Win10-32 guest, PAE/NX enabled. It runs just fine.
  • Win10-32 guest, PAE/NX disabled. Dead in its tracks, with the following Windows blue screen error:
    This operating system uses PAE to support systems with more than 4GB of RAM. You'll need to use a PC with a compatible processor to run the operating system.
    Error code 0xc0000260.
So, it would seem that the NX setting is not required per se, but since PAE is enabled, you might as well enable the NX part.

Taking that one step further, I decided to test some other guests. According to "Global.cpp" (as of this writing), the "VBOXOSHINT_PAE" is set for the following guest systems:
  • Other/Unknown, 64-bit.
  • Windows 8, 8.1, 10. 32-bit only. "Other Windows", 64-bit. That's the actual "Other Windows" option, not the rest of Windows.
  • Red Hat, 32- and 64-bit versions.
  • Ubuntu 32-bit. [2]
  • Oracle, 32- and 64-bit versions. Makes sense, it's based on Red Hat.
  • Other Linux, 64-bit.
  • All OSX guests.

[1] : I run SysInternals' "CoreInfo" for the Win10-64 guest with and without the PAE/NX setting enabled. The output was exactly the same! PAE and NX were enabled in the guest, although they were explicitly disabled in the settings. That tells me that PAE/NX is always on for certain guests and the actual setting is ignored.

Code: Select all


Intel(R) Core(TM) i7-2820QM CPU @ 2.30GHz
Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
Microcode signature: 00000000
HTT       	*	Hyperthreading enabled
HYPERVISOR	*	Hypervisor is present
VMX       	-	Supports Intel hardware-assisted virtualization
SVM       	-	Supports AMD hardware-assisted virtualization
X64       	*	Supports 64-bit mode

SMX       	-	Supports Intel trusted execution
SKINIT    	-	Supports AMD SKINIT

NX        	*	Supports no-execute page protection
SMEP      	-	Supports Supervisor Mode Execution Prevention
SMAP      	-	Supports Supervisor Mode Access Prevention
PAGE1GB   	-	Supports 1 GB large pages
PAE       	*	Supports > 32-bit physical addresses
PAT       	*	Supports Page Attribute Table
PSE       	*	Supports 4 MB pages
PSE36     	*	Supports > 32-bit address 4 MB pages
PGE       	*	Supports global bit in page tables
SS        	-	Supports bus snooping for cache operations
VME       	*	Supports Virtual-8086 mode
RDWRFSGSBASE	-	Supports direct GS/FS base access

FPU       	*	Implements i387 floating point instructions
MMX       	*	Supports MMX instruction set
MMXEXT    	-	Implements AMD MMX extensions
3DNOW     	-	Supports 3DNow! instructions
3DNOWEXT  	-	Supports 3DNow! extension instructions
SSE       	*	Supports Streaming SIMD Extensions
SSE2      	*	Supports Streaming SIMD Extensions 2
SSE3      	*	Supports Streaming SIMD Extensions 3
SSSE3     	*	Supports Supplemental SIMD Extensions 3
SSE4a     	-	Supports Streaming SIMDR Extensions 4a
SSE4.1    	*	Supports Streaming SIMD Extensions 4.1
SSE4.2    	*	Supports Streaming SIMD Extensions 4.2

AES       	*	Supports AES extensions
AVX       	*	Supports AVX intruction extensions
FMA       	-	Supports FMA extensions using YMM state
MSR       	*	Implements RDMSR/WRMSR instructions
MTRR      	*	Supports Memory Type Range Registers
XSAVE     	*	Supports XSAVE/XRSTOR instructions
OSXSAVE   	*	Supports XSETBV/XGETBV instructions
RDRAND    	-	Supports RDRAND instruction
RDSEED    	-	Supports RDSEED instruction

CMOV      	*	Supports CMOVcc instruction
CLFSH     	*	Supports CLFLUSH instruction
CX8       	*	Supports compare and exchange 8-byte instructions
CX16      	*	Supports CMPXCHG16B instruction
BMI1      	-	Supports bit manipulation extensions 1
BMI2      	-	Supports bit manipulation extensions 2
ADX       	-	Supports ADCX/ADOX instructions
DCA       	-	Supports prefetch from memory-mapped device
F16C      	-	Supports half-precision instruction
FXSR      	*	Supports FXSAVE/FXSTOR instructions
FFXSR     	-	Supports optimized FXSAVE/FSRSTOR instruction
MONITOR   	-	Supports MONITOR and MWAIT instructions
MOVBE     	-	Supports MOVBE instruction
ERMSB     	-	Supports Enhanced REP MOVSB/STOSB
PCLMULDQ  	*	Supports PCLMULDQ instruction
POPCNT    	*	Supports POPCNT instruction
LZCNT     	-	Supports LZCNT instruction
SEP       	*	Supports fast system call instructions
LAHF-SAHF 	*	Supports LAHF/SAHF instructions in 64-bit mode
HLE       	-	Supports Hardware Lock Elision instructions
RTM       	-	Supports Restricted Transactional Memory instructions

DE        	*	Supports I/O breakpoints including CR4.DE
DTES64    	-	Can write history of 64-bit branch addresses
DS        	-	Implements memory-resident debug buffer
DS-CPL    	-	Supports Debug Store feature with CPL
PCID      	-	Supports PCIDs and settable CR4.PCIDE
INVPCID   	-	Supports INVPCID instruction
PDCM      	-	Supports Performance Capabilities MSR
RDTSCP    	*	Supports RDTSCP instruction
TSC       	*	Supports RDTSC instruction
TSC-DEADLINE	-	Local APIC supports one-shot deadline timer
TSC-INVARIANT	*	TSC runs at constant rate
xTPR      	-	Supports disabling task priority messages

EIST      	-	Supports Enhanced Intel Speedstep
ACPI      	-	Implements MSR for power management
TM        	-	Implements thermal monitor circuitry
TM2       	-	Implements Thermal Monitor 2 control
APIC      	*	Implements software-accessible local APIC
x2APIC    	-	Supports x2APIC

CNXT-ID   	-	L1 data cache mode adaptive or BIOS

MCE       	*	Supports Machine Check, INT18 and CR4.MCE
MCA       	*	Implements Machine Check Architecture
PBE       	-	Supports use of FERR#/PBE# pin

PSN       	-	Implements 96-bit processor serial number

PREFETCHW 	*	Supports PREFETCHW instruction

Maximum implemented CPUID leaves: 0000000D (Basic), 80000008 (Extended).

Logical to Physical Processor Map:
*-  Physical Processor 0
-*  Physical Processor 1

Logical Processor to Socket Map:
**  Socket 0

Logical Processor to NUMA Node Map:
**  NUMA Node 0

No NUMA nodes.

Logical Processor to Cache Map:
*-  Data Cache          0, Level 1,   32 KB, Assoc   8, LineSize  64
*-  Instruction Cache   0, Level 1,   32 KB, Assoc   8, LineSize  64
*-  Unified Cache       0, Level 2,  256 KB, Assoc   8, LineSize  64
*-  Unified Cache       1, Level 3,    8 MB, Assoc  16, LineSize  64
-*  Data Cache          1, Level 1,   32 KB, Assoc   8, LineSize  64
-*  Instruction Cache   1, Level 1,   32 KB, Assoc   8, LineSize  64
-*  Unified Cache       2, Level 2,  256 KB, Assoc   8, LineSize  64
-*  Unified Cache       3, Level 3,    8 MB, Assoc  16, LineSize  64

Logical Processor to Group Map:
**  Group 0
[2] : Ubuntu guest, 12.04, 32-bit. Works fine on my OSX with or without PAE/NX in the VM Settings. The exact same guest (a true backup) crashes and burns if I disable PAE/NX in the VM Settings on my Pentium-D with the following VirtualBox error:
The guest is trying to switch to the PAE mode which is currently disabled by default in VirtualBox. PAE support can be enabled using the VM settings (System/Processor).
but this might just be related to an Pentium-D related bug that I just filed, https://www.virtualbox.org/ticket/16375
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
Post Reply