創(chuàng)建可分發(fā)的Windows Embedded Standard組件
通常我們在創(chuàng)建Windows Embedded Standard組件的時候都會使用Component Designer生成sld文件,然后由Component Database Manager導(dǎo)入到組件數(shù)據(jù)庫,在一個Windows Embedded Standard項(xiàng)目中,可能有多個組件,包括utilitie組件,driver組件,和shell組件,當(dāng)數(shù)量和版本的規(guī)模龐大到一定程度的時候,管理,分發(fā)這些組件的時候并不是非常方便。其實(shí)有一個很好的方式,可以把組件制作成安裝程序的方式,并且還可以配置相應(yīng)的約束條件,更有利于管理和分發(fā)。同時,把這些高品質(zhì)的組件分享給其他開發(fā)人員更可以完善Windows Embedded Standard的生態(tài)環(huán)境。
下面由最簡單的部分開始。我們先需要創(chuàng)建一個Windows Embedded Standard驅(qū)動程序的組件。我選擇的驅(qū)動程序是FUJITSU U1010的Realtek ALC262聲音控制器的驅(qū)動程序,Realtek的聲音控制器廣泛的應(yīng)用在各種桌面計(jì)算機(jī)和移動計(jì)算機(jī)上。
開始之前,我們需要創(chuàng)建相應(yīng)的文件夾結(jié)構(gòu)。我個人習(xí)慣在C根目錄下面創(chuàng)建Components文件夾,來容納半成品組件。當(dāng)然可以根據(jù)需要來選擇自己喜歡的名字。在Components文件夾下面,創(chuàng)建ALC262文件夾,在ALC262文件夾下,分別創(chuàng)建doc,rep,sld三個文件。doc用于安放相應(yīng)的說明,例如安裝和組件說明,卸載的說明,和授權(quán)協(xié)議等。一個高品質(zhì)的組件,文檔是很重要的。
準(zhǔn)備工作已經(jīng)完成,現(xiàn)在可以開始組件的創(chuàng)建過程:
作為一個驅(qū)動程序的組件,首先,要導(dǎo)入相應(yīng)的inf文件。打開Component Designer,F(xiàn)ile|Import...可以找到用于導(dǎo)入的對話框。在Realtek驅(qū)動程序的文件夾下,我們發(fā)現(xiàn)多個inf文件,哪個才是合適的呢?通常有兩種方式來選,第一種方法,如果這個設(shè)備安裝過Windows XP,X:Windowsinf下會有名為oem1.inf,oem2.inf,ome3.inf......其中一定有一個Realtek的inf,這個inf就是我們需要的。第二種方法,打開tap生成的devices.pmq文件,會對硬件做詳細(xì)的描述:HDAUDIOFUNC_01&VEN_10EC&DEV_0262,HDAUDIO為設(shè)備所在總線,DEV_0262為
設(shè)備ID。驅(qū)動程序中包含DEV_0262的inf文件就是我們需要的。
導(dǎo)入完成,已經(jīng)生成了相應(yīng)的sld文件,我們還需要對其加以完善。可以看到Realtek High Definition Audio已經(jīng)在Components下面。我們按照下面幾步來完善這個sld文件。
1.在Repositories下建立一個新的Repository,命名為Realtek High Definition Audio Repository
2.在Packages下建立一個新的Package,命名為Realtek High Definition Audio Package
3.Realtek High Definition Audio Repository的Group Membership下面添加Realtek High Definition Audio Package
4.在Realtek High Definition Audio組件的Group Membership下面添加Realtek High Definition Audio Package
5.保存sld文件到sld文件夾。
6.設(shè)置Realtek High Definition Audio Repository的Source Path,設(shè)置為rep文件夾。因?yàn)閟ld文件已經(jīng)保存,所以位置會變成相對路徑...rep
7.最重要的一步,在Realtek High Definition Audio的屬性里設(shè)置Repository為Realtek High Definition Audio Repository
8.Realtek High Definition Audio的Files下刪除HDA32.cat,在Windows XP Embedded驅(qū)動程序簽名是無效的
9.按照Files的列表,把這些文件復(fù)制到rep文件夾下。
10.View|Release Components,可以在使用組件的時候避免警告,最后保存sld文件。
這樣,一個組件的sld文件就已經(jīng)完成了。
接下來,我們需要把組件制作成安裝文件,以便安裝到組件數(shù)據(jù)庫中去。
1.創(chuàng)建weupdate.inf文件。內(nèi)容如下:
Code
[Version]
Signature="$WINDOWS NT$"
[XPEInstall]
MinimumPlatformRevision=2010
MinimumDatabaseVersion=2010
QFENumber=SP3
Reboot=0
[Preinstall]
Database Backup=DBBackup
Uninstall SP3 Beta=SPUninst, 1902
[DBBackup]
Text=You should backup your existing Windows XP Embedded database before updating the database.nnIf you have already backed up your database, click OK to continue.nnFor information on how to back up your database, click Help.
Document=".docBackupXPEDB.rtf"
[SPUninst]
Text=You should remove previous versions of Windows XP Embedded Service Pack 3 before updating the database. If you already done this, click OK to proceed.nnUpdating the database over a previous version may cause errors during build.nnFor information on how to remove previous versions of Windows XP Embedded Service Pack 3, click Help.
Document=".docRemoveXPESP3.rtf"
[SLD.NoRep]
sldHDARt.sld
如果采用此inf文件,一定要保證doc下有相應(yīng)文件名的文檔,否則無法正確運(yùn)行weupdate.exe
2.復(fù)制weupdate.inf和weupdate.exe到ALC262文件夾下。
3.最后制作成cab自解壓安裝程序,設(shè)置解壓縮后自動運(yùn)行weupdate.exe[!--empirenews.page--]
自此,可分發(fā)的Windows Embedded Standard組件制作完成,我們可以利用這個方法把常用的驅(qū)動程序,應(yīng)用程序作成組件共享給其他的開發(fā)人員,甚至,我們可以把這些組件集中起來,來形成一個規(guī)模龐大的組件資源庫,完善Windows Embedded Standard的生態(tài)環(huán)境,為更多的開發(fā)人員提供便利,同時,也最大化發(fā)揮組件的價值。