Windows phone 8 安装在 VMWare上错误的各种解决方案
http://windowsasusual.blogspot.jp/2013/01/how-to-launch-windows-phone-8-emulator.html
Hardware requirements
First possible pitfall is... your CPU! In short, you passed this step if
you have Intel i3/i5/i7 processor as they all do Second Level Address
Translation (SLAT) capability. Otrherwise, you should check this brilliant wiki for extended description.
OK, let assume you have capable CPU. Let investigate in details what happens if you try to launch WP8 emulator then.
Where is my virtualization, dude?
While you're trying to first-launch your WP8 hello-world project, the following popup appears:
| Windows Phone Emulator |
| You don't have permission to modify internal Hyper-V network adapter settings required to run the emulator |
| Click "Retry" to run the emulator in elevated mode. |
| [Retry] [Close] |
Clicking on [Retry] button, emulator window appears saying it launching
the OS... and after a couple of minutes, "Generic failure" popup
terminates that pity show.
To resolve this, let take a look at VmWare virtualization settings. You
can edit virtual machine settings and make sure that "Processor" device
has "Virtualize Intel VT-x/EPT or AMD-V/RVI" flag as ticked on.
Alternatively, you can manually edit VMX file of your virtual machine
image and set this option as true:
| vhv.enable = "TRUE" |
Both ways, you have to switch the virtual machine off before, make
changes, then start the virtual machine again. Try again to launch your
WP8 hello-world project. You see? Same failure, again.
VmWare hidden treasure
Rumor has it. VmWare Workstation 9, the latest "mature" product of
VmWare Inc will let WP8 emulator working as a charm if virtualization
flag (see previous chapter) is on. In my case, I have only Player
edition, but the same rumor (namely StackOverflow.com, see URL above)
says you can manage non-official keys at VMX file, and following
addendum will do the trick:
|
vhv.enable = "TRUE" hypervisor.cpuid.v0 = "FALSE" |
See the last line? That's it, shaman said you have to set this to false. And it works! The only popup you can face now is
| Windows Phone Emulator |
| Do you want to configure the emulator to connect to the Internet? |
| Your PC may lose its network connectivity while the changes are applied. This may affect any network operations in progress. |
| [Yes] [No] |
Clicking [Yes] you will see very short delay and then, ta-da, your
emulator is fully operational! Shaman said, set this to false. Shaman
doesn't explain. Follow the word of Shaman, do you?
Disobey the word
Feeling some contradiction sense, I tried to flip the non-documented
settings to true, expecting the punishment from Heavens. But nothing has
been changed! Finally I cropped the cpuid line to empty value:
|
vhv.enable = "TRUE" hypervisor.cpuid.v0 = "" |
Again, emulator still working as a charm! Switching off the virtual
machine, rebuilding the project - still operational. Just the cpuid key
presence is a "key to success" for WP8 emulator. True, false, empty
value - everything suits us. Hmmm, that's interesting!
Failure ahead!
Thanks to the same contradiction sense, I did the following tweak at VMX file:
|
vhv.enable = "FALSE" hypervisor.cpuid.v0 = "" |
Namely, I switched off the virtualization support but keep that
non-documented cpuid setting active. Restarting the virtual machine, I
was expecting the failure. But I was really surprised with new (and very
clear) popup:
| Windows Phone Emulator |
| Can't start the Windows Phone Emulator |
| The Windows Phone Emulator requires Hyper-V. Your PC is missing the following pre-requisites required to run Hyper-V:
- Second Level Address Translation |
| [Close] |
You see? It complains about SLAT support feature, like we don't have
capable CPU! But host CPU is Intel i7-930, with SLAT feature onboard.
So, with virtualization off AND with cpuid on, guest OS will provide
exact error message instead of abstract "lack of permission".
Note: Don't forget to re-enable virtualization support back to operational state!
Other reasons to fail
To be fair, there are more ways to get WP8 emulator failed to run. Let
me name two more (if you know another reason, just post a comment here,
big thanks in advance):
- Insufficient CPU cores
- Not enough memory
Reason 1: WP8 as a platform intends at least two CPU cores available.
So if you allocate single core for your virtual machine, emulator will
fail with following message:
| Windows Phone Emulator |
| The Windows Phone Emulator wasn't able to ensure the virtual machine was running:
Something happened while starting a virtual machine: 'Emulator WVGA The processor topology specified for the virtual machine cannot be |
| [Close] |
Reason 2 : memory, RAM size. In old good days it was a useful habit
to allocate not more than 1 gig of RAM to any virtual machine, otherwise
your host OS may nearly die. For WP8 development, it's not true
anymore. With 1Gb RAM limit, WP8 emulator will unable to get 512Mb of
free RAM. Popup message is clear:
| Windows Phone Emulator |
| The Windows Phone Emulator wasn't able to ensure the virtual machine was running:
Something happened while starting a virtual machine: 'Emulator WVGA Not enough memory in the system to start the virtual machine Emulator |
| [Close] |
So, it's nice to allocate at least 1.5Gb RAM for our virtual machine.
And even that case, you can't launch WP8 emulators other than simplest
512Mb mode. Bye-bye, WVGA/WXGA/720p emulators, you're too memory-hungry!
Update: one more issue with Windows Phone 8 emulator is adderssed here: http://www.timmykokke.com/2013/01/windows-phone-emulator-hyper-v-error
Recap
Despite the two-level virtuality (WP8 emulator is a Hyper-V virtual
machine which launched on Win8 guest OS under VmWare running on Win7
host), the toolchain is stable and performs with almost no delays. This
contradicts with my previous experience of double-virtualization while
launching Meego on Qemu running at Linux guest at Windows host (terrible
delays up to 20-30 seconds on each mouse movement).
So, everything is fine. The only requirements are:
- SLAT-capable CPU (any of Intel i-series, plus some others)
- virtualization enabled at BIOS level
- "non-documented" key hypervisor.cpuid.v0 = "" at VMX file
- virtual machine with enabled virtualization as vhv.enable = "TRUE"
- at least two CPU cores for the virtual machine
- at least 1.5Gb RAM for the virtual machine, 4Gb recommended (if you
plan to launch any WP8 emulator), which naturally leads to 64-bit host
OS, with at least 8Gb RAM onboard
Windows phone 8 安装在 VMWare上错误的各种解决方案的更多相关文章
- VMware 虚拟机 不能上网 CentOS 6.5 Windows 7上面安装了VMware,然后安装了CentOS系统,安装完了无法上网;
今天想要学习一下大数据的知识,在windows 7上面 安装了VMware,然后安装了Centos系统,但是发现安装完了,无法上网 我在Centos上面 使用 ping www.baidu.com 始 ...
- Windows 2008 R2 安装sp1时未知错误的解决办法
最近在为Windows Server 2008 R2 打sp1补丁时出现“发生未知错误”,详细信息错误:0x800f0818: google后找到解决问题步骤,参照:http://www.wikiho ...
- windows 虚拟环境下 安装 mysql 引擎一系列错误处理
报错现象 运行django 报错. 很明显是缺少引擎 下载引擎 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb m ...
- Windows下使用python库 curses遇到错误消息的解决方案
在Windows系统下执行python应用时,有时会遇到错误信息: ModuleNotFoundError: No module named '_curses'. 然而查看Windows系统里pyth ...
- windows无法连接到打印机 操作失败,错误为0x00000002 解决方案
平时使用局域网打印机没有问题,今天突然脱机了,错误号为0x00000002 服务器上打印机一切正常,别人使用也一切正常. 最后,重启了Spooler服务后搞定. 重新链接打印机,搞定!
- 在VMware上安装centos
Windows,VMware和Centos三者的关系 VMware安装.centos安装 在 VMware 上安装 CentOS 第 1 步:打开 VMware,点击创建新的虚拟机 第 2 步:选择典 ...
- [IOS]VMware上虚拟机MAC安装XCode
1:VMware上虚拟机MAC安装前 VMware上安装Xcode之后 2:安装Xcode过程:把Xcode复制到虚拟机桌面上 3:复制完成之后,双击Xcode_6.4.dmg 文件 4:把Xcode ...
- 虚拟机VMWARE上ORACLE License 的计算
Oracle License的计算有两种方式:按照用户数和CPU个数. 其中按CPU计算方式如下: License Number = The Number of CPU Cores * Core ...
- 在VMWare上安装ubuntu及VMWare&nbs…
在VMWare上安装ubuntu及VMWare Tools 一.摘要 该文主要介绍了如何在虚拟机上安装ubuntu,和安装VMWare Tools设置共享文件夹,最后对ubuntu做了简单的介绍. 二 ...
随机推荐
- android有点纠结的小问题
1.点击一个listview的item,以popupwindow的形式展示一个菜单.popupwindow以动画的形式展现,可一直没有预期的效果 解决方案: popupWindow.setBackgr ...
- 最新 Sublime Text 3 Package Control 安装方法
相信看到这个帖子的童鞋,一般至少对 Sublime Text 有所了解了,废话不多讲,个人在 ST2 还没用好的时候, Sublime Text 3 又横空出世了,不过现在 ST3 还是 beta 版 ...
- c/c++将整数转换为字符串
#include <iostream> using namespace std; int main(int argc, char **argv) { ; iint i,j; ],e[]; ...
- c++算法联系,冒泡排序,bubble sort,插入排序,insert sort,
#include <iostream.h> #define MAX 100 void dispaly(int a[],int n) { for(int i=0;i<n;i+ ...
- java基础学习总结五(递归算法、冒泡排序、查看生成API)
一:递归算法 概念:自己调用自己的方法 示例代码如下: @Test /** * 递归求和 * 5+4+3+2+1=15 */ public void getSum() { long sum = sum ...
- 一些ecplise 快捷键
1 F5:下一步,可以进入下一个函数栈 2 F6:当前函数的下一步,不会进入其他的函数. 3 F8:下一个断点. 4 选中一个变量或者表达式,按ctrl+shift+i 来查看内容或者添加监视的方式. ...
- Divide and conquer method
分治法是最广泛使用的算法设计方法之一,其基本思想:把大问题分解成一些较小的问题,然后由小问题的解方便地构造出大问题的解. 分治法说穿了就是把问题放小,如果被分的问题还是比较大,那么久继续分下去.为了能 ...
- uva - 133 The Dole Queue(成环状态下的循环走步方法)
类型:循环走步 #include <iostream> #include <sstream> #include <cstdio> #include <cstr ...
- git svn 简易同时使用
这个方法适合于新的一个git 仓库.假如你使用的git 是最新版本,git本身提供了 git svn命令. 1. 进入一个空的目录,初始化一个空的git仓库: git svn init svn://x ...
- 页面javascript 和jquery 的一些用法
confirm:提交之前的提示验证 if(confirm("确认是否提交?")){ alert("确认提交..."); } input按钮的禁用: $(&quo ...