驅動程式部署
使用 Visual Studio 在Windows 10 IoT 核心版上部署驅動程式。
設定 Visual Studio 驅動程式專案,以便在驅動程式開發階段期間編譯及部署特定平臺的驅動程式。
在此練習中,您可以使用 gpiokmdfdemo 範例驅動程式。
如果您想要將驅動程式新增至映射,請造訪 IoT 製造指南中的指示。
步驟 1:設定
在裝置上
- 請遵循 開始使用指示,確定您的裝置已安裝 IoTCore 映射。
- 透過 PowerShell連線到您的裝置。
在電腦上
請確定您已安裝 Visual Studio 2017。
安裝 Windows 驅動程式套件。 您必須安裝 SDK 和 WDK。
安裝憑證,讓驅動程式正確簽署,而且可以在您的裝置上執行。 從提升許可權的命令提示字元中,執行下列命令:
cd c:\Program Files (x86)\Windows Kits\10\Tools\bin\i386
set WPDKContentRoot=c:\Program Files (x86)\Windows Kits\10
InstallOEMCerts.cmd
套用修正以從 VS 啟用 F5 部署。 在提升許可權的命令提示字元中,執行下列命令:
-
cd %TEMP%
(會將目錄變更為c:\users\<username>\Appdata\Local\Temp
) -
md “WdkTempFiles”
手動建立 「WdkTempFiles」 目錄 這是工具中 Bug 的因應措施,而且只需要在電腦中完成 一次 。
-
步驟 2:使用 Visual Studio 布建裝置
開啟 Visual Studio,然後選取 [驅動程式 > 測試 > 設定裝置] [新增裝置 > ]
- 如果未顯示 [驅動程式功能表] 選項,請檢查是否已安裝 SDK。
在 [ 裝置組態] 對話方塊中,
- 輸入目標裝置的使用者易記顯示名稱
- 選取 [裝置類型 = 行動裝置]
- 在顯示的清單中,依 IP 位址排序,然後尋找 IoT 裝置的位址並選取。 如果有兩個專案,請選取具有非零 GUID 的專案。 確定已選取資料列 – 它應該醒目提示藍色
- 對話方塊底部有兩個選項按鈕。 選取顯示 [布建 裝置] 並選擇 [偵錯工具設定] 的裝置。 選取 [下一步]
在 [ 設定偵錯工具設定] 上,設定適當的設定。 請注意:
- MinnowBoardMax 可以使用網路進行偵錯。
- 使用連線類型 網路
- 選取一些埠 – 可以使用預設值
- 選取一些索引鍵 – 可以使用預設值
- 選取執行 Visual Studio 之電腦的主機 IP。 請勿使用 autonet (169.xxx) 位址。
- 選取 [下一步]
- Raspberry Pi 會使用序列進行核心偵錯。
- 將適當的序列偵錯纜線連接到 PI 和主機電腦
- 針對連線類型選取 [序列 ]
- 針對 Raspberry Pi 填妥其餘的參數。
- 選取 [下一步]
- MinnowBoardMax 可以使用網路進行偵錯。
透過 VS 的 WDK 現在會布建 IoT 裝置。 TAEF 和 WDTF 將會安裝在裝置上,而且裝置會根據上述提供的設定來設定核心偵錯。
完成時,裝置可能會重新開機。 裝置組 態 上的進度畫面將提供狀態,並在 IoT 裝置完成安裝時顯示完成。 按 [完成]。
- 裝置現在已布建,且 裝置測試 設定狀態會顯示 為驅動程式測試設定
步驟 3:設定 Visual Studio 驅動程式專案
以系統管理員模式啟動 Visual Studio,然後開啟 Visual Studio 驅動程式專案。
請確定目標平臺版本符合您開發電腦上安裝的 SDK。 從方案總管視窗中選取 [專案屬性]。 在 [一般組態屬性] 下,確保目標平臺版本符合您開發電腦上安裝的 SDK。 您可以從主控台 >> 程式及功能檢查 SDK 的版本。
在 [專案 > 新增專案 > Visual C++ > Windows 驅動程式] 底下,選取 [套件資訊清單 ],然後按 [ 新增]。
Package.pkg.xml
檔案將會新增至專案。 在此檔案中,指定擁有者、平臺、元件和子元件標記。在 專案屬性 > PackageGen > 版本設定套件版本號碼。 請注意,每次您需要執行驅動程式的安裝/重新安裝時,都必須遞增此版本號碼。
在 [專案屬性 > 驅動程式簽署 > 測試憑證] 底下,選取 [手機 OEM 測試憑證] (測試憑證)
移至 [驅動程式安裝 ],然後選取 [部署]
- 從 [ 目標裝置名稱] 下拉式清單中,選取布建程式中上方建立的目標。 請注意安裝/重新安裝和快速重新安裝的兩個選項。 選擇選項,然後按一下 [ 確定]。
- 安裝/重新安裝 用於將驅動程式初始安裝至目標。 這會使用 Windows 更新堆疊安裝驅動程式套件,而且可能需要幾分鐘的時間。 每次變更 INF 檔案時,都必須使用此功能。
提示
每次使用此選項在初始安裝之後安裝驅動程式時,都必須遞增套件版本號碼。
- 安裝驅動程式之後,即可使用快速重新安裝,而且驅動程式 INF 檔案沒有後續變更,這會影響登錄。 這個方法會略過安裝程式、關閉與驅動程式相關聯的所有 devnode、複製驅動程式,然後重新開機 devnode。 這需要 (< 20) 秒。
警告
此方法不保證成功 – 如果基於某些原因,devnode 無法關機以釋放驅動程式,作業將會失敗。 這可能是因為硬體故障或驅動程式的初始錯誤實作所造成。 在此情況下,必須使用 [安裝/重新安裝] 選項。
您的 Visual Studio 專案現在已準備好建置驅動程式,並將其部署至目標裝置。 如果您使用範例 gpiokmdfdemo 驅動程式,您需要產生 ACPI 資料表並複製到目標裝置,請遵循 在 Visual Studio 中建置驅動程式的步驟。
步驟 4:建置和部署驅動程式
這可以透過兩種方式來完成,使用 F5 鍵和使用 [部署] 選項。 在這兩種方式中,都會建置並部署驅動程式 (亦即,將它安裝在裝置) 上,而 F5 會將 Visual Studio 核心偵錯工具連結至已安裝和載入的驅動程式。
有些使用者偏好使用 部署 功能,並附加不同的核心偵錯工具,例如 WinDBG 或 KD。 這可提供比使用 VS 偵錯工具更多的彈性。
部署
以滑鼠右鍵按一下方案總管中的專案
選取 [部署]
部署程式應該繼續進行。 IoT 裝置會在部署後重新開機,並在安裝進行時顯示「齒輪」畫面。
組建輸出位於 [ 輸出 視窗部署] 狀態也是 [安裝完成時] 的輸出視窗中,裝置會重新開機,而 VS 輸出畫面會指出成功或失敗。
F5
- 從建置視窗中,確定組態正確 – 目前的組建架構與目標裝置架構相同。 這是在目標名稱中擁有架構很重要的地方。 目標會顯示在 VS 中右上方功能表列的檢視方塊中。
- 按 F5。 將會建置、部署目標,並附加至 VS 核心偵錯工具。
- 重新開機之後,請確定 PowerShell 仍然連線到它,否則,請使用 PowerShell
enter-pssession
命令重新連線到目標裝置。
已知問題
布建錯誤
與 MinnowBoardMax 互動期間的競爭條件可能會導致布建期間回報失敗。 事實上,布建最有可能成功。
錯誤清單:
- 錯誤:「註冊 WDTF」工作無法順利完成。
- 錯誤:「設定核心偵錯工具設定 (可能重新開機) 」工作無法順利完成
解決 方案: 這些錯誤幾乎可以忽略。
詳細資料:
下列錯誤會顯示在 [裝置組態組態進度 ] 對話方塊中:
Installing necessary components...
Removing TAEF test service
Task "Removing TAEF test service" completed successfully
Copying required files
Task "Copying required files" completed successfully
Registering TAEF Test Service
Task "Registering TAEF Test Service" completed successfully
Starting TAEF Test Service
Task "Starting TAEF Test Service" completed successfully
Registering WDTF
Task "Registering WDTF" completed successfully
Configuring TAEF test service to start automatically
Task "Configuring TAEF test service to start automatically" completed successfully
Configuring kernel debugger settings (possible reboot)
ERROR: Task "Configuring kernel debugger settings (possible reboot)" failed to complete successfully. Look at the logs in the driver test group explorer for more details on the failure.
Configuring computer settings (possible reboot)
Waiting for task to complete...
Waiting for task to complete...
Task "Configuring computer settings (possible reboot)" completed successfully
Computer configuration log file://C:/Users/username/AppData/Roaming/Microsoft/WDKTestInfrastructure/ProvisioningLogs/Driver%20Test%20Computer%20Configuration%log
Failed installing components
此時,您可以安全地按一下 [ 完成 ],然後按一下 [ 套用 ] 和 [ 確定]。
這是由競爭條件構成的良性錯誤,導致結果記錄格式不正確。 您可以藉由查看下欄區域中的記錄檔來驗證:
開啟裝置 IP 的 FTP 連線 (,如裝置畫面) 目錄
Data/test/bin/DriverTest/Run
所示。 例如,ftp://<ip address of device>/Data/test/bin/DriverTest/Run/
將
Configuring_computer_settings_(possible_reboot)_identifier.wtl
檔案複製到本機電腦。 請注意,記錄檔名稱符合失敗工作的名稱。在記事本中開啟檔案
捲動至記錄檔底部。 將會顯示下列文字,表示布建成功。
<PFRollup
Total="1"
Passed="1"
Failed="0"
Blocked="0"
Warned="0"
Skipped="0" CA="6191559" LA="6191619" >
<rti id="2109770915" />
<ctx id="384048256" />
</PFRollup>
</WTT-Logger>