概述
对于一种开发工具的学习,最重要也最困难的阶段就是概念的建立,只要建立了正确的概念,明白整个系统的体系结构和各种工具作用,剩下的工作就是实际操作,积累经验了,最多不过在需要的时候查一查手册。
本文通过指导读者进行实际操作,一步步地完成一次完整的开发工作,从而帮助读者建立一个清晰明确的概念。
因为我们开发的产品不是普通的软件,而是专用的操作系统,所以需要针对某个特定的硬件平台(目标机)来进行开发;首先需要一个强大的工作站来运行开 发环境和开发工具,然后根据目标机硬件配置和软件需求进行开发,开发完成后将做好的操作系统影象文件(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”