概述
對於一種開發工具的學習,最重要也最困難的階段就是概念的建立,只要建立了正確的概念,明白整個系統的體繫結構和各種工具作用,剩下的工作就是實際操作,積累經驗了,最多不過在需要的時候查一查手冊。
本文通過指導讀者進行實際操作,一步步地完成一次完整的開發工作,從而協助讀者建立一個清晰明確的概念。
因為我們開發的產品不是普通的軟體,而是專用的作業系統,所以需要針對某個特定的硬體平台(目標機)來進行開發;首先需要一個強大的工作站來運行開 發環境和開發工具,然後根據目標機硬體設定和軟體需求進行開發,開發完成後將做好的作業系統影象檔案(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”