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做了简单的介绍. 二 ...
随机推荐
- [AngularJS + cryptoJS + Gravatar] Provider vs factory
Configurable Bits Need a Provider We want to be able to configure the characterLength before Tweetab ...
- [AngularJS] Best Practise - Resolve promises in router, defer controllers
See more:http://toddmotto.com/opinionated-angular-js-styleguide-for-teams/ /** * Created by Answer12 ...
- SOAP 及其安全控制--转载
原文地址:http://my.oschina.net/huangyong/blog/287791 目录[-] 1. 基于用户令牌的身份认证 2. 基于数字签名的身份认证 3. SOAP 消息的加密与解 ...
- Asp.Net 之 汉字转拼音
1.利用微软提供的拼音库,计算出汉字的拼音的方法,此方法支持多音字符 下载 Visual Studio International Pack类库,该类库扩展了.NET Framework对全球化软件开 ...
- JAVA_JDBC
测试类: 1 import java.util.ArrayList; import java.util.List; /** * 创建数据库: * 1.加载驱动 * Class.forName(&quo ...
- Cstring到string
要利用mfc,然后接受一个图片. imread只能读const string& filename 的东西. imread 原型: CV_EXPORTS_W Mat imread( ); 它的参 ...
- 关于Eclipse插件开发(一)
plugin.xml是插件和Eclipse内核的接口,Eclipse就像一所大宅子.它的外墙(plugin.xml)有很多门(扩展点), 要熟练进入这座大宅子,就得先搞清楚它有那些门(扩展点). 插件 ...
- Linux安装后的系统配置
第一步: Linux系统安装之后,可以设置系统的日期和时间.给系统添加用户.安装软件.在Red Hat网络中注册机器以及完成其他任务.设置代理将允许用户从一开始就配置环境,从 而使用户能够快速地开始使 ...
- ant design 自定义表单验证大全
需求是 账号名可以是手机号也可以是邮箱 要做手机号和邮箱的验证,官网的那个验证规则不匹配 怎么自定义验证规则? 一:组件部分 <Form horizontal> <Row gu ...
- sharepoint 删除list里的所有内容
[System.reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") $siteUrl = " ...