[url]http://communities.vmware.com/message/2105362#2105362[/url]
Re: Can't boot any Linux 3.x kernels in WS7/Player3 on Intel i5. Any ideas?
Long story short, this is because of SMEP (Supervisor Mode Execution Protection) support being added to the Linux kernel, which makes the kernel set the SMEP bit (bit 20) in the CR4 register, which kills the VM.
The "nosmep" kernel parameter doesn't fix this, as the kernel then writes 0 to the register (to disable SMEP) and on Win7+ this faults (as the bit is already set to 1, and setting it 0 is a supervisor operation.)
Theoretically using CPUID masking to clear the SMEP feature bit (bit 7 of EBX for level 7, page 0 of the CPUID data) should fix this, but the CPUID masking in VMWare doesn't seem to support masking this bit.
The only solution I've found is to recompile the kernel, commenting out most of setup_smep in /arch/x86/kernel/cpu/common.c
Anyone got any ideas on how to do the CPUID masking?
sigh....
just upgrade to vmware workstation 9.
Re: Can't boot any Linux 3.x kernels in WS7/Player3 on Intel i5. Any ideas?
Long story short, this is because of SMEP (Supervisor Mode Execution Protection) support being added to the Linux kernel, which makes the kernel set the SMEP bit (bit 20) in the CR4 register, which kills the VM.
The "nosmep" kernel parameter doesn't fix this, as the kernel then writes 0 to the register (to disable SMEP) and on Win7+ this faults (as the bit is already set to 1, and setting it 0 is a supervisor operation.)
Theoretically using CPUID masking to clear the SMEP feature bit (bit 7 of EBX for level 7, page 0 of the CPUID data) should fix this, but the CPUID masking in VMWare doesn't seem to support masking this bit.
The only solution I've found is to recompile the kernel, commenting out most of setup_smep in /arch/x86/kernel/cpu/common.c
Anyone got any ideas on how to do the CPUID masking?
sigh....
just upgrade to vmware workstation 9.
本文分析了Linux3.x内核在VMwareWorkstation7/Player3上因SMEP特性导致无法启动的问题,并探讨了通过重新编译内核禁用SMEP特性的解决方案。
330

被折叠的 条评论
为什么被折叠?



