查看單個文章
舊 2005-07-22, 11:21 PM   #2 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

如何利用WINPE檢測自動電腦硬體抽像層?

TAP.exe 最佳做法
TAP.exe 是一種了不起的工具,它能夠使 Windows XP Embedded 開發程序變得輕鬆。然而,與在開發環境中使用的任何工具一樣,該工具的使用效果取決於使用它的實現。TAP.exe 能夠十分出色地搜尋系統中的所有硬體,但它經常會找到比最終的嵌入式映像所需的設備更多的設備。

對於在完整的桌面系統(例如,Windows XP)上執行 TAP.exe 的情況,TAP.exe 能夠找到操作該系統所需的所有硬體和軟體元件。TAP.exe 甚至會找到曾經安裝在該系統中但後來又被移除的設備。

因此,非常重要的一點是,使用 TAP.exe 的嵌入式開發人員應該仔細檢查匯入的 PMQ 文件的結果以搜尋錯誤的硬體,以便確保他們所包含的硬體支持不會超出最終的嵌入式映像的真正需要。

使用 TAP.exe 的最佳方式是從 WinPE 環境內部使用它。在 WinPE 環境中執行 TAP.exe 通常會產生目標系統的相當小的 PMQ 或硬體組態文件。其主要原因之一是,WinPE 不會載入諸如廣域網 (WAN) 小連接阜和內核音瀕子系統之類的軟體枚舉設備 (swenum),因此產生的 PMQ 文件比較小且更加易於使用。

下面的表格顯示了 TAP.exe 能夠在各種環境中找到的設備的數量方面的差異:

完整桌面環境
典型的 Windows XP Pro 或 Windows 2000 桌面環境
65到 75 個設備

典型的 Windows XP Pro 或 Windows 2000 膝上型環境
90到 100 個設備

WinPE 環境
典型的 Windows XP Pro 或 Windows 2000 桌面環境
35到 45 個設備

典型的 Windows XP Pro 或 Windows 2000 膝上型環境
45到 55 個設備


正如您可以看到的那樣,在 WinPE 環境下執行 TAP.exe 可以產生用於新增最低組態執行時映像的最佳結果。

TAP.exe 會在 WinPE 環境中找到哪些設備?您真正需要的幾乎所有設備。它會找到所有核心父設備(如外圍設備互聯 (PCI) 和圖形加速連接阜 (AGP) 設備)、正確的系統硬體抽像層 (HAL)、磁碟機和 CD-ROM 驅動器、啟動系統所需的系統晶片組和關鍵啟動設備以及一些基本通用串行總線 (USB) 設備支持。

返回頁首
如何對 TA.exe 和 TAP.exe 進行取捨
目標分析器 (TA.exe) 是另一個可用於查詢目標硬體和新增最小記憶體足跡硬體組態文件的工具,但 TA.exe 缺少搜尋大多數系統中存在的許多子設備所需的支持。原因在於 TA.exe 的工作方式。

TA.exe 只掃瞄目標系統的 PCI 總線,並且只定位它可以找到的、附加到系統的 PCI 總線的主要父設備,但 TAP.exe 會掃瞄系統的註冊表以獲得檢測到的設備的列表。

TA.exe 只有在真實模式操作系統(如 Microsoft MS DOS?)中才能正確操作;它沒有辦法載入或掃瞄系統的註冊表以搜尋設備。另一方面,TAP.exe 僅在 Windows 2000、Windows XP 和 Microsoft Windows Server? 2003 上受到支持,而在其他任何 Microsoft 操作系統上不受支持。

TA.exe 能找到哪些子設備呢?它只能找到諸如 PS/2 滑鼠設備和鍵盤、通信和列印機連接阜之類的設備。TA.exe 找不到諸如系統的磁碟機、USB 外圍設備和集線器、軟碟機之類的設備以及諸如電源按鈕、風扇和熱量控制之類的進階組態和電源接頭 (ACPI) 設備。

在 WinPE 上執行 TA.exe 能夠比在 Windows XP 上執行 TA 更快地新增映像,因為 WinPE 不會報告許多由 Windows XP 索引的設備,因而可以得到較小的 .pmq 文件。這一行為類似於在 WinPE 上執行 TAP.exe — 這與在 Windows XP Pro 上執行 TAP.exe(如前所述)相對。

與 ACPI HAL 和 TA.exe 有關的說明:
關鍵的 ACPI 元件 — Microsoft ACPI-Compliant System — 通常不會被 TA.exe 檢測到,因而不會包含在組態中。請確保增加該群組件,以避免在 First Boot Agent (FBA) 安裝程序中發生崩潰。可以方便地使用 Filter Manager(在目標設計器內部)來搜尋所有在其顯示名稱中含有「ACPI」的元件,以便順利地定位大多數 ACPI「堆疊」。

另外一個關鍵的 ACPI 元件是目標硬體上的晶片組的特定整合驅動器電子 (IDE) 總線主控制器。缺少或擁有不正確的 IDE 總線主控制器通常會在 FBA 安裝程序首次啟動時導致「bug check 7b」消息。


因此,在SYSPREP進行封裝後,在製作複製映射之前,如需用用WINPE下自動電腦檢測硬體抽像層,可以採取以下方式:

1、切換到第二系統啟始,使用REGEDT32載入準備封裝的系統註冊表:C:\WINDOWS\SYSTEM32\CONFIG\SYSTEM,手動移除以下鍵值:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E966-E325-11CE-BFC1-08002BE10318}\0000
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ACPI_HAL\0000
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\PCI_HAL\0000
以上做法是為了確保恢復複製系統時僅出現一個電腦檔案類型

2、在第二系統將WINPE增加到第一硬碟第一啟動分區(通常為C,比如C:\MININT,具體做法請參考微軟WINPE2004的OPK光碟說明
3、修改BOOT.INI,增加WINPE啟始項目到啟始表單(第二啟動項),並設定為預設啟始
4、拷貝TAP.EXE至WINPE所在目錄:\MININT\SYSTEM32
5、修改WINPE內的STARTNET.CMD文件(通常位於\MININT\SYSTEM32下),在結尾處調入AUTOHAL.CMD批次處理文件進行檢測硬體抽像層
6、AUTOHAL.CMD批次處理文件:
@echo off
if not exist %systemroot%\system32\tap.exe goto quit
if exist %systemroot%\system32\devices.pmq del %systemroot%\system32\devices.pmq
tap >nul
find /i "ACPIPIC_UP" %systemroot%\system32\devices.pmq && goto ACPI
find /i "ACPIAPIC_UP" %systemroot%\system32\devices.pmq && goto APICUP
find /i "ACPIAPIC_MP" %systemroot%\system32\devices.pmq && goto APICMP
find /i "MPS_UP" %systemroot%\system32\devices.pmq && goto MPSUP
find /i "MPS_MP" %systemroot%\system32\devices.pmq && goto MPSMP
find /i "SYSPRO_MP" %systemroot%\system32\devices.pmq && goto SYSPROMP
echo Standard PC bad
goto end

:ACPI
echo Advanced Configuration and Power Interface (ACPI) PC
copy /Y %systemroot%\system32\ntoskrnl.exe %systemDrive%\windows\system32\
copy /Y %systemroot%\system32\halacpi.dll %systemDrive%\windows\system32\hal.dll
goto end

:APICUP
echo ACPI Uniprocessor PC
copy /Y %systemroot%\system32\ntoskrnl.exe %systemDrive%\windows\system32\
copy /Y %systemroot%\system32\halaacpi.dll %systemDrive%\windows\system32\hal.dll
goto end

:APICMP
echo ACPI Multiprocessor PC
copy /Y %systemroot%\system32\halmacpi.dll %systemDrive%\windows\system32\hal.dll
copy /Y %systemroot%\system32\ntkrnlmp.exe %systemDrive%\windows\system32\ntoskrnl.exe
goto end

:MPSUP
echo MPS Uniprocessor PC
copy /Y %systemroot%\system32\halapic.dll %systemDrive%\windows\system32\hal.dll
copy /Y %systemroot%\system32\ntoskrnl.exe %systemDrive%\windows\system32\
goto end

:MPSMP
echo MPS Multiprocessor PC
copy /Y %systemroot%\system32\halmps.dll %systemDrive%\windows\system32\hal.dll
copy /Y %systemroot%\system32\ntkrnlmp.exe %systemDrive%\windows\system32\ntoskrnl.exe
goto end

:SYSPROMP
echo Compaq SystemPro Multiprocessor or 100% Compatible
copy /Y %systemroot%\system32\halsp.dll %systemDrive%\windows\system32\hal.dll
copy /Y %systemroot%\system32\ntkrnlmp.exe %systemDrive%\windows\system32\ntoskrnl.exe
goto end


:end
echo 電腦檔案類型已檢測完畢
echo 正在更改啟始順序
bootcfg /Default /id 1
bootcfg /Delete /id 2

:quit
@exit

7、使用第三方複製工具製作映射

備註:
A:WINPE的HAL文件尤其是NTOSKRNL.EXE等文件必須以最新的SPX包為基準
如WINDOWS XP SP2:GDR包
如WINDOWS 2000 SP4:SP4.CAB
如WINDOWS 2003 SP1:SP1.CAB

B:以上方法僅適用於一鍵恢復到第一磁牒第一分區

C:雖然這種方式可以完美檢測硬體抽像層,但由於必須載入WINPE,複製的文件大小多了,時間多了,而且多一次重新啟動,所以並不是最好的辦法,最好的辦法是採用微軟另外未公開的技術


Microsoft Windows XP CHN VOL SP2 xImage BETA 1.0.0 已經發佈。。。

光碟介紹:
1、以doz的龍捲風XP免啟動 V2.3版為基本母碟,另外加了最新的修正檔,未整合其他軟體(沒辦法,沒時間自己整合了,:P),在此向doz深表謝意!

2、採取SYSPREP2.0封裝

3、採取XIMAGE映射文件壓縮最佳化技術,XIMAGE與GHOST相比,其優點在於:
A:以文件方式,可解壓縮到任意分區,並且不會覆蓋原有資料
B:解壓縮時間更短
C:原有的資料檢驗
D:可以排除重複文件,壓縮比更高,基本在3:1左右

4、硬體抽像層的檢測採取微軟未公開的官方技術,確保在絕大多數電腦上順利安裝

5、WINPE啟始,全中文化安裝界面,只需幾個Enter鍵鍵,即可輕鬆快速裝機

6、支持光碟開機安裝、WINDOWS下光碟安裝

7、支持安裝至任意分區

測試平台:
P4 2.4 + 512M +邁拓120X2GB +ATI 9200,WINDOWS下安裝實體機,約12分鍾完成
VPC2004 324M +雙虛擬硬碟 ,虛擬光碟啟動虛擬機安裝,約20分鍾完成
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次