树莓派学习(二) — Windows10 IOT和其他IoT系统

目前除了官方系统和其他基于Linux的系统外,树莓派还可以使用Windows IoT系统,当然也有然把Windows10 ARM移植到了树莓派上。不过Windows IoT是官方系统。 微软目前有一整套物联网相关的解决方案,主要包括Azure IoT 和 Windows10 IoT,应该分别对应的了云端和设备端。 对于云端来说可以利用微软的Azure云平台,提供大数据存储和处理,人工智能,机器学习等功能,然后和安装了Windows10 IoT的设备进行联通控制。 有兴趣的话可以看一下微软的网站:https://www.microsoft.com/zh-cn/internet-of-things/products

 

Windows10 IoT

 

Windows 10 IoT powers the intelligent edge

Simplify the Internet of Things with a rich device platform, world class developer tools, enterprise grade support and a global partner ecosystem. Do more at the edge with machine learning capabilities and scale with the power of Azure IoT.

通过利用 Windows 10 IoT 将你的资产转变为智能设备,以实现边缘和云智能的出色平衡,从而拓展深度学习,完成更多事项。

这是微软对Windows10 IoT的解释。利用Windows10 IoT可以实现跨平台,在不同平台上有相同的表现。IoT系统主要有两种:

  • Windows IoT Core

    Built for small, secure, smart devices. Our smallest Windows 10 operating system can run on both Intel or ARM hardware.

  • Windows IoT Enterprise

    Bringing the full power of Windows to smart devices, Windows 10 IoT Enterprise has specialized lockdown features for creating dedicated devices.

对于树莓派来说安装的是Windows10 IoT Core。

 

 Windows 10 IoT Core

 

Windows IoT Core is a version of Windows 10 that is optimized for smaller devices with or without a display that run on both ARM and x86/x64 devices. The Windows IoT Core documentation provides information on connecting, managing, updating, and securing your devices, and more.

所Windows10 IoT core是winodwos10的一个专门为小型设备优化的版本,没有显示,可以支持ARM和x86。相关的开发文档地址:Windows 10 IoT documentation

 

支持的芯片

下面是Windows 10 IoT Core 可以支持的设备, 所以树莓派2和3都是可以支持的。

Broadcom Intel Qualcomm NXP (coming soon)
BCM2837 Intel® Atom® processor E3900 series (Apollo Lake) Snapdragon 410 (APQ8016) i.MX 6QuadPlus
BCM2836 Intel® Celeron® processor N3350 (Apollo Lake) Snapdragon 212 (APQ8009) i.MX 6Quad
Intel® Pentium® processor N4200 platform (Apollo Lake) i.MX 6DualPlus
Intel® Pentium® and Celeron® Processor N3000 Series (Braswell) i.MX 6Dual
Intel® Atom® x5-E8000 Processor (Braswell) i.MX 6DualLite
Intel® Atom® x5-Z8350 Processor (Cherry Trail) i.MX 6SoloX
Intel® Atom® Processor E3800 Product Family (Bay Trail-I) i.MX 6SoloLite
Intel® Pentium® and Celeron® Processor N and J Series (Bay Trail-M/D) i.MX 6SLL

 

支持的功能

 

Intel Qualcomm NXP i.MX6 NXP i.MX7 Broadcom
Audio x x x x x
GPIO x x x x x
I2C x x x x x
Ethernet x N/A x x x
SPI x x x x x
Display x x x x x
UART x x x x x
USB x x x x x
PCIe x N/A x Under development N/A
MIPI-CSI N/A x N/A N/A N/A
Graphics/Video x x Software-rendered Software-rendered Software-rendered
GPS N/A x N/A N/A N/A
Wi-Fi/BT N/A x N/A N/A N/A
Trusted I/O N/A N/A x x N/A
Processor power management x x x
TPM x x x x N/A
Secure Boot x x Under development Under development
PWM x N/A x x
JTAG x N/A x x
eMMC x x x x
SDHC x x x x x

 

从微软网站上看, E14可以提供定制树莓派的服务。也可以自己定制BSP。

Element 14 offers board customization service for Raspberry Pi to allow you to add or remove connectivity options. If you also need to make customizations to the BSP, you can leverage the open source BSP code on Github.

官网还列出了一些相关的兼容性外设,可以查看 Hardware compatibility list

 

开发设备

 

微软列举了目前推荐用来开发使用的设备,这些设备都提供了完成的FFU ( Full Flash Update) 镜像。

Boards Where To Buy FFU Link How To Set Up Starter Kit
AAEON Up Squared Up Board site Download FFU eMMC (for Up Squared, Intel) N/A
DragonBoard 410c Arrow site Download FFU IoT Dashboard,
eMMC (for DragonBoard 410c, Qualcomm)
N/A
MinnowBoard Turbot Minnowboard site Download FFU IoT Dashboard N/A
Raspberry Pi 2
(1.2 not supported)
Raspberry Pi site Download FFU IoT Dashboard (Raspberry Pi, MinnowBoard) Adafruit Kit
Raspberry Pi 3B Raspberry Pi site Download FFU IoT Dashboard Adafruit Kit

看到树莓派2和3都支持IoT Core, 并且可以使用Starter Kit套件。

 

安装Windows IoT Core

 

微软推荐使用它的IoT Dashboard工具来安装IoT Core的系统, 好像安装需要在Windows10 系统下进行,还好我是Windows10 , MAC下就不能玩的了 (在Mac下用 微软的远程工具连接我的Windwows10 PC,死活说我密码不对,只能放弃,对微软和无语。。。 )下载页面 这个页面可以下载Dashboard和FFU文件。

这里注意,如果是树莓派3B+请使用下面的连接下载,目前Release版本和最新Preview版本都不支持PI 3B+。 

Additional Insider Preview downloads

这个PI 3B+镜像的Release note:https://docs.microsoft.com/en-us/windows/iot-core/release-notes/insider/rpi3bp

 

Dashboard安装

 

这个工具是一个综合的IoT设备管理工具,可以刷OS镜像,管理设置,部署sample等。可以支持4种设备。并且可以选择不同的OS。

运行后效果大概是这样,选择设备是树莓派的话类型、系统版本有3种可选(Preview版本、正式版本、Custom),选择Custom可以选择本地镜像(我一开始没注意这个,以为不能刷本地的镜像,结果找其他办法,等自动下载浪费了1晚上也没搞定- -!)。对于树莓派3B+来说,只能使用自己下载的那个OS镜像,其他版本可以随意,建议自己从网站下吧,这个下载速度非常的慢。差不多1个小时才下了7%,而且没有断点续传。

下载的镜像ISO里面是一个msi文件,安装后会在 C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2 目录下有一个flash.ffu的镜像文件。选择这个文件就行了。然后选择写入系统的SD卡,设置设备名字和密码。刷完之后就可以用树莓派启动了。

 

因为第一天没注意可以刷本地ffu文件,才导致我浪费一晚上找其他安装的方法, 以下:

 

使用NOOBS安装

 

既然dashboard自动下载这么慢,那尝试看看NOOBS能否安装。 之前装官方系统使用的是带系统的完整版本的NOOBS,这次就是用NOOBS LITE,从官网下载解压,拷贝到SD卡下面。然后插入树莓派启动。树莓派没有联网,会提示你。还好3B+有无线网路,会自动提示你选择无线网路输入密码后就可以连接上了。然后系统会列出当前可以安装的系统。 非常好,有Windows 10 IoT Core。

于是选择安装,速度从1M/S变成了感人的0.1M/S,然后不一会报错了。说当前NOOBS的版本不支持自动安装Windows 10 IoT Core。 好吧放弃了,反正下载速度也是挺感人。。。网上看国外有人用NOOBS在树莓派3B上安装成功,看来还是版本问题吧。

 

使用Windows IoT Core Image Helper安装

 

在网上还看到有人使用Windows IoT Core Image Helper这个工具安装,但是下载ISO里的MSI安装后并没有这个工具。还是上面那位外国友人,用这个工具写入flash.ffu到SD成功,但是在树莓派3上无法启动。具体可以看他的连接:https://jeremylindsayni.wordpress.com/2016/05/02/windows-10-iot-and-the-raspberry-pi-3-installation-failure-and-eventually-success/

在树莓派2上安装是有成功的,可以看这个帖子:https://blog.csdn.net/zbgjhy88/article/details/52331589, 所以看起来这个工具可与i在树莓派2上使用,3上不行。但是现在这个工具好像也下载不到了,所以我没有尝试。

 

使用DISM安装

 

最后只能动用google搜索了,然后发现了MSDN上的一篇文章,Use DISM to flash Windows 10 IoT Core,时间是2017年8月,一年前的文章。试试看。

先执行diskpart.exe命令,启动diskpart程序,然后列出当前磁盘,找到你的U盘。记录下号码,这里是3

Microsoft DiskPart 版本 10.0.16299.15

Copyright (C) Microsoft Corporation.
在计算机上: CHENGCHAO-NB

DISKPART> list disk

  磁盘 ###  状态             大小     可用     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  磁盘 0    联机              111 GB  1024 KB
  磁盘 1    联机              931 GB  4096 KB
  磁盘 2    无介质               0 B      0 B
  磁盘 3    联机             7596 MB  2048 KB

DISKPART>

然后以管理员身份i东CMD,执行命令dism。加粗的地方替换成自己实际路路径,PhysicalDriveN这里的N替换成上面列出的磁盘的序号,这里是3。执行命令,大概1,2分钟就搞定了。。。

Microsoft Windows [版本 10.0.16299.309]
(c) 2017 Microsoft Corporation。保留所有权利。

C:\WINDOWS\system32>dism.exe /Apply-Image /ImageFile:"C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2\flash.ffu" /ApplyDrive:\\.\PhysicalDrive3 /SkipPlatformCheck

部署映像服务和管理工具
版本: 10.0.16299.15

Applying image
[==========================100.0%==========================]
操作成功完成。

C:\WINDOWS\system32>

看一眼写入了镜像后的SD卡的分区情况,还有4G空间没有分配。EFIESP分区里面有引导文件,MainOS分区就是C盘的内容。

放到树莓派试试。结果启动彩虹屏一直不动,看来是失败了。。。估计Windows IoT Core Image Helper工具也是使用的这个命令吧,或者说Dashboard应该也是使用这个,只是参数不同。不折腾; 等dashboard慢慢下载吧。。。。

 

补充:以上就是昨晚失败的尝试,今天下载了PI B3+的Preview镜像安装后,突然发现Preview版本安装的文件夹下带上了前面提到的Windows IoT Core Image Helper和Dism工具。

看了下,其实和自己用命令刷是一样的,也是调用dism程序。

 

 

系统的运行

 

SD卡插入树莓派后成功引导启动,进入了熟悉的Windwos10的转菊花页面。等待大概10分钟进入下面页面。(用的8G class6的三星卡,比较慢)

等待一会系统就安装好了。可以选语言。(设备名没有变,不知道什么情况,可能是被杀入软件拦截了? 之前刷镜像完成后提示我iot木马给我删除了。。。)

然后进入设备信息。没有网络,3B+的无线网不能用。

然后有一些简单的介绍。

不过重启之后就一直黑屏,好像启动不起来了。。一开始以为是显示驱动问题,然后插上了网线,还是找不到设备。在此重装系统可以进去,重启之后还是进去不。黑屏。无奈,只能放弃了。另外Windows 10 ARM版也有移植,可以在3上跑起来了,3B+上不知道行不行。 不过这只是装个系统,所以没有去尝试。

 

最后

 

目前物联网的系统还是挺多的,有兴趣的可以了解一下:

 

Android Things:这个不用说了,几个月前google刚release了正式版本,基于Android(Linux),可以用java和c++来调用SDK控制外部设置。因为要基于Java,所以相对来说对硬件的要求更高。目前只支持树莓派3,3B+不支持。只能等等了。

Ubuntu Core:这个是Ubuntu的IoT版。目前支持树莓派2和3, 修改后可以支持树莓派3B+。因为基于linux,所以整体对硬件要求要低一些。应该和官方的raspbain系统一样,可以用wiringPi 或python-rpi.gpio 库来控制外部设备。

mbed:这个是ARM的开源IoT系统,他是事件驱动的单线程架构,是一个实时系统。主要目的是小,因为对于很多智能设备来说需要精简和功耗低, 目前系统还在开发中。

Huawei LiteOS:这个是华为的IoT系统,是一个实时的嵌入式系统,目前主要支持的都是一些嵌入式开发板,并不支持树莓派。感觉和mbed比较类似

AliOS Things : 这个是阿里的IoT系统,也是一个实时的嵌入式系统,大概了解了下,和云端结合的很好,可以用来进行边缘计算。所以同样不支持树莓派,其他了解不多就不多说了。

腾讯和百度搜了下好像并没有物联网的操作系统,不过提供了IoT的套件,可以和云端进行通信。感觉物联网边缘计算可能会是下一个爆点。

 


如果本文对您有帮助,可以扫描下方二维码打赏!您的支持是我的动力!
微信打赏 支付宝打赏

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注