概述
对于一种开发工具的学习,最重要也最困难的阶段就是概念的建立,只要建立了正确的概念,明白整个系统的体系结构和各种工具作用,剩下的工作就是实际操作,积累经验了,最多不过在需要的时候查一查手册。
本文通过指导读者进行实际操作,一步步地完成一次完整的开发工作,从而帮助读者建立一个清晰明确的概念。
因为我们开发的产品不是普通的软件,而是专用的操作系统,所以需要针对某个特定的硬件平台(目标机)来进行开发;首先需要一个强大的工作站来运行开发环境和开发工具,然后根据目标机硬件配置和软件需求进行开发,开发完成后将做好的操作系统影象文件(
Image
)与目标机硬件结合,运行系统并测试。
配置开发工作站
首先介绍开发用的工作站,一台标准PC
机,硬件配置要求如下:
? ?
操作系统
Windows XP Professional
? ? PIII 500MHz
以上(建议
1GHz
以上)
? ? 256MB
内存
(建议
512MB
)
? ? 3GB
剩余硬盘空间
对该PC
机的配置如下:
? ?
将硬盘设置两个分区
? ?
第二个分区分配为
700MB
,可以是
FAT32
格式或
NTFS
格式(这个分区将包含可启动的
Windows XP Embedded Image
)
? ?
主分区使用所有剩余的硬盘空间,可以设置为
FAT32
格式或者
NTFS
格式
? ?
在主分区中安装
Windows XP Professional
系统,并安装
Windows XP Embedded
开发工具
修改
BOOT.ini
文件,将下面的代码部分增加到该文件中,可以使这台
PC
机双重启动,作为开发用的
Windows XP Professional
系统从分区一启动,而开发好的
Windows XP Embedded Image
从分区二启动。
[boot loader]
timeout=
30
default=
multi(0)disk(0)rdisk(0)partition(1)//Windows
[operating systems]
multi(
0)disk(0)rdisk(0)partition(1)//Windows="Microsoft Windows XP Professional" /fastdetect
multi(
0)disk(0)rdisk(0)partition(2)//Windows="Microsoft Windows XP Embeddedd" /fastdetect
安装Windows XP Embedded
开发工具
将
Windows XP Embedded
开发包的
CD1
放入
CD-ROM
中,在自动运行的提示中,
按照以下顺序安装
XPE
开发工具:
? ? Tools Setup
:安装
XPE
开发工具(包括
Target Designer, Component Designer, Component Database Manager,
以及其他工具)
? ? Database Engine Setup
:
安装
SQL Server 2000 Desktop Edition database engine (MSDE)
? ? Database Setup
:
安装组件数据库及
Repositories
开发工作站的其他配置
在
C
盘新建一个
XPE_Demo
目录,用来放置开发中生成的配置定义文件和组件定义文件。
从
CD-ROM
上安装
TweakUI
示例文件到
C
:
//Program Files//TweakUI
。
这样我们就完成了开发工作站的准备工作。
硬件平台分析
在开发过程中,首先需要运行硬件分析程序来分析当前机器的硬件配置情况。
操作系统与硬件紧密相关,只用充分地了解和支持硬件,才能让操作系统正常稳定的运行。由于
X86
结构计算机的硬件比较复杂,普通开发者很难对它充分地理解熟悉,因此,微软提供了一个硬件分析工具来帮助开发者分析硬件。
Windows XP Embedded
提供的这个工具叫
Target Analyzer
,可以自动分析所在设备的硬件信息,
Target Analyzer
有两个版本:
TA.exe
和
TAP.exe
。分析完成后会在同一个目录中产生一个
XML
格式的输出文件
Devices.pmq
。
TAP.exe
是一个
32
位的应用程序,运行在
Windows XP
和
Windows 2000
上,可以运行一些高级的硬件检测。
TA.exe
是一个
16
位应用程序,运行在
DOS
上,可以用来检测一些无法安装
Windows 2000
及
Windows XP
的系统,但检测的功能要差一些,有的硬件设备无法识别。
下面我们运行TAP.exe
来检测这台开发机的硬件配置:
?
进入
C://Program Files//Windows Embedded//Utilities
目录
?
运行
TAP.exe
,会在同目录中生成
Devices.pmq
用文本编辑器打开这个
Device.pmq
文件,文件中用
XML
语言描述了目标设备的硬件信息,例如:在
PCI
段中,描述了
Intel
的
21440 Ethernet
控制器。
因为我们是在开发工作站上运行了这个程序,所以
Devices.pmq
中包含的是开发工作站的硬件信息。
保存硬件平台信息
使用
Devices.pmq
中的信息有两个办法,其一可以根据这个文件生成一个
XPE
组件,为以后开发完整的操作系统作准备;其二可以在开发时将这个文件直接导入;将
PMQ
文件做成
XPE
组件的好处是,可以一次工作反复使用:做成
XPE
组件后保存到组件数据库中,以后每次开发系统都可以调用。
? ?
运行组件设计器
Component Designer
? ?
将刚才生成的
Devices.pmq
文件导入,选择
File/Impot
…
,弹出导入对话框
? ?
按下“
Start
”按钮,开始
PMQ
文件的导入过程,该过程大约耗时
10
分钟;完成后,会在
Component Designer
中显示一个‘
Devices.sld
’组件,将其改名为‘
Demo Platform Component
’
? ?
展开
Component Designer
中目录结构
Windows XP Embedded Client
Components
Devices
选中
Devices
,将组件的
Name
属性由‘
Devices
’改为‘
Demo Platform Component
’
你可以将该组件设为‘
Selector Prototype Component
’类型,成为该类型的组件后,可以在
Target Designer
中单独地选取该组件所关联的各个设备:
? ?
在
Prototype
栏中按下
Browse
…,弹出
Select Prototype Component
对话框。
? ?
在
Prototype component source
栏中选中
Database
选项。
? ?
在组件树列表中展开到
Software/Test&Developnent
,选中
Selector Prototype Component
组件。
? ?
按下
OK
确定。
选择
File/Save as
菜单将该配置保存为“
C://XPE_Demo//DemoPlatform.SLD
”
这个
SLD
文件中就包含了前面开发的
Demo Platform Component
组件,关闭
Component Designer
。
1. 2.
要在
Target Designer
中使用这个组件,需要先把这个组件保存到组件数据库中:
? ?
打开
Component Database Manager
,开始菜单
//
所有程序
//Microsoft Windows Embedded Studio//Component Database Manager
? ?
点击‘
Import
’按钮,在
SLD file:
栏中按下浏览按钮,找到“
C://XPE_Demo//DemoPlatform.SLD
”,点击
Import
。
? ? Import
成功后,关闭
Component Database Manager
。
? ?
确认工作成果:
打开
Target Designer
,选择
File/New
菜单,建立一个新的配置
Configuration
,确认
Demo Platform Component
是否在
Target Designer
左侧的组件浏览器中,如果发现该组件,则说明刚才的硬件分析工作顺利完成了。
创建初始化配置
要构造一个完整的
XPE
系统,首先需要在
Target Designer
中创建一个配置(
Configuration
),这个配置仅仅是一个空的开发框架,然后在该配置中添加所有的硬件支持组件,系统内核组件和软件功能组件。添加完成后使用
Target Designer
自动检测组件的关联关系,并自动把缺少的组件添加到配置中。
?
首先运行
Target Designer
?
选择
File
菜单
?
选择
New
,创建一个新的
Windows XP Embedded
配置
?
将该配置的
Name
改为
DemoPlatform
在下面的
Choose Platform
中,选择
Windows XP Embedded Client (x86)
按下
OK
按钮创建该配置并保存
在
Target Designer
中间的组件列表栏中,选中
DemoPlatform.slx
,在右边的属性栏中修改配置的属性,添入您的个人信息(
Name, Owner, Author, Description
等)
设置高级参数
下面设置一些整个系统运行需要的参数
在配置浏览器的顶端,展开
DemoPlatform.slx
,选中
Settings
,这时右边的属性设置面板会显示可以设置的选项
在
Target Devices Settings
下面,点击
Show
,显示详细的选项
设置下列的配置信息:
? ? Boot Drive = C:
? ? Windows Folder = D://Windows
? ? Program Files Folder = D://Program Files
? ? Documents and Settings folder = D://Documents and Settings
? ? Boot ARC path = multi(0)disk(0)rdisk(0)partition(2)
? ? Boot Partition Size (MB) = 700
设置完成后,将配置信息保存到
C://XPE_Demo
目录。
创建
XPE
组件
通常每一个嵌入式设备都会运行一个或多个用户自己的应用程序,另外如果使用了非通用的硬件设备,还需要添加相应的驱动程序;怎样把这些相对独立于操作系统的部分集成到操作系统中来,使其成为一个整体?推荐的方法是,将各个独立的部分做成
XPE
组件,在开发阶段进行集成;通常该工作可以分成五个阶段:
? ?
确定组件使用的资源以及设置
? ?
在
Component Designer
中配置组件的资源和设置选项
? ?
创建一个
Repository
,将该组件使用的文件加入到该
Repository
中
? ?
保存该组件的配置信息
? ?
将该组件导入到
Component Database Manager
中
下面我们就以一个实际的例子来说明,为
TweakUI
Control Panel
程序创建一个
XPE
组件。
? ?
打开
Component Designer
。
? ?
选择
File//Import
菜单,将浏览的文件类型设置为
Setup Information Files
(
*.inf
)
? ?
选择“
C
:
//Program Files//TweakUI//TweakUI.inf
”
,
并将其导入,
Component Designer
可以根据
TweakUI.inf
中的信息,自动生成一个组件。
? ?
需要为这个组件添加一个
Repository
,这个
Repository
实际上是一个系统目录,该目录中包含组件所需要的文件,每一个带有文件的组件都会对应一个或多个
Repository
,打开
Component Designer
中的
Repositories
文件夹。
点击右键,在弹出菜单中选择“
Add Repository
”,新建一个
Repository
。
在该
Repository
的
Name
属性中填入
Tweak UI Files
点击
Source Path
栏中的
Browse
按钮,找到
C
:
//Program Files//TweakUI
。
在
Component Designer
中选中
TweakUI.inf
组件
在该组件的属性栏中,按下
Repository
按钮
在弹出的
Select Repository
对话框中,选择
Tweak UI Files
项目,确定。
最后,选中
tweakui.inf
组件,在右边的属性设置面板中将该组件的名字改为
Tweak UI Control Panel Applet
。
选择
File/Save as
,保存为
"C://XPE_Demo//TweakUI.SLD"
,关闭
Component Designer
。
到此已经完成了
TweakUI
组件的创建;同前面创建的硬件信息组件一样,要在
Targert
Designer
中使用这个组件,必须先将其导入到组件数据库中。
打开
Component Database Manager
,
Import
这个
TweakUI
组件:找到
"C://XPE_Demo//TweakUI.sld"
并导入
导入完成后,关闭
Component Database Manager
打开
Target Designer
打开刚才创建的配置
DemoPlatform
确认
Demo Platform Component
组件和
Tweak UI Control Panel Applet
组件都在
Target Designer
的组件浏览器中。
与其他组件不同,利用
Target Analyzer
的输出文件
Devices.pmq
生成的组件是一个宏组件,宏组件本身不具备什么功能,仅仅是带有与其他组件的关联关系;前面我们开发了一个名为“
Demo Platform Component
”的宏组件,利用该组件可以方便的为初始化配置添加硬件支持。
构造
XPE
系统影像文件
到此我们已经完成的硬件信息的分析并开发了一个硬件信息组件,开发了一个应用程序的组件,另外还建立了初始化的配置。在本节中我们来完成一个完整配置的开发工作。
打开
Target Designer
第一个需要添加的组件是由
Devices.pmq
文件产生的宏组件
Demo Platform Component
,加入了这个组件,就把硬件信息全部添加到配置中;只要在
Target Designer
左侧的组件浏览器面板中双击该组件就可以添加该组件到配置中。
在组件浏览器中,找到
Demo Platform Component
组件,将该组件加入配置中。
如果没有找到该组件,可以在查找栏中输入它的名字进行检索。
在
Target Desinger
中包含了一万一千多个组件,怎样找到自己需要的组件呢?下面我们来讨论一下组件浏览器中的过滤器。
可以通过过滤的方法找到一个组件或一组相关的组件,
Windows XP Embedded
开发包内包含的大量组件可以通过过滤器方便地进行查找。
点击在组件浏览器上面的
Filter
按钮,创建一个新的过滤器
在
Filter Manager
对话框中,按
New
按钮
在
Name
栏填入
TweakUI
在过滤规则描述栏中,双击过滤规则“
Component Display Name Contains[Sybstring]
”,在出现的
Filter Editor
对话框中,输入
TweakK
按下
OK
关闭过滤编辑器
在
Filter Manager
中,
Avalable
Filter List
栏中应该显示
Tweak
选择
Tweak
过滤器,并按下
Apply Filter
按钮
在组件浏览器中,会仅仅显示
Tweak UI Control Panel Applet
组件
将该组件加入到配置中
将过滤器恢复到
All Conponents
显示状态,显示所有的组件
下一步,将向配置中添加
Design Template
组件,这个设计模板组件也是个宏组件,并且与
Demo Platform Component
组件非常类似;所谓宏组件是指一个仅仅包含组件关联信息的组件,而没有其他功能。例如可以将与
TCP/IP
协议有关的
20
个组件都与一个名为
TCP/IP
的宏组件关联,通过添加这个
TCP/IP
宏组件,可以一次添加那
20
个组件。
向配置中添加组件的方法有很多,可以单个组件逐一添加;可以添加宏组件;也可以通过
Target Designer
的关联性检查功能自动添加组件。
Windows XP Embedded
提供了若干的模板组件,从单一的软件功能如
TCP/IP
、
DerictX8.0
到整个系统模板如机顶盒模板、
POS
机模板都有,可以根据实际应用考虑使用其中一个。
加入
Windows-based Terminal Professional
组件,这个组件可以在
Design Templates
文件夹中找到。在配置面板中,扩展这个组件,并选中
Settings
,右边的属性面板会显示该宏组件中主要的组件模块。
下一步工作是要向配置中添加其他必须的核心组件,在这个例子中,你的文件系统是
FAT
格式,所以需要添加
FAT
组件
1. 1.
可以在
Software//System//Storage and File Systems//Infrastructure//File Systems
路径下找到
FAT
组件
2. 2.
再加入
Fat format
组件,该组件在
Software//System//Storage and File Systems//Applications
路径下
3. 3.
加入
Explore Shell
组件,该组件在
Software//System//User Interface//Shells
路径下
4. 4.
加入
NT Loader
组件,该组件在
Software|System
//System Services//Base.
路径下
最后,进行关联性检查,确保所有的必要组件都已经添加到配置中。
在
Configuration
菜单中,选择
Check Dependencies
进行组件关联性检查,所有宏组件的关联组件以及缺少的组件都会自动添加到配置中。
关联性检查结束后,会提示一个错误:
Component: "Regional and Language Options [Version 5.1.2600, R620]" requires at least one additional enabled component not in the configuration.
Target Designer
不能通过自动添加组件解决这个错误,因为有多个组件可以选择,所以
Target Designer
会将可以选择的组件列出,由开发者自己决定添加哪一个组件。
选择
Target Designer
底部的
Tasks
栏
双击上面的条目,
Target Designer
会显示一个提示,要开发者从多个可选的组件中挑选需要的组件。
在本例子中,选择
English Language Support
组件,按下
Add
按钮,尽管其他语言也列出了,但并不是必须的。
开始菜单选项
在关联性检查阶段,
User Interface Core
组件会被自动添加到配置中,因为其他开发者选中的组件需要该组件的支持;如果需要在
Image
的开始菜单中包含需要的菜单,则要设置该组件的选项。
选择的开始菜单选项:
? ? Show Control Panel on Start Menu
? ? Show My Computer on Start Menu
不要选择的开始菜单项:
? ? Prohibit Access to Hot Keys
? ? Prohibit Access to Control Panel
最后再进行一次关联性检查。
构造及测试运行时
IMAGE
在
Configuration
菜单中,选中
Build Target Image
…
菜单项,出现
Build
对话框
在
Destination
栏中,添入一个保存
Image
的空目录,例如在
C://Windows Embedded Images
目录下,建立一个新的空目录
Test Configuration
log
文件应保存在另外的目录中,不要与
Image
在同一目录
按下
Build
按钮,
Target Designer
会完成
Image
的构建;完成后,在指定目录下会生成如下的文件和目录集合
如果在运行了关联性检查之后,对配置进行了改变,构建
Image
时,
Target Designer
会提示开发者再做一次关联性检查。
构件完成后,会显示如下的提示框:
在上面的例子中,请注意提示
No Errors
,但有两个
Warnings
,第一个
Warning
出现是因为在配置中没有输入
PID
号码,不输入
PID
号码构造出来的
Image
是个限时评估版的;第二个
Warning
出现是因为
Tweak UI
组件被包含进配置,但该组件不是
Released
版本组件,当然对
Image
本身没什么影响。
构造完成后,关闭该对话框。
将以上
Image
文件目录中的目录和文件拷贝到
D
盘的根目录下,因为文件目录必须和前面配置属性中的设定相匹配,拷贝完成后,得到下面图示的目录:
保存配置信息,选择
File
菜单的
Save
菜单项。
关闭
Target Designer
重启机器
测试
XPE
系统
在重启过程中,会提示两个启动选项,运行
Windows XP Professional,
或者运行
Windows XP Embedded.
择
Windows XP Embedded
。
启动选项使用
C
:
//Boot.ini
控制的,在前面我们已经在
Boot.ini
中添加了如下段落:
[boot loader]
timeout=
30
default=
multi(0)disk(0)rdisk(0)partition(1)//WINNT
[operating systems]
multi(
0)disk(0)rdisk(0)partition(1)//WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(
0)disk(0)rdisk(0)partition(2)//WINDOWS="Microsoft Windows XP Embedded" /fastdetect
当
XPE
正常运行后,可以查看在该系统中是否包含了我们需要的功能,以此来检验我们的工作。
打开
Control Panel
,查看其中是否包含了
Tweak UI Control Applet
选项。
运行
Tweak UI
控制面板程序,可以看到下面的对话框:
到此,我们完成了整个开发过程。
开发
XP Embedded Bootable CD
1. 准备工作
首先做一些硬件方面的准备:至少需要一台刻录机和两块硬盘。第一块硬盘就是操作系统所在的硬盘,对分区没有什么特殊要求,但操作系统必须是 Windows 2000/XP/Server 2003 。第二块硬盘是制作光盘的关键,此盘中的分区数量不得大于 4 个,并且要保留至少 8MB 未分区空间,第一个分区为主分区,分区格式为 FAT16 ,容量必须小于一张光盘的容量( 650MB 或 700MB ),根据我们这次讲解的内容计算,分成 300MB 即可。所有分区工作都可在 Windows 中完成,这里不再赘述,分完区千万不要忘记激活第二块硬盘的主分区(下文中称该主分区为“目标区”,第二块硬盘为“目标盘”,第一块硬盘为“系统盘”)。
分好区后,将“ C:/Program Files/Windows Embedded/utilities/ ”中的“ BOOTPREP.exe ”拷贝至目标区,由于这是一个 16 位程序,所以必须在 DOS 下运行。重启电脑,进入 BIOS (一般是按“ Del ”键或“ Ctrl+Alt+Esc ”组合键),将系统盘设为“ None ”(当然,也可以关闭电脑,拆下系统盘),再设置首先从软盘或光盘启动(视你想用哪种方法启动而定),保存退出。使用 Win98 光盘或启动软盘引导至 DOS 界面下,输入“ C: ”,然后回车进入 C 盘,也就是目标区,再输入“ BOOTPREP ”并回车,按两次“ Y ”确认后,目标盘设置完成。
2. 创建“ EnableAutoLayout ”组件并导入
①打开开始菜单中的“ Component Designer ”,在打开的程序界面中选择菜单“ File ”→“ New ”创建一个新的“ sld ”文件。
②展开窗口左侧的“ Windows XP Embedded Client (x86) ”目录,并在“ Components ”目录上单击右键,选择“ Add Component ”。
③在右侧新建窗口的“ Name ”区内输入一个名称,例如“ EnableAutoLayout_Settings ”(图 3 )。
④右键单击左侧窗口中的“ Registry Data ”,选择“ Add ”→“ Registry Data ”,在弹出的“ Add Component Registry Resources ”对话框中分别填写以下值(图 4 ):
Root: HKEY_LOCAL_MACHINE
Key name: SOFTWARE/Microsoft/ Windows/CurrentVersion/OptimalLayout
value name: EnableAutoLayout
Type: REG_DWORD
value: 0
⑤选择“ Default ”单选框,按“ OK ”回到主窗口,选择“ Flie ”→“ Save ”保存为“ EnableAutoLayout.sld ”,下面将该文件导入数据库。
⑥在开始菜单中选择“ Component Database Manager ”,在“ Database ”标签窗口中选择“ Import ”(图 5 )。在弹出对话框的“ SLD file ”一栏中找到刚刚保存的“ EnableAutoLayout.sld ”文件。
⑦最后选择“ Import ”开始导入组件(图 6 ),导完后关闭所有对话框。
3. 创建“ Target hardware device drivers ”组件并导入
①进入目录: C:/Program Files/Windows Embedded/utilities/ ,执行“ tap.exe ”,很快便在同一目录中生成一个“ devices.pmq ”文件。
②在开始菜单中选择“ Component Designer ”,在弹出窗口中选择“ Flie ”→“ Import ”,导入“ devices.pmq ”文件(导入时间较长,图 7 )。
③导入完毕,选择窗口左侧的“ Components ”→“ devices ”,在右侧窗口的“ Name ”文本框中填写“ My devices-hardware ”(图 8 )。
④单击右侧窗口中“ Prototype ”栏旁的“ Browse ”按钮,在弹出窗口中选中“ Software ”→“ Test&Development ”→“ Selector Prototype Component ”(图 9 )。按“ OK ”回到主窗口,选择“ Flie ”→“ Save ”保存文件为“ Mydevices.sld ”。
⑤按第2步中的“⑥”和“⑦”两个步骤将“ Mydevices.sld ”导入到数据库。
4. 创建 El Torito 实时运行镜像( El Torito run-time image )
①在开始菜单中选择“ Target Designer ”,在弹出窗口中选择“ File ”→“ New ”,命名为“ My XP Embedded ”后按“ OK ”(图 10 )。
②“ Target Designer ”的窗口共分为 4 部分,上面左侧窗口中显示所有组件的列表,先前导入的“ Enable AutoLayout_Settings ”和“ My devices-hardware ”组件就放在根目录下。中间窗口中显示新建的“ My XP Embedded ”系统的组件列表,此时还没有任何组件。右侧窗口则用于显示“ My XP Embedded ”系统组件的属性和设置窗口。下面的大窗口显示制作信息,有“ Tasks ”、“ Messages ”和“ Debug ” 3 个标签(图 11 )。
③双击左侧窗口中的“ EnableAutoLayout ”和“ My devices-hardware ”组件,将它们添加到中间的“ My XP Embedded ”窗口中。
④展开左侧窗口中的“ Design Templates ”,双击添加“ Windows-based Terminal Professinal ”组件,这个组件中包含了一个最小化 XP Embedded 所必需的基本组件。
⑤展开左侧窗口中的“ Software ”→“ System ”→“ Storage & Flie System ”→“ Infrastructure ”→“ Flie Systems ”,双击添加“ FAT ”组件。再展开左侧窗口中的“ Software ”→“ System ”→“ Storage & Flie System ”→“ Applications ”,双击添加“ FAT format ”组件。这一步是为实时运行镜像设置文件系统。
⑥展开左侧窗口中的“ Software ”→“ System ”→“ System Services ”→“ Base ”,双击添加“ El Torito CD ”、“ EWF NTLDR ”和“ Enhanced Write Filter ”组件。然后展开中间窗口中的“ Enhanced Write Filter ”组件,选择“ Settings ”,在右侧窗口中将“ Start EWF Enabled ”复选框中的对勾清除(图 12 )。
⑦展开左侧窗口中的“ Software ”→“ System ”→“ User Interface ”→“ Shells ”,双击添加“ Explorer shell ”组件。再展开“ Windows Shells ”子目录,双击添加“ User Interface Core ”组件,并在其“ Settings ”窗口中选中“ Show Run on Start Menu ”一项(图 13 )。
⑧展开左侧窗口中的“ Software ”→“ System ”→“ Management ”→“ Applications ”,双击添加“ EWF Manager Console Application ”组件。再展开“ Software ”→“ System ”→“ International ”→“ Infrastructure ”,双击添加“ Chinese - Simplified Language Support ”。
⑨至此添加组件工作完成,下面检验工作成果,选择菜单“ Configuration ”→“ Check Dependencies ”开始从属性检查(时间比较长),没有问题的话会报告“ No errors or warnings ”(图 14 )。下面就可以建立实时运行镜像了:选择“ Configuration ”→“ Build Target Image ”,在弹出窗口中设置镜像存放位置,然后按“ Build ”开始建立镜像(镜像大约需占用 135MB 硬盘空间,图 15 )。
⑩打开存放镜像的文件夹(默认为: D:/Windows Embedded Images/ ),将其下所有文件及目录拷贝至目标区。
5. 建立 pre-FBA CD
现在就可以用目标区中的文件创建光盘镜像了,用这个镜像刻录的 CD 被称作 pre-FBA CD ,它并不是我们最终需要的光盘,所以建议用 CD-RW 盘片刻录。
①进入目录: C:/Program Files/Windows Embedded/utilities/ ,执行“ Hd2iso.exe ”,这是一个 32 位的命令行程序,有类似“ Fdisk ”的文字菜单(图 16 )。
②按“ 1 ”键选择“ Create an ISO-9660/ELTORITO bootable image file. ”进入 ISO 镜像创建菜单(图 17 )。
③按“ 2 ”键选择“ Set physical drive. ”,界面中会显示出电脑中所有的硬盘,编号从“ 0 ”开始。目标区位于第二块硬盘,所以该硬盘的编号应该是“ 1 ”,按“ 1 ”键选择“ //./physicaldrive1 ”后退回至上一级菜单(图 18 )。
④按“ 3 ”键选择“ Select partition(s) ”进入选择分区菜单 。按“ 1 ”键选择“ BOOTABLE, BIGDOS, 322MB [Not Selected] ”,选择后中括号内的“ Not Selected ”变为“ Selected ”(图 19 ),然后按“ P ”键返回上一级菜单。
⑤按“ 4 ”键选择“ Set image file path ”。即存放光盘镜像的位置,存放该镜像的分区至少要有 700MB 剩余空间,输入路径及文件名,如“ G:/xpos.iso ”(图 20 ),按回车返回上一级菜单。
⑥按“ 5 ”键选择“ Advanced Options ”。进入高级设置界面(图 21 ),其中必须要设置的项目只有一个:“ Specify disk signature ”。按“ 2 ”键进入该项设置,在这里需要输入一串数字,启动“ Target Designeras ”,展开“ El Torito CD ”组件,在其设置项中就有我们需要的那串数字(图 22 )。输入数字后回车退至上一级菜单,该值自动转化为 16 进制数字。按“ P ”键退出高级设置菜单。
⑦按“ 6 ”键选择“ Create Image to package the ISO image ”开始创建光盘镜像,此过程需要较长时间,创建完毕后按“ Q ”键退出。
⑧用 Nero Burning ROM 或其他刻录软件将制作好的镜像刻到 CD-RW 盘片上,至此“ pre-FBA CD ”制作完毕。由于 Windows 无法识别这个镜像中的文件格式,所以查看光盘时内容空空如也,但 322MB 的容量可以显示出来。
6. 引导硬盘上的 El Torito Run-Time 镜像
当 pre-FBA CD 制作完毕后,就可通过它引导目标硬盘上的 El Torito Run-Time 镜像了。关机卸下系统硬盘(在 BIOS 中关闭系统硬盘亦可),在 BIOS 中将启动方式设置为从光盘启动,并将 pre-FBA CD 放入 CD-ROM 驱动器中。系统首先从 pre-FBA CD 启动,加载相关信息之后,便把“权力”转让给硬盘中的镜像继续完成引导,这个引导过程中系统会不断从 pre-FBA CD 中读取信息,完成 XP Embedded 的配置,这个过程被称为 First Boot Agent ( FBA ),要经过两次重启才能完成。另外, Enhanced Write Filter ( EWF )也在这个阶段开始工作并创建一个临时配置分区(图 23 )。
进入 XP Embedded 界面后,需要确定 EWF 的状态,下面的操作均在 XP Embedded 系统内完成。
①确认所有 EWF Volume 的配置情况,在“开始”→“运行”中输入 CMD 并回车,调出命令提示符界面。然后键入“ Ewfmgr.exe ”,如果 EWF Volume 配置正确,则会显示 EWF Volume 的情况。
②确认 C 分区是否为受 EWF 保护的分区,在“命令提示符”界面中输入“ Ewfmgr C: ”,如果配置正确,则会显示 Protected Volume 的信息。
④选择“开始”→“程序”→“ Windows 资源管理器”。查看你的系统中是否包括磁盘“ El Torito CD ”(实际上就是光驱中的 pre-FBA CD ,不过它在 XP Embedded 中被当作卷名为“ El Torito CD ”的磁盘)和目标区。
⑤如果上述检查都正常,那么你就可以对这个 El Torito Run-Time 镜像进行更多的定制了,如增加应用程序等,增加软件的方法和在 WinXP 中安装软件的方法一样,很简单吧?
7. 运行“ Etprep.exe ”
制作最终的系统光盘前还需要执行程序“ Etprep.exe ”,这个工具执行如下任务:删除目标盘上在 FBA 过程中建立的 EWF 配置分区;交换“ El Torito CD ”磁盘和目标区的驱动器符号,这一步过后,就无法通过目标区中的“ El Torito Run-Time ”镜像启动了。
①调出“命令提示符”界面,进入“ /Windows/system32 ”目录并运行如下命令: etprep /all 。
②如果操作成功会显示如下文字:
Deleted EWFpartitions = 1.
Swapped ElTorito volume drive E: with Boot volume C: .
③在执行“ Etprep.exe ”后,系统会自动重启,由于目标区已经无法引导系统,所以重启后手动关闭计算机。如果没有自动重启,手动关闭机器即可。
8. 制作最终的 XP Embedded Bootable CD
现在可以制作最终的系统光盘了。这个过程与制作 pre-FBA CD 的过程一模一样,请按“ 5. ”中所述步骤制作最终的光盘镜像。在刻录成 CD 前,最好使用虚拟 PC 软件测试一下这个镜像,但要注意只有 VMware 的虚拟 PC 软件能正确使用此镜像,微软的“ Virtual PC ”反而不行,是不是有点讽刺(图 24 )?进入系统后,查看系统属性,有“嵌入式”的字样,版本为“ 2002 ”
1. 准备工作
首先做一些硬件方面的准备:至少需要一台刻录机和两块硬盘。第一块硬盘就是操作系统所在的硬盘,对分区没有什么特殊要求,但操作系统必须是 Windows 2000/XP/Server 2003 。第二块硬盘是制作光盘的关键,此盘中的分区数量不得大于 4 个,并且要保留至少 8MB 未分区空间,第一个分区为主分区,分区格式为 FAT16 ,容量必须小于一张光盘的容量( 650MB 或 700MB ),根据我们这次讲解的内容计算,分成 300MB 即可。所有分区工作都可在 Windows 中完成,这里不再赘述,分完区千万不要忘记激活第二块硬盘的主分区(下文中称该主分区为“目标区”,第二块硬盘为“目标盘”,第一块硬盘为“系统盘”)。
分好区后,将“ C:/Program Files/Windows Embedded/utilities/ ”中的“ BOOTPREP.exe ”拷贝至目标区,由于这是一个 16 位程序,所以必须在 DOS 下运行。重启电脑,进入 BIOS (一般是按“ Del ”键或“ Ctrl+Alt+Esc ”组合键),将系统盘设为“ None ”(当然,也可以关闭电脑,拆下系统盘),再设置首先从软盘或光盘启动(视你想用哪种方法启动而定),保存退出。使用 Win98 光盘或启动软盘引导至 DOS 界面下,输入“ C: ”,然后回车进入 C 盘,也就是目标区,再输入“ BOOTPREP ”并回车,按两次“ Y ”确认后,目标盘设置完成。
2. 创建“ EnableAutoLayout ”组件并导入
①打开开始菜单中的“ Component Designer ”,在打开的程序界面中选择菜单“ File ”→“ New ”创建一个新的“ sld ”文件。
②展开窗口左侧的“ Windows XP Embedded Client (x86) ”目录,并在“ Components ”目录上单击右键,选择“ Add Component ”。
③在右侧新建窗口的“ Name ”区内输入一个名称,例如“ EnableAutoLayout_Settings ”(图 3 )。
④右键单击左侧窗口中的“ Registry Data ”,选择“ Add ”→“ Registry Data ”,在弹出的“ Add Component Registry Resources ”对话框中分别填写以下值(图 4 ):
Root: HKEY_LOCAL_MACHINE
Key name: SOFTWARE/Microsoft/ Windows/CurrentVersion/OptimalLayout
value name: EnableAutoLayout
Type: REG_DWORD
value: 0
⑤选择“ Default ”单选框,按“ OK ”回到主窗口,选择“ Flie ”→“ Save ”保存为“ EnableAutoLayout.sld ”,下面将该文件导入数据库。
⑥在开始菜单中选择“ Component Database Manager ”,在“ Database ”标签窗口中选择“ Import ”(图 5 )。在弹出对话框的“ SLD file ”一栏中找到刚刚保存的“ EnableAutoLayout.sld ”文件。
⑦最后选择“ Import ”开始导入组件(图 6 ),导完后关闭所有对话框。
3. 创建“ Target hardware device drivers ”组件并导入
①进入目录: C:/Program Files/Windows Embedded/utilities/ ,执行“ tap.exe ”,很快便在同一目录中生成一个“ devices.pmq ”文件。
②在开始菜单中选择“ Component Designer ”,在弹出窗口中选择“ Flie ”→“ Import ”,导入“ devices.pmq ”文件(导入时间较长,图 7 )。
③导入完毕,选择窗口左侧的“ Components ”→“ devices ”,在右侧窗口的“ Name ”文本框中填写“ My devices-hardware ”(图 8 )。
④单击右侧窗口中“ Prototype ”栏旁的“ Browse ”按钮,在弹出窗口中选中“ Software ”→“ Test&Development ”→“ Selector Prototype Component ”(图 9 )。按“ OK ”回到主窗口,选择“ Flie ”→“ Save ”保存文件为“ Mydevices.sld ”。
⑤按第2步中的“⑥”和“⑦”两个步骤将“ Mydevices.sld ”导入到数据库。
4. 创建 El Torito 实时运行镜像( El Torito run-time image )
①在开始菜单中选择“ Target Designer ”,在弹出窗口中选择“ File ”→“ New ”,命名为“ My XP Embedded ”后按“ OK ”(图 10 )。
②“ Target Designer ”的窗口共分为 4 部分,上面左侧窗口中显示所有组件的列表,先前导入的“ Enable AutoLayout_Settings ”和“ My devices-hardware ”组件就放在根目录下。中间窗口中显示新建的“ My XP Embedded ”系统的组件列表,此时还没有任何组件。右侧窗口则用于显示“ My XP Embedded ”系统组件的属性和设置窗口。下面的大窗口显示制作信息,有“ Tasks ”、“ Messages ”和“ Debug ” 3 个标签(图 11 )。
③双击左侧窗口中的“ EnableAutoLayout ”和“ My devices-hardware ”组件,将它们添加到中间的“ My XP Embedded ”窗口中。
④展开左侧窗口中的“ Design Templates ”,双击添加“ Windows-based Terminal Professinal ”组件,这个组件中包含了一个最小化 XP Embedded 所必需的基本组件。
⑤展开左侧窗口中的“ Software ”→“ System ”→“ Storage & Flie System ”→“ Infrastructure ”→“ Flie Systems ”,双击添加“ FAT ”组件。再展开左侧窗口中的“ Software ”→“ System ”→“ Storage & Flie System ”→“ Applications ”,双击添加“ FAT format ”组件。这一步是为实时运行镜像设置文件系统。
⑥展开左侧窗口中的“ Software ”→“ System ”→“ System Services ”→“ Base ”,双击添加“ El Torito CD ”、“ EWF NTLDR ”和“ Enhanced Write Filter ”组件。然后展开中间窗口中的“ Enhanced Write Filter ”组件,选择“ Settings ”,在右侧窗口中将“ Start EWF Enabled ”复选框中的对勾清除(图 12 )。
⑦展开左侧窗口中的“ Software ”→“ System ”→“ User Interface ”→“ Shells ”,双击添加“ Explorer shell ”组件。再展开“ Windows Shells ”子目录,双击添加“ User Interface Core ”组件,并在其“ Settings ”窗口中选中“ Show Run on Start Menu ”一项(图 13 )。
⑧展开左侧窗口中的“ Software ”→“ System ”→“ Management ”→“ Applications ”,双击添加“ EWF Manager Console Application ”组件。再展开“ Software ”→“ System ”→“ International ”→“ Infrastructure ”,双击添加“ Chinese - Simplified Language Support ”。
⑨至此添加组件工作完成,下面检验工作成果,选择菜单“ Configuration ”→“ Check Dependencies ”开始从属性检查(时间比较长),没有问题的话会报告“ No errors or warnings ”(图 14 )。下面就可以建立实时运行镜像了:选择“ Configuration ”→“ Build Target Image ”,在弹出窗口中设置镜像存放位置,然后按“ Build ”开始建立镜像(镜像大约需占用 135MB 硬盘空间,图 15 )。
⑩打开存放镜像的文件夹(默认为: D:/Windows Embedded Images/ ),将其下所有文件及目录拷贝至目标区。
5. 建立 pre-FBA CD
现在就可以用目标区中的文件创建光盘镜像了,用这个镜像刻录的 CD 被称作 pre-FBA CD ,它并不是我们最终需要的光盘,所以建议用 CD-RW 盘片刻录。
①进入目录: C:/Program Files/Windows Embedded/utilities/ ,执行“ Hd2iso.exe ”,这是一个 32 位的命令行程序,有类似“ Fdisk ”的文字菜单(图 16 )。
②按“ 1 ”键选择“ Create an ISO-9660/ELTORITO bootable image file. ”进入 ISO 镜像创建菜单(图 17 )。
③按“ 2 ”键选择“ Set physical drive. ”,界面中会显示出电脑中所有的硬盘,编号从“ 0 ”开始。目标区位于第二块硬盘,所以该硬盘的编号应该是“ 1 ”,按“ 1 ”键选择“ //./physicaldrive1 ”后退回至上一级菜单(图 18 )。
④按“ 3 ”键选择“ Select partition(s) ”进入选择分区菜单 。按“ 1 ”键选择“ BOOTABLE, BIGDOS, 322MB [Not Selected] ”,选择后中括号内的“ Not Selected ”变为“ Selected ”(图 19 ),然后按“ P ”键返回上一级菜单。
⑤按“ 4 ”键选择“ Set image file path ”。即存放光盘镜像的位置,存放该镜像的分区至少要有 700MB 剩余空间,输入路径及文件名,如“ G:/xpos.iso ”(图 20 ),按回车返回上一级菜单。
⑥按“ 5 ”键选择“ Advanced Options ”。进入高级设置界面(图 21 ),其中必须要设置的项目只有一个:“ Specify disk signature ”。按“ 2 ”键进入该项设置,在这里需要输入一串数字,启动“ Target Designeras ”,展开“ El Torito CD ”组件,在其设置项中就有我们需要的那串数字(图 22 )。输入数字后回车退至上一级菜单,该值自动转化为 16 进制数字。按“ P ”键退出高级设置菜单。
⑦按“ 6 ”键选择“ Create Image to package the ISO image ”开始创建光盘镜像,此过程需要较长时间,创建完毕后按“ Q ”键退出。
⑧用 Nero Burning ROM 或其他刻录软件将制作好的镜像刻到 CD-RW 盘片上,至此“ pre-FBA CD ”制作完毕。由于 Windows 无法识别这个镜像中的文件格式,所以查看光盘时内容空空如也,但 322MB 的容量可以显示出来。
6. 引导硬盘上的 El Torito Run-Time 镜像
当 pre-FBA CD 制作完毕后,就可通过它引导目标硬盘上的 El Torito Run-Time 镜像了。关机卸下系统硬盘(在 BIOS 中关闭系统硬盘亦可),在 BIOS 中将启动方式设置为从光盘启动,并将 pre-FBA CD 放入 CD-ROM 驱动器中。系统首先从 pre-FBA CD 启动,加载相关信息之后,便把“权力”转让给硬盘中的镜像继续完成引导,这个引导过程中系统会不断从 pre-FBA CD 中读取信息,完成 XP Embedded 的配置,这个过程被称为 First Boot Agent ( FBA ),要经过两次重启才能完成。另外, Enhanced Write Filter ( EWF )也在这个阶段开始工作并创建一个临时配置分区(图 23 )。
进入 XP Embedded 界面后,需要确定 EWF 的状态,下面的操作均在 XP Embedded 系统内完成。
①确认所有 EWF Volume 的配置情况,在“开始”→“运行”中输入 CMD 并回车,调出命令提示符界面。然后键入“ Ewfmgr.exe ”,如果 EWF Volume 配置正确,则会显示 EWF Volume 的情况。
②确认 C 分区是否为受 EWF 保护的分区,在“命令提示符”界面中输入“ Ewfmgr C: ”,如果配置正确,则会显示 Protected Volume 的信息。
④选择“开始”→“程序”→“ Windows 资源管理器”。查看你的系统中是否包括磁盘“ El Torito CD ”(实际上就是光驱中的 pre-FBA CD ,不过它在 XP Embedded 中被当作卷名为“ El Torito CD ”的磁盘)和目标区。
⑤如果上述检查都正常,那么你就可以对这个 El Torito Run-Time 镜像进行更多的定制了,如增加应用程序等,增加软件的方法和在 WinXP 中安装软件的方法一样,很简单吧?
7. 运行“ Etprep.exe ”
制作最终的系统光盘前还需要执行程序“ Etprep.exe ”,这个工具执行如下任务:删除目标盘上在 FBA 过程中建立的 EWF 配置分区;交换“ El Torito CD ”磁盘和目标区的驱动器符号,这一步过后,就无法通过目标区中的“ El Torito Run-Time ”镜像启动了。
①调出“命令提示符”界面,进入“ /Windows/system32 ”目录并运行如下命令: etprep /all 。
②如果操作成功会显示如下文字:
Deleted EWFpartitions = 1.
Swapped ElTorito volume drive E: with Boot volume C: .
③在执行“ Etprep.exe ”后,系统会自动重启,由于目标区已经无法引导系统,所以重启后手动关闭计算机。如果没有自动重启,手动关闭机器即可。
8. 制作最终的 XP Embedded Bootable CD
现在可以制作最终的系统光盘了。这个过程与制作 pre-FBA CD 的过程一模一样,请按“ 5. ”中所述步骤制作最终的光盘镜像。在刻录成 CD 前,最好使用虚拟 PC 软件测试一下这个镜像,但要注意只有 VMware 的虚拟 PC 软件能正确使用此镜像,微软的“ Virtual PC ”反而不行,是不是有点讽刺(图 24 )?进入系统后,查看系统属性,有“嵌入式”的字样,版本为“ 2002 ”