Lab 1a: Creare un'immagine di base (create-a-basic-image)
Per iniziare, creeremo un'immagine di base di Windows 10 IoT Core (IoT Core) e la flasheremo in un dispositivo hardware specifico.
Verrà creata una cartella del prodotto che rappresenta la prima progettazione. Per la nostra prima progettazione del prodotto, si personalizza semplicemente per il dispositivo core IoT per avviare ed eseguire l'app predefinita della configurazione guidata, che dovrebbe essere in grado di vedere su un monitor compatibile con HDMI.
Per semplificare l'esecuzione di questi comandi, verrà installata e usata la shell IoT Core, che imposta diversi percorsi e variabili usati di frequente.
Prerequisiti
assicurarsi che il PC tecnico abbia gli strumenti necessari installati prima di creare un'immagine IoT Core.
Vedi Ottenere gli strumenti necessari per personalizzare Windows IoT Core per preparare il PC tecnico.
Importante
La versione di ADK usata deve corrispondere alla versione dei pacchetti IoT Core usati di seguito.
Per completare questa sezione sono necessari gli strumenti seguenti:
- Windows Assessment and Deployment KiT (Windows ADK)
- Pacchetti Windows 10 IoT Core
- Componenti aggiuntivi ADK IoT Core
- Ambiente PowerShell IoT Core
- Un editor di testo come Blocco note o VS Code
Creare un'immagine di base
Creare un'area di lavoro
- In Esplora risorse passare alla cartella in cui sono stati installati i componenti aggiuntivi ADK di IoT Core, ad esempio C:\IoT-ADK-AddonKit e aprire IoTCorePShell.cmd. Dovrebbe essere richiesto di eseguire come amministratore.
Questo caricherà il modulo PowerShell e verificherà anche le versioni del kit ADK, IoT Core. Verrà anche verificata la presenza dei certificati di test nell'archivio certificati e, se non presente, installarli automaticamente.
Risoluzione dei problemi: errore: "Impossibile trovare il percorso specificato dal sistema". Se si ottiene questo valore, fare clic con il pulsante destro del mouse sull'icona e modificare il percorso in "Destinazione" nel percorso scelto per installare gli strumenti.
- In IoTCorePShell creare una nuova area di lavoro
C:\MyWorkspace
con un nomeContoso
OEM per l'architetturaarm
usando New-IoTWorkspace
New-IoTWorkspace C:\MyWorkspace Contoso arm
(or) new-ws C:\MyWorkspace Contoso arm
IoT Core supporta quattro architetture, x64,x86, arm e arm64.
Solo i caratteri alfanumerici sono supportati nel nome OEM perché viene usato come prefisso per vari nomi di file generati.
Viene generato il IoTWorkspace.xml e viene impostato un numero di versione per la progettazione, che è possibile usare per gli aggiornamenti futuri. Per impostazione predefinita, il primo numero di versione è 10.0.0.0.
I pacchetti necessari, ad esempio Registry.Version, Custom.Cmd e Provisioning.Auto, verranno importati automaticamente nell'area di lavoro.
- Importare pacchetti di esempio nell'area di lavoro. È possibile scegliere di importare i pacchetti in modo selettivo o importare tutti.
# Importing Recovery packages from sample workspace (create-a-basic-image)
Import-IoTOEMPackage Recovery.*
(or) importpkg Recovery.*
# Below example imports all packages from the sample workspace (create-a-basic-image)
Import-IoTOEMPackage *
(or) importpkg *
Importare un BSP Raspberry Pi
Questo passaggio successivo consiste nell'eseguire i file del pacchetto di supporto della scheda e compilare i file di .CAB da includere nel file FFU.
Scaricare RPi_BSP.zip in una directory locale, ad esempio
C:\Downloads\RPi_BSP.zip
.Importare il provider di servizi tramite Import-IoTBSP
Import-IoTBSP RPi2 C:\Downloads\RPi_BSP.zip
(or) importbsp RPi2 C:\Downloads\RPi_BSP.zip
Per altre informazioni sui BSP disponibili, vedere Windows 10 IoT Core BSPs.
Creare un progetto di test
Dall'ambiente shell di IoT Core creare una nuova cartella del prodotto che usa il BSP Raspberry Pi 2. Questa cartella rappresenta un nuovo dispositivo che si vuole compilare e contiene file di personalizzazione di esempio che è possibile usare per avviare il progetto. Creare un nuovo prodotto usando Add-IoTProduct
Add-IoTProduct ProductA RPi2
(or) newproduct ProductA RPi2
Verrà richiesto di immettere le informazioni SMBIOS , ad esempio Nome produttore (nome OEM), Famiglia, SKU, BaseboardManufacturer e BaseboardProduct. Ecco alcuni valori di esempio:
- Nome OEM di sistema: Fabricam
- Nome famiglia di sistema: FabricamHub
- Numero SKU di sistema: AI-001
- Freccia produttore baseboard
- Baseboard Product: Raspberry Pi 2
Il nome BSP corrisponde al nome della cartella per il provider di servizi BSP. È possibile visualizzare i provider di servizi di configurazione disponibili esaminando le C:\MyWorkspace\Source-<arch>\BSP
cartelle.
Verrà creata la cartella : C:\MyWorkspace\Source-<arch>\Products\\ProductA
.
OemCustomization.cmd File
Ogni immagine include un file oemcustomization.cmd
che verrà eseguito in ogni avvio del dispositivo. È possibile modificare questo file per personalizzare gli elementi eseguiti all'avvio. Questo file si trova C:\MyWorkspace\Source-<arch>\Products\\ProductA
in questo esempio. Il contenuto del file è il seguente:
@echo off
REM OEM Customization Script file
REM This script if included in the image, is called everytime the system boots.
reg query HKLM\Software\IoT /v FirstBootDone >nul 2>&1
if %errorlevel% == 1 (
REM Enable Administrator User
net user Administrator p@ssw0rd /active:yes
if exist C:\Data\oobe (
call folderpermissions.exe 'C:\Data\oobe -e'
)
REM - Enable the below if you need secure boot/bitlocker
REM Enable Secureboot
REM if exist c:\IoTSec\setup.secureboot.cmd (
REM call c:\IoTSec\setup.secureboot.cmd
REM )
REM Enable Bitlocker
REM if exist c:\IoTSec\setup.bitlocker.cmd (
REM call c:\IoTSec\setup.bitlocker.cmd
REM )
reg add HKLM\Software\IoT /v FirstBootDone /t REG_DWORD /d 1 /f >nul 2>&1
)
REM The below should be called on every boot
if exist C:\RecoveryConfig\Recovery.BcdEdit.cmd (
call C:\RecoveryConfig\Recovery.BcdEdit.cmd
)
REM Set the crashdump file locations to data partition, set on every boot.
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DedicatedDumpFile /t REG_SZ /d C:\Data\DedicatedDumpFile.sys /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DumpFile /t REG_SZ /d C:\Data\MEMORY.DMP /f
Nota
Tenere presente che le funzionalità di sicurezza come BitLocker e SecureBoot sono disabilitate per impostazione predefinita per un'immagine di test personalizzata. Se si desidera includere queste funzionalità (in un'immagine definitiva) è possibile rimuovere il commento dalle righe appropriate nel file, prima di compilare l'immagine.
Nota
Tenere presente che i comandi in questo file vengono eseguiti con privilegi di sistema locale.
Compilare pacchetti
Dalla shell IoT Core, prepara l'ambiente per creare prodotti creando tutti i pacchetti nelle cartelle di lavoro usando New-IoTCabPackage:
New-IoTCabPackage All
(or) buildpkg All
Nota
Se si verificano errori signtool durante la compilazione dei pacchetti in modalità test, eseguire installoemcerts.cmd
per installare i certificati di test nel PC tecnico.
Creare un'immagine
Espellere qualsiasi unità di archiviazione rimovibile, inclusa la scheda Micro SD e qualsiasi unità flash USB.
Compilare il file di immagine FFU immettendo il comando seguente nell'ambiente PowerShell di IoT Core usando New-IoTFFUImage:
New-IoTFFUImage ProductA Test
(or) buildimage ProductA Test
Verrà compilato un file FFU con l'immagine di base all'indirizzo C:\MyWorkspace\Build\<arch>\ProductA\Test
. Questa immagine di test includerà strumenti aggiuntivi che possono essere usati a scopo di debug. La compilazione del file FFU finale richiederà da circa 10 a 30 minuti.
Per indirizzare tutto l'output alla console anziché al file di log, aggiungere -Verbose
il flag, ad esempio quello riportato di seguito.
new-IoTFFUImage -Verbose ProductX Test
Nota
Se si ottiene 0x80070005 o 0x800705b4 come codice di errore, scollegare tutte le unità esterne (incluse le micro SD card e le unità USB) e riprovare. Se questo non funziona, tornare a Configurare il PC e scaricare gli esempi e assicurarsi che tutto sia installato.
Eseguire il flashing di un'immagine Windows IoT Core
Ora che il file di immagine FFU è stato compilato, è possibile eseguire l'unione di questo file per eseguire il flashing e distribuire l'immagine nel dispositivo. Di seguito sono elencati i passaggi per eseguire il flashing del file di immagine FFU in dispositivi produttori specifici.
Prerequisiti/requisiti
Per completare questa sezione sono necessari gli strumenti seguenti:
- Dashboard windows IoT Core (solo Raspberry Pi)
- Dragonboard Update Tool (solo Qualcomm DragonBorad)
- Strumento DiCM (Deployment Imaging and Servicing and Management) (solo dispositivi Intel)
Poiché in questo caso si usa Raspberry Pi, si inizierà con Raspberry Pi, ma si spiega anche come eseguire il flashing delle immagini in altri dispositivi.
Raspberry Pi
Avviare il dashboard di Windows IoT Core.
Collegare la scheda micro SD al PC tecnico e selezionarla nello strumento.
Nella sezione Configura un nuovo dispositivo selezionare Broadcomm [Raspberry Pi 2 & 3] in Tipo di dispositivo.
Selezionare Personalizzato in Compilazione del sistema operativo.
Fare clic su Sfoglia e selezionare il file FFU creato in precedenza. In questo caso, il file FFU si trova in
C:\MyWorkspace\Build\<arch>\ProductA\Test\Flash.ffu
. Fare clic su Avanti.Verificare che la scheda microSD sia elencata sotto la selezione unità .
Facoltativamente, è possibile impostare le selezioni Nome dispositivo e Password Amministrazione istrator per il dispositivo.
Selezionare la casella di controllo Accetto le condizioni di licenza software (in basso a destra) e fare clic su Installa.
Windows IoT Core Dashboard aprirà ora una finestra di comando e userà GESTIONE immagini distribuzione (Strumento di manutenzione e gestione delle immagini di distribuzione) per eseguire il flashing del file FFU nella scheda microSD.
Nota
In alternativa, è anche possibile usare il comando GESTIONE e manutenzione immagini distribuzione per eseguire manualmente il flashing dell'immagine: dism.exe /Apply-Image /ImageFile:"D:\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck
Una volta completato il processo flashing, espellere la scheda microSD dal PC tecnico e inserirla nel Raspberry Pi. Riconnettere l'alimentazione per avviare Windows IoT Core. Verrà visualizzata l'app IoT Core Default, che mostra informazioni di base sull'immagine.
Qualcomm
DragonBoard 410c
Qualcomm ha fornito l'applicazione Dragonboard Update Tool , che verrà usata per eseguire il flashing del file di immagine FFU in Dragonboard 410c. È possibile scaricare la versione x86 o x64 (è consigliabile x64).
Dopo aver installato Lo strumento di aggiornamento di DragonBoard, devi prima posizionare il dispositivo DragonBoard in modalità di programmazione. A tale scopo, impostare dipswitch #1 (sul retro del dispositivo) sulla posizione ON :
Connessione il dispositivo DragonBoard al PC tecnico con un cavo microUSB e l'alimentazione sulla scheda.
Eseguire Lo strumento di aggiornamento di DragonBoard, cercare il file di immagine FFU che si sta distribuendo e premere il pulsante Programma . Dovrebbe essere visualizzato uno stato di Connessione verde e un indicatore di stato quando il dispositivo lampeggia il file FFU.
Una volta completato il processo flashing, scollegare l'alimentazione dalla scheda, nonché il cavo microUSB. È quindi necessario capovolgere il dipswitch #1 alla posizione OFF . Riconnettere l'alimentazione per avviare Windows IoT Core.
Intel
Apollo Lake/Braswell/Cherry Trail
Verrà usato lo strumento di gestione delle immagini distribuzione e manutenzione e una chiavetta USB di avvio per eseguire il flashing del file di immagine FFU nel dispositivo Intel specificato (Apollo Lake/Braswell/Cherry Trail). Altre informazioni su Gestione e manutenzione distribuzione sono disponibili qui.
Creazione di un'unità di avvio USB
Prima di tutto è necessario creare un'unità USB di avvio che è possibile usare per l'avvio nel dispositivo hardware Intel specificato. È possibile usare Window PE (WinPE) per questo (informazioni aggiuntive su WinPE è disponibile qui).
- Installare WinPE dai componenti aggiuntivi windows preinstallazione di Windows ADK.
- Preparare l'unità USB
L'unità USB che si vuole usare deve essere formattata correttamente prima di poter caricare WinPE su di esso. Segui questi dati per formattare correttamente l'unità USB:
- Eseguire lo
diskpart
strumento da un prompt dei comandi amministrativo - Eseguire
list disk
per visualizzare l'elenco dei dischi disponibili - Eseguire
select disk X
, dove X corrisponde al numero di disco dell'unità USB - Eseguire
clean
per pulire il disco selezionato
Nota
Se si verifica l'errore seguente, eseguire convert mbr
:
ERROR: Failed to format "F:"; DiskPart errorlevel -2147212244
- Eseguire
create partition primary
per creare una partizione primaria sul disco - Eseguire
format fs=fat32 quick
per formattare l'unità - Eseguire
assign
per assegnare l'unità - Chiudere
diskpart
. L'unità USB è ora formattata e pronta per l'installazione di WinPE.
- Creare file di lavoro WinPE
È ora necessario creare una copia funzionante dei file di Windows PE nel PC tecnico. Questa operazione può essere eseguita usando il programma della riga di comando Deployment and Imaging Tools Environment . Il modo più semplice per iniziare Deployment and Imaging Tools Environment
consiste nel cercare la distribuzione tramite il menu Start.
Eseguire il programma della riga di comando Deployment and Imaging Tools Environment come amministratore ed eseguire il comando seguente:
copype amd64 C:\WinPE_amd64
Verrà creata la copia di lavoro dei file di Windows PE in C:\WinPE_amd64.
Inserire l'unità USB sul PC tecnico ed eseguire questo comando per installare Windows PE nell'unità USB. Assicurarsi di poter sostituire X con la lettera di unità dell'unità USB:
MakeWinPEMedia /UFD C:\WinPE_amd64 X:
- Copiare il file FFU nell'unità radice dell'unità USB.
- Inserire l'unità USB nel dispositivo hardware Intel e avviarla dall'unità USB. Potrebbe essere necessario immettere il BIOS (o menu di avvio) del dispositivo hardware per specificare l'avvio da un'unità USB.
- Dopo l'avvio dell'ambiente Windows PE, verrà visualizzata una finestra di comando. Modificare l'unità e la directory corrente nel percorso del file FFU (a seconda dell'enumerazione dell'unità, potrebbe trovarsi in C: o D: .. ecc.) ed eseguire il comando seguente per eseguire il flashing del file di immagine FFU:
dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck
Nota
Nella maggior parte dei casi, la destinazione di archiviazione su scheda da flashare viene enumerata come PhysicalDrive0
, tuttavia, se sono presenti più dispositivi di archiviazione, può enumerare come altro numero di unità. È possibile usare il list disk
comando in diskpart
per verificare il numero di unità.
- Una volta completato il processo di flashing, spegnere il dispositivo hardware e rimuovere l'unità USB. Riconnettere l'alimentazione al dispositivo hardware per avviare Windows IoT Core.
Comandi Diskpart
C:\>diskpart
Microsoft DiskPart version 10.0.17134.1
Copyright (C) Microsoft Corporation.
On computer: LWIN-CNCY-BUILD
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 447 GB 1024 KB *
Disk 1 Online 167 GB 1024 KB *
Disk 2 Online 14 GB 0 B *
DISKPART> select disk 2
Disk 2 is now the selected disk.
DISKPART> clean
DiskPart succeeded in cleaning the disk.
DISKPART> convert mbr
DiskPart successfully converted the selected disk to MBR format.
DISKPART> create partition primary
DiskPart succeeded in creating the specified partition.
DISKPART> format fs=fat32 quick
100 percent completed
DiskPart successfully formatted the volume.
DISKPART> assign
DiskPart successfully assigned the drive letter or mount point.
DISKPART> exit
Comandi WinPE
copype amd64 C:\WinPE_amd64
MakeWinPEMedia /UFD C:\WinPE_amd64 X:
Comando DISM (tramite WinPE nel dispositivo hardware Intel)
X:\WinPE>d:
D:\>dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck
Passaggi successivi
Lasciare attivo il dispositivo per il momento e passare a Lab 1b: Aggiungere un'app all'immagine.