2024年2月18日发(作者:)

Windows Embedded Standard 7

安装及使用指南

第一章 概述

1.1 Windows Embedded Standard 7概述

Windows Embedded Standard 7 以组件化形式提供 Windows 7 操作系统的功能、熟悉度和稳定性,能开发人员创建运行成千上万种现有 Windows 应用程序和驱动程序的高级商务设备和消费类设备。

使用适合现有客户基础结构的坚实平台,在 Windows Embedded Standard 7 中释放 Windows 7 技术的强大功能。

技术参数:

处理器体系结构

支持多处理器体系结构:

- x86

- x64

工具

改进的开发人员体验,可满足整个开发周期的要求:

- 使用映像构建器向导 (IBW) 的向导体验,可快速建立原型

- 使用映像配置编辑器 (ICE) 的高级配置

最新的桌面技术创新

- Internet Explorer 8

- Windows Media Player 12

- 远程桌面协议 7

- Silverlight 3

- .net Framework 3.5 SP1

适当级别的组件化

适用于构建专用设备的粒度级别:

- 150 多个基于 Windows 7 的最新创新的直观功能包

- 用于满足嵌入式特定要求的嵌入式功能,例如增强型写入筛选器、基于文件的写入筛选器、注册表筛选器、休眠一次恢复多次 (HORM)、USB 启动、对话框筛选器和自定义外壳程序

- 450 多个用于实现与不断增长的设备硬件和外设集的兼容性的驱动程序集

应用程序兼容性

用于 Windows 7 的应用程序和驱动程序可以在 Windows Embedded Standard 7 上运行,而无需困难、昂贵且耗时的端口设定工作

企业连接性和可管理性

- 支持 Active Directory、域加入、组策略、网络访问保护和 IPv6,以实现连接性

- 通过 Windows Server、System Center Configuration Manager、System Center Operations Manager 和

Windows Server Update Services 实现可管理性

- 1 -

丰富的沉浸式用户体验

通过 Windows Aero 和 Windows 触控,提供丰富的交互式用户体验。 用于构建创新体验的稳定框架 Windows Presentation Foundation

改进的电源管理

通过使用智能电源管理 API,可以构建改进 CPU 空闲时间的应用程序。

开发人员可以使用 Windows Embedded Standard 7 创建各种智能、互连、面向服务的高级商用设备和消费类设备。 这些设备可以运行成千上万种现有 Windows 应用程序和驱动程序,范围从瘦客户端到多功能打印机,其中包括:

o

o

o

o

o

o

o

o

o

o

o

o

o

o

o

高级机顶盒

加油机

功能齐全的服务点

游戏设备

家庭自动化网关

工业控制

智能装置

多媒体 Internet 设备

网亭

数字标牌

移动服务点

监控设备

多功能打印机

联网式媒体设备

瘦客户端

1.2 Windows Embedded Standard 7 与上一代开发工具的不同之处

简单来说Windows Embedded Standard (WES) 7是Windows 7的组件化和添加了一些嵌入式特性的适合嵌入式应用领域的Windows 7,与Windows XP Embedded(Windows Embedded Standard 2009)不同的是组件化的颗粒度更粗,减少了组件的数量。颠覆了嵌入式系统的开发方式和部署。要特别注意WES 7的Runtime 系统镜像需要进行产品激活!详细内容见表1-1。

Feature Area Windows Embedded Standard 7 Windows XP Embedded

Updates available on Windows XP Professional

For example:

Windows Media Player 11

Internet Explorer 7

Windows 7 Ultimate or later

Windows technologies

versions

Standard 7 Toolkit:

Image Build tools

Embedded Studio Toolkit:

Target Designer

Component Designer

Image Builder Wizard

Image Configuration Editor

- 1 -

- 2 -

Target Analyzer

Windows 7 WIM support

Footprint estimation

Search

Better performance

Easier third-party software

and driver integration

XML image configuration

DB Manager

Target Analyzer

SDI support

Image Build model

Image can be configured on

the device or on the

development computer

Image is assembled on the

device

Features, drivers, and

language packs can be

added or removed from the

image online or offline.

Image is configured and assembled on

the development computer

Image is deployed on the device

Processor support

OS Image Footprint

32-bit (x86), 64-bit (x64)

Minimum Image size > 300

MB

32-bit (x86)

Minimum Image size > 40 MB

OS Building Blocks

Feature packages ~100s

Drivers ~1000

Components ~1000

Drivers ~9000

Localization

Developer Tools

Documentation

OS Image

OS Image only

Deployment tools

Windows Deployment

Services (WDS)

Deployment Image

Servicing and Management

(DISM)

Windows PE or later

versions

CD Boot

USB Boot

Remote Boot

Parity with Windows XP

Embedded

PXE Boot

Remote Installation Services (RIS)

CD Boot

USB Boot

Remote Boot

Embedded Enabling

Features

File -Based Write Filter (FBWF)

Enhanced Write Filter (EWF)

EWF/HORM (Hibernate Once/Resume

Many Environment)

- 2 -

- 3 -

USB Boot

CD/DVD Boot

Custom shell support

Servicing

OEM Servicing

Device Automatic Servicing

(Windows Update)

Device Manual Servicing

OEM Servicing

Device Manual Servicing

Activation

Embedded Activation

using assigned Volume

License Runtime key

Not required

Customer connection to

the product team

Support for Software

Quality Metrics (SQM) in

developer tools

Links to forums, MSDN,

and product team blogs

Links to team blogs and forums

表1-1 Windows Embedded Standard 7与Windows XP Embedded的技术参数对比

1.3 Windows Embedded Standard 7的优势

Windows Embedded Standard 7 的优势体现在:

o

o

o

o

o

o

通过利用熟悉的工具集,缩短了产品上市时间。 利用您掌握的 Visual Studio 知识,使用包括 Microsoft Silverlight、Internet Explorer、Windows Media Player 和 .NET

Framework 在内的综合技术进行开发,创建应用程序和驱动程序。

通过只选择所需组件,优化了设备上操作系统的空间占用量。 通过只选择所需的驱动程序、服务和应用程序,您可以缩短开发时间,优化操作系统大小并降低硬件成本。

经济划算,因为其运行时许可证费用由交付单位决定。

与许多常见行业标准和各种 Microsoft 桌面及服务器技术连接,可降低应用程序开发、操作系统部署、服务以及维护成本。

新功能可实现下一代媒体体验、功能丰富的交互式应用程序和引人注目的用户界面。

由 Windows Embedded Standard 专家组成的整个合作体系可帮助确保设备制造商能够灵活地访问开发下一代设备所需的技能。

1.4 Windows Embedded Standard 7开发流程

Windows Embedded Standard 7开发套件一共包含三张光盘。见图1-1,一张Toolkit、一张x86的Bootable

IBW、一张x64的Bootable IBW。两张Bootable IBW是可启动光盘。目标设备从Bootable IBW光盘启动之后会加载Image Builder Wizard(IBW),用户可以一步一步的操作IBW,来给目标设备安装- 3 -

- 4 -

一个系统。这个过程和安装普通的Win7很像不过有了更多的选择项目。Image Builder Wizard(IBW)是运行在Windows PE上的,不需要去安装其他工具直接使用Bootable IBW光盘就可以构建Runtime镜像(目标系统镜像),这颠覆了传统嵌入式开发的方式。

目前已经可以从 /windowsembedded/zh-cn/downloads/ 下载WES 7的评估版。

图1-1 Windows Embedded Standsrd 7 的评估版光盘

见图1-2、1-3,整个开发流程包含5个阶段:

1. 配置,该阶段分为两种方式:直接使用IBW构建系统镜像或者使用Image Configuration Editor(ICE)编写一个应答文件,然后IBW根据应答文件来操作。

2. 构建,Image Builder Engune(IBE)根据配置阶段的信息,在目标设备中完成镜像的构建。大约需要30-90分钟完成目标系统镜像构建(这部分不需要人为干预,但最后OOBE阶段除外)。

3. 定制,目标系统镜像构建完成后,开发人员可以在运行的目标嵌入式镜像上进行一些定制(例如:修改注册表、安装应用软件等)。

4. 捕获,将已经完成定制的目标系统镜像,通过ImageX捕获成*.wim个格式的镜像文件。

5. 部署,将捕获成*.wim个格式的镜像文件,通过网络、USB存储设备、光盘等介质批来部署到同型号的其他目标设备中。

图 1-2 开发流程-1

- 4 -

- 5 -

图 1-3 开发流程-2

1.5 正版识别

可以访问以下网站:

/windowsembedded/zh-cn/local/

要购买产品授权可以访问以下网站查询分销商

/windowsembedded/zh-cn/partners/distributors/?CountryID=46

第二章 Image Builder Wizard (IBW)

2.1 Image Builder Wizard (IBW)概述

Image Builder Wizard (IBW,镜像构建向导)是一个工具,您可以用它来创建,配置,安装一个Windows Embedded Standard 7嵌入式系统镜像到您的嵌入式设备上。

Image Builder Wizard可以直接运行在您的嵌入式设备上(IBW是运行在Windows PE 3.0上的),通过这个向导指导您完成一个Windows Embedded Standard 7嵌入式系统镜像的配置。然后,您可以并将镜像安装到您的设备中,或者您可以部署一个已经捕获好的WIM(Windows Imaging

Format)镜像文件(*.wim格式的文件)或Answer File(应答文件,*.xml格式的文件)。

2.2 Hello! Windows Embedded Standard 7

- 5 -

- 6 -

据不完全统计(主要是我自己的估计)大多数程序员写的第一个程序是”Hello”、”Hello

World”、”Hello,My name is……”;我相信本文的读者大多数都是第一次接触Windows Embedded

Standard 7(WES 7),在本节中我们要对WES 7说一声”Hello”,我们要使用Image Builder Wizard

(IBW)构建一个目标系统镜像。放心这很容易,不需要写一行代码。

注意:正如本节所演示的,请在虚拟机中完成这系统镜像的构建,因为部分操作会将您硬盘的数据完全摸掉!

• 步骤 1: “Standard_7_”载入虚拟机的光盘驱动器,然后配置虚拟机从光盘驱动器引导。如果是实体机,请将“Standard_7_”烧录光盘,然后修改BIOS的启动项设置将“CDROM”配置成第一启动设备,然后插入刚才烧录的光盘。最后启动实体机,让实体机从光盘引导。

虚拟机(实体机)启动后确认进度条,见图 2-1。耐心等待几分钟直到出现如“图 2-2”的欢迎画面。

图2-1 进度条

• 步骤 2: 这里一共有三个选项:“BUild an Image(构建一个镜像)”、“Deploy

an Answer File or WIM(部署一个应答文件或WIM文件)”和“Launch WinPE Command Prompt(加载WinPE 命令提示符,CMD)。”我们选择:“Build an Image”来启动IBW。

图2-2 欢迎界面

• 步骤 3: 选中“I accept the license terms”代表接受许可协议(见图2-3),然后单击“Next”按钮继续。

- 6 -

- 7 -

图2-3 许可协议

• 步骤 4: 选中“Use a template(使用一个模板)”,选中“Thin Client”(见图2-4),然后单击“Next”按钮。

在这里我们选择的是使用“Thin Client(瘦客户机)”模板。模板类似于WES 2009的宏组件带有是一组组件和配置的集合。默认WES 7带有以下模板:

“Application Compatibility”,应用程序兼容性,用来解决应用程序因缺少组件而无法正常工作的问题。

“Digital Signage”,数字标牌,包含数字广告投放领域需要的组件。

“Industrial Automation”,工业自动化,包含工业自动化领域需要的组件。

“Internet Explorer, Windows Media Player, Remote Desktop”,包含完整的IE浏览器、WMP播放器、远程桌面组件。

“Minimum Configuration”,最小体积的系统镜像。

“Set Top Box”,机顶盒,包含机顶盒领域需要的组件。

“Thin Client”,瘦客户机,包含瘦客户机领域需要的组件。

使用模板可以快速构建系统镜像。如何建立自己的模板请参见“3.4使用Image

Configuration Editor (ICE)建立模板”

单击“Browser”按钮可以选择一个模板文件并加载(*.xml格式的文件)。

单击“View template”可以浏览当前选中的模板所包含的组件(见图2-5)。在弹出“template Details”窗口中单击“Switch viem”链接可以改变当前组件的显示方式,可以按照组件名的字母顺序显示同大分类的组件。

如果选中“Do not use a template”,后单击“Next”按钮。可以一自己从“零”开始选择组件。

- 7 -

- 8 -

图2-4 使用一个模板

图2-5 浏览一个模板所包含的组件

• 步骤 5: “Language to install(安装的语言,最终系统界面的语言)” 选择“Chinese

(Simplified)”(见图2-6),然后单击“Next”按钮。其他两项:“Time and currency format(时间和货币格式)”和“Keyboard or input method(键盘或输入法)”会自动选择对应的选项。

- 8 -

- 9 -

图2-6 区域与语言

• 步骤 6:选中“Modify Drives(修改驱动包选项)”和“Modify Features(修改特性组件包选项)”(见图2-7),然后单击“Next”按钮。

在本页中详细的显示了有所选择的模板中包含了特性(Feature Packages)组件包、嵌入式系统镜像所使用的“Language(语言包)”、嵌入式系统镜像所使用的“Drivers Packages”驱动包。驱动包分为两类显示:Inbox Drivers(包含在WES 7嵌入式系统自带驱动包内的硬件)、Outbox

Drivers(不包含在WES 7嵌入式系统内自带驱动包内的硬件,这部分硬件需要设置IBW加载用户提供(额外)的驱动包、使用ICE集成驱动包或在系统的“定制”阶段手动安装驱动包。)

“Estimated OS Footprint”显示的是目标镜像的体积(估计值)。

如果在“步骤4”中选择“Do not use a template”将不会显示该页。

- 9 -

- 10 -

图2-7

确认驱动和特性组件

• 步骤 7:选中“Automatically detect devices”(见图2-8),然后单击“Next”按钮。

图2-8 查找和选择驱动

在本页中给出了三个选项:

- 10 -

- 11 -

1. “Automatically detect devices”,自动检测设备。

2. “Choose a .pmq”,选择一个PMQ文件。类似自动检测,不过不是从当前的环境而是根据PMQ文件提供的数据进行检测,PMQ文件(该文件记录了详细的硬件环境信息。)可以使用“Target Analyzer

Probe”()生成,该工具的x86、x64版本分别含在WES 7开发套件的两张启动光盘的sources目录下。可以在Windows PE中执行。选中该选项后单击“Browse”按钮选择PMQ文件。

3. “Do not select additional drivers”,不加载额外的驱动:将不会让开发人员选择驱动包和加载额外的驱动(确认驱动的安装)。

注意:使用此选项并不会大幅度的减少系统体积,但是如果目标设备使用的SATA(ACHI或RAID模式)、SCSI、SAS等其他非IDE接口的外存储器,请一定确保与其控制器对应的驱动程序被加载。因为某些系统启动必须的驱动程序并没有包含在组件库中。尤其是上面提到了外存储器控制器的驱动程序要特别注意!具体表现是步骤11中找不到可用的磁盘。

如果在“步骤6”中没有选中“Modify Drives”将不显示该页。

图2-9 确认驱动的安装

• 步骤 8:单击“Browse”按钮,选择USB存储设备上额外的驱动文件,然后单击“Next”按钮。

在本页中共有设备共有三个分类:

1.“Unmapped Devices”,未映射的设备,表示没有找到驱动程序的设备。

2.”External Devices“,额外的驱动,表示用户向IBW提供的驱动程序。

3.“Inbox Drivers”,自带的驱动,表示组件库已经有的驱动程序。

单击“Browse”按钮在弹出的窗口中可以选择额外驱动的存储位置。如图2-10中所示将额外的驱动文件存放在USB 可移动存储器上(U盘)。

单击“OK”按钮,完成操作。会弹出报告信息。(见图:2-11)

加载后,如图2-12

- 11 -

- 12 -

图2-10 加载额外的驱动-1

图2-11 加载额外的驱动-2

- 12 -

- 13 -

图2-12 加载额外的驱动-3

图2-13 加载额外的驱动-4

单击“Switch viem”链接可以切换显示方式,按照驱动的类型显示(见图2-14)。

- 13 -

- 14 -

图2-14 改变显示方式

注意:

如上面的演示,对驱动目录搜索是支持子目录的,每个存放驱动的文件夹至少有一个INF文件(见图:2-13)。

“Unmapped Devices”下的“SCSI Contrller”(见图:2-9),就是在步骤 7中提到的外存储器控制器类硬件,但本文中的虚拟机使用的是IDE接口的磁盘,即使不为其加载驱动程序。也不会在步骤11中找不到可用的磁盘。

这种加载驱动的方式主要的成功主要取决于INF文件是否格式上合法,存在一定概率的驱动无法加载。如果无法加载则可以在“定制”阶段手工安装驱动(系统启动必须的硬件驱动除外!)。

在第一次IBW重新启动前不能移除装有驱动文件的存储器,否则构建系统镜像将失败。

如果在“步骤6”中没有选中“Modify Drives”或“在步骤7”中选择“Do not select additional

drivers”将不显示该页。

通过以下几种方式可以获得额外的驱动程序:

1. 从硬件附带的驱动光盘;

2. 硬件制造商的支持网站下载;

3. 用第三方软件(例如:驱动精灵)从现有Windows 7中提取;

注意:

从1、2中获得的驱动程序往往是一个单独的自解压缩包,你必须使用7ZIP这类软件将其解压缩,并确保存放解压缩后的驱动的目录有带有INF文件。

“Unmapped Devices”下的“SCSI Contrller”(见图:2-9)这类的硬件的驱动程序往往不能使用在3中给出的方法提取驱动文件。一般这类硬件的驱动带有一个显著的特征:在其驱动(可能需要自己手动解压缩)的目录中会带有IMZ、IMA、IMZ格式等的软盘镜像文件或自写入软盘镜像的程序,如果没有INF文件(见图:2-13),需要用“WinIMG”一类的软件将软盘镜像文件中的驱动文件提取出来。

- 14 -

- 15 -

图2-15 选择组件

步骤 9:单击“Resolve Dependencies”按钮(见图2-15),然后单击“Next”按钮。

单击“Switch viem”链接可以改变当前组件的显示方式,可以按照组件名的字母顺序显示组件。

单击“Revert to original”链接可以所有组件的状态还原到本页的初始状态。

如果在“步骤6”中没有选中“Modify Features”将不显示该页。

依赖性检查

WES 7包含了很多个组件,这些组件往往依赖其它组件才能工作或某些组件不能共存在一个系统镜像中,在IBW的组件选择页面中必须解决所有依赖性问题才能够进行继续构建系统镜像。

在本页中当你根据自己的需要选则了组件后,单击“Resolve Dependencies”按钮,IBW会自动检查是否出现了依赖性问题和解决存在的依赖性问题。如果选中了“Resolve optional

dependencies”则会自动添加一些额外的组建,这会增加目标镜像大小但可以降低用户的应用程序因缺少组件而出现兼容性问题的可能性。如果选中了“Include applicable updates”则会自动添加相关的更新包(主要是安全更新),这会增加目标镜像大小但可以提高系统的稳定性和安全性。

当不要能自动解决的依赖性问题时回弹出“Resolve Dependencies”窗口,一般只会出现两种情况:必须选择一个组件(见图2-16)或只能选择一个组件(见图2-17)。

图2-16 解决存在的依赖性问题-1

- 15 -

- 16 -

图2-17 解决存在的依赖性问题-2

• 步骤 10:确认后,单击“Next”按钮。

图2-18 确认驱动和特性组件

• 步骤 11:选择一个分区(见图 2-19),单击“Next”按钮开始镜像构建。

在本页中可以对磁盘进行分区操作,以下是各个按钮的功能(见图 2-19)。

h 刷新,刷新所有分区的状态;

Device 加载驱动器,如果没有识别出驱动器(见图 2-20),可以通过单击该按钮,弹出加载驱动对话框,加载用户提供的驱动程序;

options (advanced)驱动器高级选项,显示其它选项:“Delete”、“Format”、“New”、“Extend”、“Hide USB disk”、“Create separate system partition”;

Delete 删除,删除当前选中的分区,该分区的数据将被全部摸除!;

Format格式化,格式化当前选中的分区,该分区的数据将被全部摸除!;

New 新建;在未分配的空间的新建一个分区,可以指定分区大小;

Extend 扩展;调整当前选中的分区的容量;

Hide USB disk;隐藏 USB 磁盘,仅在使用了“Bootable Windows USB Stack组件后显示(允许WES 7从USB驱动器中启动,COOL~)”

Create separate system partition 建立系统隔离分区,该分区处于隐藏状态、不为该分区分配盘符、该分区容量100MB装有Windows的引导器(Bootmgr)(见图 2-21);

- 16 -

- 17 -

如果选择的分区不符合构建镜像的条件,可以单击提示信息,得到详细的错误信息和解决方法(见图 2-21)

图2-19 选择安装位置-1

图2-20 选择安装位置-2

- 17 -

- 18 -

图2-20 选择安装位置-3

在两次重启和耐心等待30-90分钟之后,剩下的就很容易了,按照提示输入帐户名、计算名、设置密码、产品密钥等信息。最终进入“桌面”。

图2-21

输入帐户名、计算机名

- 18 -

- 19 -

- 19 -

图2-22 设置密码

2-23 输入产品密钥

图2-24 评估版提示

- 20 -

- 20 -

图2-25 配置Windows更新

图2-26 配置日期、时间、时区

图2-27 配置网络位置

- 21 -

图2-27 完成……

图2-28 启动中……

图2-29 版本信息

到此为止我们这个嵌入式系统镜像构建完成。

第三章 Image Configuration Editor(ICE)

3.1

IMAGE

CONFIGURATION

EDITOR(ICE)概述

- 21 -

- 22 -

已经读过第一、二章的人应该知道Image Builder Wizard (IBW,镜像构建向导)可以通过读取Answer File(应答文件),来进行操作。Image Configuration Editor(ICE,镜像配置编辑器)主要功能的其中之一就是提供一个图形化的工具来编写Answer File,让你免去用记事本写应答文件的烦恼。当然你除了用ICE方便、快速的写应答文件以外,你还可以用ICE直接生成一个安装源(很方便,鼠标点两下即可,不需要了解和掌握Windows PE

3.0、Bootmgr等相关的技术)。

3.2 安装Image Configuration Editor(ICE)

ICE对硬件的要求请参见第一章。

• 步骤 1:将开发工具的Toolkit光盘插入光驱或者将开发工具的Toolkit光盘镜像载入虚拟光驱,如果没有自动运行,请找到光驱根目录里的并双击执行它。见图 3-1

图3-1 Toolkit光盘的根目录

• 步骤 2:单击“Next”按钮,跳过说明。见图 3-2

- 22 -

- 23 -

图3-2 Toolkit光盘的根目录

• 步骤 3:选中“I accept the terms in the License Ageement”,表示接受许可协议。然后单击“Next”按钮继续。见图 3-3

图3-3 接受许可协议

• 步骤 4:选中“Custom”,表示自定义安装。然后单击“Next”按钮继续。见图 3-4

- 23 -

- 24 -

图3-4 自定义安装

• 步骤 5:按照图 3-5所示选择要安装的组件,单击“Browse”按钮可以选择各个组件的安装目录,然后单击“Next”按钮继续。

在这里详细介绍一下各个组件的功能:

ToolsImage Builder Wizard(IBW):IBW的原文件,如果要使用ICE创建Bootable IBW镜像(WES7的安装源)则必须安装;

Embedded SDK:嵌入式特性的SDK,包含EWF、FBWF的头文件(.h)lib文件(用于自己编写EWF和FBWF的控制程序)、Dialog Filter Editor(对话框过滤器)等工具;

Distribution Sharesx86 Distribution Share:32bit的的分布式共享库;

Distribution SharesAMD64 Distribution Share:64bit的构架的分布式共享库,若安装则在安装过程中要求插入Standard_7_64bit的光盘;

注意:与上一代开发工具WES 2009 不同,组件库不再存储在数据库中,而转而存储在分布式共享库(Distribution Share,DS)中。由于不再依赖数据库所以带来一个问题:开发者每次建立一个工程往往都需要直接修改分布式共享库中的一些文件,也就是说分布式共享库成为工程文件的一部分。所以在此建议每建立一个工程时,开发人员自己建立一个分布式共享库供对应的工程使用,而不“安装”分布式共享库。建立分布式共享库是非常容易的。只要将分布式共享库的文件从光盘中拷贝出来即可。具体在下一节中详细讲解。

- 24 -

- 25 -

图3-5 选择要安装的组件

• 步骤 6:确认安装。然后单击“Install”按钮开始安装。见图 3-6

图3-6 确认安装

• 步骤 7:单击“Finish”按钮完成安装。见图 3-7

- 25 -

- 26 -

图3-7 完成安装

3.3 开发基础

第一次启动ICE,会要求输入产品序列号(见图 4-1),如果不输入可以评估180天。在这里我们选择进行评估。之后会询问是否帮助微软改进产品?

图3-8 输入产品序列号

首先介绍一下ICE的界面。见图 3-9,正式版的ICE的界面和前几个的测试版有一些变化。

①菜单栏,具体见表 3-1;

②工具栏,从左到右依次是新建应答文件、打开应答文件、关闭应答文件、保存、删除、查找、依赖性检查、生成应答文件及其所附带的系统文件;

③ Distribution Share(DS,分布式共享库)栏。主要显示分布式共享库中的组件;

- 26 -

- 27 -

④ Answer File(应答文件)栏。主要显示应答文件中的组件,在这里应答文件可以看作是上一代开发工具(XPE、WES)的工程文件;

⑤ 设置和属性栏。用于显示和修改被选中的组件的设置和属性(如果你选中的是DS中的组件,那么只能看不能改),特别要注意IBW在构建系统中分为7个阶段,大多数组件的属性的值需要针对这7个阶段分别设置。

⑥ 日志信息栏;

图3-9 ICE的界面

表3-1 ICE的菜单栏

界面大家已经熟悉了,在继续之前,先让我们先了解一下整个的IBW构建系统镜像的流程和部署构建系统镜像的流程。在上面提到过IBW构建系统镜像和你进行部署的时候需要经历7个阶段(根据部署方式的不同,不会全部经过这7个阶段)。同在第一章中我们说过,WES 7的开发(部署)流程,具体参见第一章的图 1-3。综合一下,具体来说当你部署系统镜像的方式主要分为两个阶段:

- 27 -

- 28 -

A:从零开始,使用IBW构建系统镜像(向上一章那样手动或者通过应答文件)。

B:你已经有了构建好的系统镜像-〉将系统进行镜像封装(sysprep+应答文件)-〉用imageX捕获镜像-〉用imageX释放(部署)镜像到每台设备中(或者使用其他工具完成系统镜像部署)。

见图 3-10,下图展示了IBW构建系统镜像的7个阶段:

图3-10 7个阶段的界面

A列,代表从零开始,使用IBW构建系统镜像所经历的阶段。B列,代表使用sysprep封装系统镜像后,在第一启动时进行的“安装”操作时所经历的阶段。对各个阶段的具体解释,请参见见表 3-2。该表是从AIK的帮助文档中截取的,表中的windows安装程序相当于IBW。

注意:并不是在所有情况下都会经历每个阶段。

图中,windowsPE阶段被拆分成了2部分,分别代表IBW被加载的前后(IBW可以看作windows的安装程序)。

- 28 -

- 29 -

表3-2 各个阶段

3.4 Image Configuration Editor(ICE)基础操作

现在然我们正是用Image Configuration Editor(ICE)编写一个简单文件,好让大家熟悉一下Image

Configuration Editor(ICE)的基础操作。

步骤一 打开Image Configuration Editor(ICE),选择菜单“File-〉Select Distrbution Share…”选择分布式共享库的位置 ,见图 3-11。

如果按照你在安装ICE过程中安装了分布式共享库的,那么安装目录中可以找到一个名称为DS的文件夹,- 29 -

- 30 -

该文件夹就是分布式共享库(64bit的分布式共享库的名称是DS64),例如:“C:Program FilesWindows Embedded

Standard 7DS”,如果你没有安装分布式空享库,可以将32bit或64bit的runtime光盘的所有文件,拷贝到一个空文件夹下,这后选择这个文件夹。

图3-11 选择分布式共享库-1

步骤二 选择菜单“File-〉File/New Answer File“,新建立一个应答文件。,见图 3-12。

介绍一下左侧的DS库中各个分类的用途:

$OEM$ Folder :OEM 文件夹,该文件夹中的文件会被拷贝到最终的系统镜像中(具体参见帮助文档)。

Out-of Box Drivers:用户集成驱动的文件夹

PackagesDrives:系统自带的驱动

PackagesFeaturesPack: 系统组件包

PackageslanguagePack: 语言包

Packagesproduct:配置包,该包只有一个组件,但该组件带有很多属性,用于进行一些配置。当你新建一个应答文件时会自动添加该组件包。

Templates:模板

- 30 -

- 31 -

图3-12 选择分布式共享库-2

步骤三 选择菜单“Validate-〉Add Required Packages(添加需要的组件包)“进行依赖性检查,双击下方日志区域的错误信息。见图 3-13,我们按照图 3-14所示,选择组件。

图3-13 依赖性检查-1

- 31 -

- 32 -

图3-14 依赖性检查-2

最底下是语言包,我们选择“Simplified(PRC)Chinese Language Pack(简体中文)”之后单击“OK”按钮。

再次选择菜单“Validate-〉Add Required Packages(添加需要的组件包)“进行依赖性检查。(当在解决了依 赖性问题后,应再进行一次依赖性检查,直到不再出现依赖性问题为止)。

在这里详细讲一下:

Windows Boot Environment(标准的引导器)

Embedded Write Filter Boot Environment(支持写过滤器的引导器)

Unbaranded Startup Screens(选择后系统的登录界面、系统属性等没有Windows Embedded Standard的标志)

Windows Embedded Startup Screens(选择后系统的登录界面、系统属性等有Windows Embedded

Standard的标志)

- 32 -

- 33 -

Command Prompt Shell with Custom Shell Support(登录后CMD作为shell启动,或者设置一个程序作为shell启动)

Windows Explorer Shell(登陆后启动标准的shell,就是大家平常看到的桌面)

Bootable Windows USB Stack(系统镜像能从USB设备中引导,包括可移动磁盘)

Standard Windows USB Stack(系统镜像不能从USB设备中引导,包括可移动磁盘)

一个组件往往要依赖其他组件的支持,所以要进行依赖性检查。其实依赖性检查在其实在上一章中曾经介绍过。这里再讲一下,依赖性检查会出现一下情况:

至少选择一个组件,只能选一个;见图 3-15

至少选择一个组件,可多选;见图 3-16

必须选择所以组件,可多选;见图 3-17

发生冲突必须取消选中一个或多个组件(不会删除组件,而是禁用组件);见图 3-18

特别要注意:“Resolve Dependencies”窗口中第一行的粗体字,表示那个组件(组件名)提出的要求。

如果选择菜单“Validate”->“Add Required Packages”(自动添加需要的组件,这样可以获得最小的镜像)

如果选择菜单“Validate”->“Add Required And Optional Packages”会添加一些额外的组件,会提高软件兼容性,但是会增大体积。

建议用“Add Required Packages”然后根据自己需要添加组件。

图3-15 依赖性检查-3

- 33 -

- 34 -

图3-16 依赖性检查-4

图3-17 依赖性检查-5

- 34 -

- 35 -

图3-18 依赖性检查-6

步骤四 展开在左侧DS库的“PackagesEmbedded Enabling Features”,双击“Enhanced Write Filter with

HORM”,这样我们就将一个组件添加到应答文件中。见图 3-19

- 35 -

- 36 -

图3-19 添加组件

步骤五 在选中组件的情况下,查看最右侧的配置和属性栏。这里面分两个选项卡“Settings”和“Properties”。“Settings”中主要是设置该组件在IBW中的设置,例如:对于Enhanced Write Filter with HORM 组件来说,设置Enhanced Write Filter(EWF)(Enhanced Write Filter-增强型写过滤器将所选定的磁盘I/O路由改变到内存或另一种存储介质上,从而使OS认为您的只读存储器是可写的)的工作模式,见图 3-20。“Properties”中主要是设置该组件在ICE中的属性,例如:是否启用或禁用该组件,见图 3-21。

这里边重点介绍一些如何配置“Settings”选项卡的属性。注意画红框的部分,我们在上面讲过Windows的安装有7个阶段,一个包(组件)的属性可能在不同阶段分别有设置,pass:P1代表第一阶段……一直到pass:P7(这些阶段随着部署的方式不同不会都被执行!)。

Fliter view 设置成“All Settings”可以显示(只能看,不能改。如果修改请设置Fliter view 到对应的阶段)这个包(组件)的全部设置。

但是如果其中一个属性在不同阶段都有,只显示一个!设置后会变成粗体,另外PASS后面会有*号标明。同时对于有自定义设置的包(组件)的图标会变成深蓝色。

您可以显示一组包(组件)的全部属性,这样方便查找。

- 36 -

- 37 -

图3-20 组件的设置

图3-21 组件的属性

到此为止,大家已经熟悉了一下ICE的基础操作,在下一章中我们将介绍一个开发实例。

第四章实战开发- 37 -

4.1 我们要做什么?

- 38 -

OK,我想当大家看过前三章后,对WES7的就开发应该有了一个初步的了解。在本章将讲解以在Vmware

虚拟机为硬件平台。在Vmware虚拟机上开发出一个WES 7 的嵌入式系统镜像。借此演示一个标准使用ICE编写应答文件和自定义开发工具的开发流程。这个开发流程包含一些嵌入式特性的使用。以及覆盖了如何配置应答文件实现无人值守安装、如何集成驱动、在镜像的安装过程中如何执行自定义命令和脚、如何封装系统镜像以便进行大规模部署等大家常会接触到的问题。

4.2 建立虚拟机和采集硬件信息

• 步骤 1:对于如何建立Vmware Workstation 7虚拟机,这里不详细讲解。只要设置虚拟机的宿主操作系统为“Windows 7”就可以。

图4-1 Vmware Workstation 虚拟机

• 步骤 2:将Standard_7_载入虚拟机的光驱,然后启动虚拟机,并从光盘引导。单击“Launch

WinPE Command Prompt”

- 38 -

- 39 -

• 步骤 3:准备一个格式化好的USB U盘,将USB U盘挂载进虚拟机。

• 步骤 4:键入“Tap /o c:”。c:为U盘的盘符(将生成的PMQ文件保存到U盘当中)

- 39 -

- 40 -

4.3 用Image Configuration Editor(ICE)编写应答文件(用与构建母板镜像)

• 步骤 1:打开Image Configuration Editor(ICE), 菜单“File”>“Select Distribution Share”选择Distribution Share文件夹的位置。默认位置是“C:Program FilesWindows Embedded Standard 7DS”如果是64bit的Distribution Share,文件夹的名称应为DS64。Distribution Share是由开发工具提供的,用户不应在其根目录建立新的文件夹。

• 步骤 2:单击“New…”按钮,新建一个应答文件。双击“Distribution Share/Templates/IBW”下的“Thin

- 40 -

- 41 -

• 步骤 3:菜单“File>Import>import PMQ”,选择在上一节中生成的PMQ文件,并导入。

• 步骤 4: 菜单“Validate>Add Required Packages”。双击下方的错误信息。

- 41 -

- 42 -

• 步骤 5: 取消选中“Windows Explorer Shell”,选中“Command Prompt Shell with Shell Support”和“Simplified(PRC) Chinese Language Pack ”。单击“OK”按钮。

• 步骤 6: 菜单“Validate>Add Required Packages”。展开“Distribution SharePackagesFeature

PackEmbedded Enabling Features”双击Hide Boot Screens。

- 42 -

- 43 -

• 步骤 7: 找到VMware Workstation的安装目录下的,用winrar或者其他软件打开,将里面的所有文件拷贝到DS库的“$OEM$ Folders$1Program Filesvmtoolsetup”下,例如:C:Program

FilesWindows Embedded Standard 7DS$OEM$ Folders$1Program Filesvmtoolsetup”文件夹。

之后在“DS$OEM$ Folders$1WindowsSetupScripts”文件夹下建立一个名称为“”脚本文件。编辑该文件加入下列命令:

“C:Program ” /v/qn

C:

这样做会在第7个阶段(OOBE)执行上面2条命令,但是此种执行命令或脚本的方法并不会检查被执行命令的返回值,另外如上所示,第一条命令执行后会重新启动计算机,这有可能造成第二条命令未被执行或没有被完整的执行。这点在开发过程中要注意!

• 步骤 8:将DS库的“$OEM$ Folders$1Program FilesvmtoolsetupProgram FilesVMwareVMware

ToolsDrivers”的“scsi”文件夹拷贝到DS库的“Out-of-Box Drivers目录中,例如将“C:Program

FilesWindows Embedded Standard 7DS$OEM$ Folders$1Program FilesvmtoolsetupProgram

FilesVMwareVMware ToolsDrivers”的“scsi”文件夹拷贝到“C:Program FilesWindows Embedded Standard

7DSOut-of-Box Drivers”文件夹下。

- 43 -

- 44 -

$1文件夹下的所有文件将会被IBE自动拷贝到目标系统盘中。其他类似“$1”的“变量”可以从帮助文档中查询。除了此种集成文件的方法:使用imageX修改IBW光盘DS目录下的文件。在这里就不详细介绍了。

• 步骤 9:菜单“insert > OEM Folders Path…”选中 “C:Program FilesWindows Embedded Standard 7DS”下的“$OEM$ Folders”文件夹,然后单击“Open”按钮。

• 步骤 10:按快捷键“Ctrl+F”,输入“Home”,单击“Find”按钮。双击下方的“Answer file”的“IE-InternetExplorer_x86/Home_Page”。

- 44 -

- 45 -

• 步骤 11:将“Home_Page”的“Value”设置成“”。

• 步骤 12:将同页上方的“DisableFirstRunWizard”和“DisableWelcomePage”的“Value”设置成“True”。

- 45 -

- 46 -

• 步骤 13: 展开并选中“Answer FileUntitledFeaturePackUser Interface Command Prompt Shell with

Shell Support ”。

设置“Filter view by:”为“2 Offline Servicing”。

设置“CustomShell”的“Value”为“C:”

此处称之为自定义Shell,是大家常用的嵌入式特性之一。可以将用户“锁定”在自定义的应用程序。此处以命令提示符为例(默认就是命令提示符)。

- 46 -

- 47 -

• 步骤 14: 在做完第8步之后,展开选中“Distribution Share/Out-of-Box Drivers/mydevices”,鼠标右键“Insert Drive Path to Pass 1 WindowsPE”

此处称之为集成驱动,此方法只能集成INF格式的驱动程序!磁盘控制器的驱动(这类驱动称之为系统启动必须加载的驱动程序)要在第一阶段被加载否则将找不到可用的磁盘。

- 47 -

- 48 -

• 步骤 15: 展开“Answer FileUntitledProductOperating SystemFoundation CoreWindows Embedded

EditionSetup_X86UserData”

设置“Filter view by:”为“1 WindowsPE”

设置“AceptEULA”的“Value”为“True”。

展开并设置“ProductKEYKEY”的“Value”为产品的序列号。如果没有请留空,不要使用00000-00000-00000-00000-00000。

设置“WillShowUI”的“Value”为“OnError”

• 步骤 16: 展“AnswerFileUntitledProductOperatingSystemFoundationCoreWindowsEmbedded

EditionInternational-Core-WinPE_X86”。

设置“Filter view by:”为“1 WindowsPE”。

设置“UILanguage”的“Value”为“zh-CN”。

- 48 -