2009/10/05

如何製作最簡化的驅動程式安裝來源

最簡化的驅動程式安裝來源僅包含三種類型的檔案:

  1. inf:以此檔案來開啟驅動程式的安裝。
  2. sys:硬體的驅動程式檔案,保證硬體可以工作。
  3. cat:用於驅動程式及其檔案的數位簽署。


範例一:Windows 7 x86 - ALC888 - Realtek High Definition Audio
最簡化的驅動程式安裝來源僅包含:HDACR.infRTKVHDA.syshda32.cat(參見這篇:如何在 Realtek High Definition Audio 驅動程式中找到自己音效卡的 inf 安裝檔),共 3.5MB,僅保證音效卡可以工作、能夠發聲。完整的驅動程式安裝來源有 36MB,包含瑞昱高傳真音效管理的控制面板。也就是說,最簡化的驅動程式不會安裝瑞昱高傳真音效管理的控制面板。

HDACR.inf:必須修改這個檔案。因為 inf 檔案中有完整的的驅動程式檔案的複製列表,其標有的其他類型的檔案,像是 cpl、exe、dll 檔案,是偶們不需要的。必須將這些檔案從複製列表中移除,否則無法安裝偶們最簡化的驅動程式(會被告知找不到指定的檔案)

用記事本開啟 HDACR.inf,按 Ctrl+H 呼出取代方框:尋找目標 copylist],取代為 DelList],全部取代。如此,在安裝時,inf 就不會要求複製那些 cpl、exe、dll 檔案(剛好這些檔案都在標有 copylist] 的欄位下方),這樣就能夠順利安裝偶們最簡化的驅動程式。

hda32.cat:因為修改了驅動程式中包含的檔案(HDACR.inf),所以偶們自己製作的最簡化的驅動程式將失去數位簽署。在安裝時會出現警告,無視之。選擇 Install this driver software anyway,以繼續安裝。


雖然驅動程式沒有數位簽署(第一張圖)。但是有 hda32.cat 在,能夠保證最簡化驅動程式安裝的檔案 RTKVHDA.sys 擁有數位簽署(第二張圖)
Most_Simplified_Driver_ALC888-1Most_Simplified_Driver_ALC888-2

最後去檢查「 新增或移除程式 」,發現列表中有 Realtek 音效卡驅動程式的解除安裝項目,按下去之後並不會移除音效卡驅動程式(因為偶們沒有複製那些 exe、dll 檔案,只有 inf、sys、cat 這樣的檔案是無法做到的),而是說出現錯誤,是否移除列表中的項目,選擇移除,「 新增或移除程式 」的列表中就不會再有 Realtek 音效卡驅動程式的解除安裝項目。


範例二:Windows 7 x86 - RTL8111B - Realtek 網路介面卡
完整的驅動程式包含以下檔案:netrtx32.inf、rt86win7.sys、netrtx32.cat、RtNicprop32.DLL、RTNUninst32.dll、note.txt。

所以最簡化的驅動程式安裝來源應僅包含:netrtx32.infrt86win7.sysnetrtx32.cat

netrtx32.inf:用記事本開啟 netrtx32.inf,在內容中搜尋 RtNicprop32.DLL 和 RTNUninst32.dll,刪除包含這兩個 dll 檔案的那一行。note.txt 未找到,就不管了。


注意事項:若用 vLite 給 Windows 7 整合這樣最簡化的驅動程式,於重灌後首次進入桌面,會在 Preparing your desktop 停留很長時間,進入桌面後會出現安裝驅動程式的警告,選擇 Install this driver software anyway,繼續安裝驅動程式。


原因是有修改過驅動程式中的檔案(inf 檔案),導致驅動程式失去數位簽署,目前未找到解決方法。

沒有留言 :

張貼留言