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做了简单的介绍. 二 ...
随机推荐
- VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群
VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群 下一篇:VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群-整合Zookeeper和Hbase 近期 ...
- wcf-2
1.前言 上一篇,我 们通过VS自带的模板引擎自动生成了一个wcf程序,接下来我们将手动实现一个wcf程序.由于应用程序开发中一般都会涉及到大量的增删改查业务,所以这 个程序将简单演示如何在wcf中构 ...
- 文件I/O(不带缓冲)之close函数
可调用close函数关闭一个打开的文件: #include <unistd.h> int close( int filedes ); 返回值:若成功则返回0,若出错则返回-1. 关闭一个文 ...
- 基于cocos2d-x的游戏框架设计——李成
视频:http://v.youku.com/v_show/id_XMzc5ODUyMTI4.html?f=17330006 网易科技讯 3月31日,第四届CocoaChina开发者大会暨Cocos2d ...
- 从你的u盘启动:30天自制操作系统第四天u盘启动学习笔记
暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078 ,更多学习中的问题.资料,群里分享 developing environment:ubuntu 关于u盘启动自己做的操 ...
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
1)获取运营商sim卡imsi号, String IMSI =android.os.SystemProperties.get( android.telephony.TelephonyPropertie ...
- Asp.Net 之 未能加载文件或程序集 system.web.extensions 解决方法
最近做项目发现未能加载文件或程序集的错误,这是由于我的机器上没有安装Ajax的原因.问题解决后,整理如下:表现:1."System.Web.Extensions, Version=1.0.61025. ...
- 修改整个app的字体
在项目开发中 有时候为了一些好的UI效果 可能需要自定义字体 app导入字体库的教程网上有很多 导进去 修改plist文件 然后如何将整个app的字体都换成自定义的字体呢 一个个去写太麻烦了 ...
- typedef的使用2——定义函数
#include <stdio.h> #include <string.h> #pragma warning(disable:4996) //闲言碎语都先不要讲了,直接上函数吧 ...
- dos下循环复制一张图片的bat
@echo off setlocal enabledelayedexpansion ,,) do ( @echo !dm! copy .png !dm!.png ) 我期待的结果是将140041.pn ...