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

  1. 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.

  1. In IoTCorePShell creare una nuova area di lavoro C:\MyWorkspace con un nome Contoso OEM per l'architettura arm 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.

PowerShell session showing setup of new IoTWorkSpace

  1. 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.

  1. Scaricare RPi_BSP.zip in una directory locale, ad esempio C:\Downloads\RPi_BSP.zip.

  2. 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.

New Product

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

  1. Espellere qualsiasi unità di archiviazione rimovibile, inclusa la scheda Micro SD e qualsiasi unità flash USB.

  2. 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

  1. Avviare il dashboard di Windows IoT Core.

  2. Collegare la scheda micro SD al PC tecnico e selezionarla nello strumento.

  3. Nella sezione Configura un nuovo dispositivo selezionare Broadcomm [Raspberry Pi 2 & 3] in Tipo di dispositivo.

  4. Selezionare Personalizzato in Compilazione del sistema operativo.

  5. 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.

  6. Verificare che la scheda microSD sia elencata sotto la selezione unità .

  7. Facoltativamente, è possibile impostare le selezioni Nome dispositivo e Password Amministrazione istrator per il dispositivo.

  8. Selezionare la casella di controllo Accetto le condizioni di licenza software (in basso a destra) e fare clic su Installa.

IoT Dashboard dialog box in Windows settings showing new device set up

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.

Raspberry Pi Flashing DISM

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).

DragonBoard update tool

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 :

Dragonboard Dipswitch

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.

DragonBoard Update tool position 1DragonBoard Update tool position 2

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).

  1. Installare WinPE dai componenti aggiuntivi windows preinstallazione di Windows ADK.

WinPE Install screen

  1. 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.
  1. 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:
  1. Copiare il file FFU nell'unità radice dell'unità USB.
  2. 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.
  3. 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à.

  1. 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.