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做了简单的介绍. 二 ...
随机推荐
- W5500问题集锦(二)
attachment_id=5620" rel="attachment wp-att-5620" style="margin:0px; padding:0px; ...
- 使用android x86进行android应用开发.
首发论坛 安卓巴士.id:android_bin 一.必备工具: 1.虚拟机软件(本文使用virtual Box为例), 2.android x86镜像,下载地址http://www.android- ...
- paip.提升性能---- 网站并发数的总结.txt
paip.提升性能---- 网站并发数的总结.txt 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.n ...
- [React Fundamentals] State Basics
State is used for properties on a component that will change, versus static properties that are pass ...
- JQuery合并表格单元格
转:http://www.cnblogs.com/xuguoming/p/3412124.html JQuery合并表格单元格 一.需求 如果存在一个表格,想把其中某一列内容相同的部分合并单元格, ...
- PERCONA-TOOLKIT 工具文档
https://www.percona.com/doc/percona-toolkit/2.2/index.html
- Languages
Languages A language class exists inside the system/Core folder, this class have 2 methods: load - L ...
- iOS web与js的简单交互
我们在封装网页的时候经常会遇到需要往网页里面的控件添加数据,但是怎么添加又成了难点.本人最近在开发的时候就遇到这样的事,解决之后,来和大家分享一下. //以必应网站为例 [web loadReques ...
- jquery中的index方法
问题描述:灵活使用jquery中的index方法 方法签名:index([selector|element]) 用法概述:P1.index(P2) //调用者P1可以为对象或集合 参数为空,返回P1 ...
- nginx性能配置参数说明:
nginx的配置:main配置段说明一.正常运行的必备配置: 1.user username [groupname]; 指定运行worker进程的用户和组 2.pid /path/to/pidfile ...