本文记录了基于Vmware Player安装Windows10和VS2015开发平台的过程,以及如何在RaspberryPi2.0上启动Windows10 IoT core系统,并通过一个简单的helloworld程序展示如何在虚拟机内将通用windows应用程序部署到RaspberryPi2.0上。

关键词:虚拟机;Window10 IoT core; Universal Windows App;RaspberryPi2.0

目录 

1 虚拟机上安装Windows 10   

1.1 下载并安装Vmware player

1.2 下载Windows 10 professional 镜像

1.3 安装windows 10 professional

2 Windows10 IoT core开发环境配置 

2.1 虚拟机上网配置

2.2 安装VS2015 community版

2.3 设置开发者模式

3 RaspberryPi2.0运行配置

3.1 安装Windows10IoT核心版工具

3.2 将Windows10IoTcore映像放置在SD上

3.3 启动RaspberryPi2.0

3.4 Powershell 远程管理和配置

4 开发和部署应用程序 

4.1 Download “Hello world”

4.2 连接RaspBerryPi2

4.3 成功运行

1 虚拟机上安装Windows10 

1.1 下载并安装Vmware player

为了研究一些技术而格式化自己工作电脑的事我是不会干的,于是只有利用虚拟机来模拟运行Windows10。你可以选择Vmware workstation, Virtualbox等, 或者跟我一样选择Vmware player, 官网下载, 自己可以搜索想要的version。我下载的6.0.4版本,不做商业用途。

1.2 下载Windows 10 professional 镜像

先下载一个windows10 iso镜像下载工具MediaCreationToolx64或者x86,取决于个人电脑是64位还是32位,然后运行该工具去生成自己想要的Windows10版本.

双击开始创建windows镜像文件,目前只提供5种选择,目标机器可以是32位也可以64位:

Windows10如何下载,教程真的一大堆,问下度娘吧,人家是专业的,比我说的清楚。

比如百度经验上 如何下载Windows 10

http://jingyan.baidu.com/article/ca00d56c7524e5e99eebcfab.html

在创建iso镜像时选择直接下载到本地文件夹,最好是新建一个文件夹用来存放Window10的iso文件,因为文件夹的内容在下载之前会全部格式化。

下载完毕之后就可以在VMware Player里安装Win10啦。

1.3 安装windows 10 professional

首先创建一个虚拟机,这个比较简单,但是一定要注意给虚拟机C盘分配至少30G的磁盘空间,一开始我觉得一个Windows10在加上VS2015的开发环境顶多20G撑死了,可谁知道后来不够用啊,通过扩展磁盘将空间变成了40G,也不顶事,因为C盘还是20G,VS2015上安装Universal Windows开发包需要8G,本身VS2015就有大概5个G,即使VS2015不装C盘,一路装下来C盘也只剩几百兆了,于是我只得重新又安装了一遍,真的浪费时间。

Okay,不啰嗦,创建完虚拟机,开始准备安装windows10,打开Edit Virtual Machine Settings, 选择CD/DVD(SATA),使用Use ISO Image File, 浏览并选择刚刚下载的Windows10 iso文件,okay。(其实这个也很简单,但是遥想我第一次使用虚拟机的时候,也是网上搜了一堆也不知道怎么弄,走了不少弯路的。所以给其他如果是第一次的人,一个好的演示。)

启动虚拟机,开始安装,基本不需要太多的操作,不过要输入product key,这个从网上去找吧,比较容易找得到。

安装的过程有几分钟,可以做些别的事情哈,比如学点英语,或者看篇博文之类的。Window10的安装过程跟以往的Windows系列没啥太大的区别,都是常识,设定一下用户名和密码,之后登录就看到Windows10啦。

2 Windows10 IoT core开发环境配置 

这一步骤主要是安装Universal Windows App开发所需的VS2015 以及通用windows程序包。 VS2015很容易从官网下到,虚拟机安装方式和windows10的安装步骤类似,也是通过Use ISO Image file来安装。我下载的是VS2015 community版本。(官方版本

2.1 虚拟机上网配置

在安装之前最好先配置一下虚拟机网络,因为有可能会需要连网下载一些内容。

关于虚拟机如何上网也有一堆的博文,但是每个人使用的虚拟机软件和版本不同,所以方法也各不相同,网上的解决方案未必解决的了实际的问题,正如我的VMware Player版本一样,它根本就没有虚拟机网络配置的Wizard,但是我做的也很简单,直接通过桥接(Bridage)方式使用物理网络,一般情况下自动获取IP地址,就可以连网了,但是如果你的企业有代理,还需要在Internet option中 设置LAN的代理。

2.2 安装VS2015 community版

余下的步骤就是安装VS2015 community版本,选择自定义安装,windows通用程序,大概13G空间,中间可能有一个内容无法找到,没关系,选择从网络下载,下一步直到安装完毕,估计有好大一会才能装完。

2.3 设置开发者模式

Windows10中,选择”Settings“->“update&security”->”for developers”,选择Developer mode

3 RaspberryPi2.0运行配置

其实官方给出的安装步骤是最清楚的,其他的都是按照官方步骤来的,雷同雷同,可以参见官网

需要具备的条件不用多说了, surpose大家都准备的很好:

1)     运行windows10的电脑

2)     RaspberryPi2

3)     5V微型USB电源

4)     8GB微型SD卡

5)     HDMI电缆和监视器

6)     以太网电缆

7)     微型SD卡读卡器

3.1 安装Windows10 IOT核心版工具

在主机上(注意不是虚拟机啊,虽然官方是要在Windows10操作系统上下载,具体原因后面有讲),从 Microsoft 下载中心下载用于 Raspberry Pi 2 的 ISO。(官网教程里给的是10240版,使用这个版本如果连接与RaspberryPi2配套的触摸平板的话,屏幕没有反映,网上搜了一下,说是这个核心版本本身就不支持,这里让大家下载10556版本的)

将 ISO 保存到本地文件夹

双击 ISO(IoT 核心版 RPi.iso)。它将自动将其本身作为虚拟驱动器进行装载,以便你可以访问内容。

安装 Windows_10_IoT_Core_RPi2.msi。安装完成后,flash.ffu 将位于 C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2

将 Windows 10 IoT Core 映像放置在 SD 卡上

回答刚刚的问题,为什么要在主机上下载安装Windows 10 IoT Core映像?因为微型SD卡读卡器虚拟机不识别啊不识别啊不识别啊,(重要的事情说三遍,你懂得),据说只有USB接口的SD读卡器才能被刻录,我不知道是真是假,但是微型SD读卡器的确不能识别,怎么办,一时间也找不到USB接口的读卡器,只得另想办法。

其实SD卡刻录的只是一个.ffu的文件,并不一定非要在Window10的环境下,聪明的广大爱好者早就想出了一堆的电子来应对, 撒网搜索:

Option1: 如何在Window7,8.1系统5分钟刻录Windows10 IoT core to SD卡

https://coderwall.com/p/zchyog/how-to-install-windows-10-iot-core-on-raspberry-pi-2-in-5-minutes-also-works-on-win7-win8-linux-mac-os

步骤:

1 使用python写了个脚本程序将flash.ffu专成.img 格式 7.18G

2 使用win32diskimager 刻录到SD卡

 Option2: windows7上用小工具进行刻录SD 

http://www.geek-workshop.com/thread-14845-1-1.html

 Option3: 其他方式和工具例如: 

http://www.52pi.net/forum.php?mod=viewthread&tid=1568&extra=

我用了第一种方法,成功在宿主机上刻录SD卡。

3.2 启动RaspberryPi2.0

1) 插入已准备的微型 SD 卡(插槽在如下图所示的电路板的另一侧)。

2) 将网络电缆从本地网络连接到电路板上的以太网端口。请确保开发电脑在同一网络上。

3) 将 HDMI 监视器连接到电路板上的 HDMI 端口。

4) 将电源连接到开发板上的微型 USB 端口。

连接电源之后,就会发现板子上面的灯开始闪烁,说明已经开始启动,几秒钟就会看到经典的windows窗格标志,启动完成后, 会看到RPi2的IP地址。

其实它的背后长这样子:

3.3 PowerShell远程管理和配置

以下参见官方步骤。

使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备。PowerShell 是基于任务的命令行 Shell 和脚本语言,专为进行系统管理而设计。

1) 在主机电脑与设备之间创建信关系。启动“Windows PowerShell”项并选择“以管理员身份运行”:

现在你应该看到 PS 控制台:

2)启动 WinRM 服务以启用远程连接。在 PS 控制台中,键入以下命令:

  net start WinRM

3)在 PS 控制台中,键入以下命令,从而使用相应的值替代 <machine-name or IP Address>(使用计算机-名称是最简单的方法,但如果设备在网络上的名称不唯一,则尝试使用 IP 地址):

  Set-Item WSMan:\localhost\Client\TrustedHosts -Value <machine-name or IP Address>

这里<machine-name or IP Address> 就是RaspberryPi2的IP地址,以下相同。

输入 Y 以确认更改。

4) 使用Windows IoT 核心版设备启动会话。在管理员 PS 控制台中,键入:

  Enter-PSSession -ComputerName <machine-name or IP Address> -Credential <machine-name or IP Address or localhost>\Administrator

在凭据对话框中,输入以下默认密码:p@ssw0rd

  NOTE: The connection process is not immediate and can take up to 30 seconds.

如果你已成功连接到设备,你应该可以在提示符之前看到设备的 IP 地址。

4 开发和部署应用程序

首先,官方提供了很多样例程序,但只能称得上最简单的样例,view里面逻辑代码很多。

其次,我想说其实你如果了解MVVM,使用过WPF,prism之类的,会发现上手Universal windows 应用程序还是比较快的,但是同时也是一件比较痛苦的事情,你会发现命名空间变了,你根本不知道以前熟悉的类跑到哪里了。。。而且,有一些依赖注入的特性,Mef, module等都不支持,Anyway,毕竟熟悉xaml,还是有好处的。最起码MVVM还是用的起来的。

Hellow world走起,先能成功部署再说,以后需要移植部分WPF开发的项目到UWP上,具体变化以后慢慢更新。

4.1 Download Hello world

从Github 上下载samples-develop.zip包,里面有很多示例代码,

https://codeload.github.com/ms-iot/samples/zip/develop

解压缩,打开hello world工程文件,这里如果没有自定义安装VS2015而是用它推荐的默认安装方式,会提示下载universal windows app开发包,按照提示下载就行,完成后就可以再次打开hello world程序。

4.2 连接RaspBerryPi2

接下来,在 Visual Studio 工具栏中,单击 Device 下拉列表并选择 Remote Machine, 体系结构选择ARM(x86是针对MinnowBoardMax)

VS将打开“远程连接”对话框,在Address处输入RaspberryPi2的IP地址,选择none进行windows身份验证,单击select.

4.3 成功运行

按下F5,树莓派上成功运行我们的程序。

本文到此结束,首先介绍了如何在Vmwareplayer上安装windows10操作系统以及安装VS2015,其次介绍了如何启动RaspberryPi2,最后给出了一个简单的Helloworld程序并将其部署到Raspberrypi2上。

最近公司高层甚是动荡,连带着底层也大受影响,于我而言,也是第一次经历line manager离职去创业这种事情,说不定我自己的职业生涯也要在此间转个弯。即便面临着整个部门被端掉的危险,心也不能散,研究下从WPF移植到UWP,就当为公司做最后的贡献吧。此文是对于搭建和部署环境的一个简单的纪录,方便以后继续。

常见问题和回答参考

https://ms-iot.github.io/content/en-US/Faqs.htm

基于Vmware player的Windows 10 IoT core + RaspberryPi2安装部署的更多相关文章

  1. 基于树莓派的微型气象站设计与开发(Windows 10 IoT Core)

    前言 树莓派(Raspberry Pi,RPi)是专门为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,可以运行Linux或者Windows 10 IoT Core操作系统.本文将利用树莓派和U ...

  2. Windows 10 IoT Serials 3 - Windows 10 IoT Core Ardunio Wiring Mode

    Maker社区和智能硬件的朋友一定知道Arduino,很多3D打印机都是用它做的.为了迎合这一大块市场,微软在基于Intel Galileo的Windows 8.1 IoT中就是使用这种基于Ardui ...

  3. Azure IoT Edge on Windows 10 IoT Core

    在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge ).该版本的主要特点就是将计算能力由Azure端推送至 ...

  4. 如何在Raspberry Pi 3B中安装Windows 10 IoT Core

    Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本 ...

  5. Windows 10 IoT Core Samples

    Windows 10 IoT Core Samples Welcome to the Windows 10 IoT Core Samples These samples have been valid ...

  6. Windows 10 IoT Core环境配置中的那些坑

    我使用的设备是Raspberry Pi 3B,想来国内的嵌入式玩具应该还是树莓派最常见吧.这段时间一直在捣鼓Win10 IoT,结果发现,从安装一直到编码调试一路下来全都是坑.写这篇东西一个是为了备忘 ...

  7. Windows 10 IoT Core 17133 for Insider 版本更新

    今天,微软发布了Windows 10 IoT Core 17133 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性.用户可以登录Windows Device Porta ...

  8. Windows 10 IoT Core 17127 for Insider 版本更新

    昨天,微软发布了Windows 10 IoT Core 17127 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性.相比于17120,修复了一个已知的问题. 一些已知的 ...

  9. Windows 10 IoT Core 17120 for Insider 版本更新

    今天,微软发布了Windows 10 IoT Core 17120 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性.相比于17115,又少了两个已知的问题. 一些已知的 ...

随机推荐

  1. <正则吃饺子>:关于使用powerDesign连接oracle数据库,导出数据表结构(ER图吧)

    最近做的项目中,没有完整的数据库表结构图(ER图),自己就根据服务器上oracle数据库和powerdesign整理一份,但是存在两个问题:1.没有把数据库表的相关备注弄下来:2.数据库表中的主外键关 ...

  2. Linux : Linux命令

    接触linux一段时间了,在网上搜罗了一些命令,以备后用.我有点爱上Linux了. 来自 :http://www.php100.com/html/webkaifa/Linux/2009/1106/34 ...

  3. Android实例1:button点击响应

    个人网站http://www.ravedonut.com/ Layout xml文件 <RelativeLayout android:layout_width="wrap_conten ...

  4. Valera and Swaps

    题意: 定义 $f(p)$ 表示将 $p$ 序列变换为有序序列最少要交换多少次,给一 $1 \sim n$ 的排列 $a$ ,给一整数 $m$, 求问将 $a$ 最少交换多少次能得到 $p$ ,使得 ...

  5. Ubuntu安装vnc+gnome的xstartup配置

    Log 1 安装vncserver并且在xstartup配置gnome 背景:学习Ruby,想在ubuntu下使用rubymine 时间:2014-3-10 环境:Ubuntu 记录:Roy 其实这个 ...

  6. C#高级参数out,ref,params

    在C#中通过使用方法来获取返回值时,通常只能得到一个返回值.因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? out 当需要返回一系列返回值时可用out高级 ...

  7. opensns入门

    1.公共控制器 AdminController.class.php 2.控制器中 使用 $list = $this->lists();  可以获取数据表中的数据,相当于基本的查询 3.将数据查询 ...

  8. Cocos2d-x-html5之HelloWorld深入分析与调试

    Cocos2d-x-html5之HelloWorld深入分析与调试 另:本章所用Cocos2d-x版本为: Cocos2d-html5-v2.1.1 http://cn.cocos2d-x.org/d ...

  9. ASPNET-ASPNETCORE 认证

    话题背景 关于认证我的个人理解是,验证信息的合法性.在我们生活当中,比如门禁,你想进入一个有相对安全措施的小区或者大楼,你需要向保安或者门禁系统提供你的身份信息证明,只有确定你是小区业主,才可以进来, ...

  10. JQuery Easyui/TopJUI 多表头创建

    JQuery Easyui/TopJUI 多表头创建 废话不多说,直接贴上代码. html <div data-toggle="topjui-layout" data-opt ...