Laboratório 1a: Criar uma imagem básica (create-a-basic-image)

Para começar, vamos criar uma imagem básica do Windows 10 IoT Core (IoT Core) e piscá-la em um dispositivo de hardware específico.

Criaremos uma pasta de produto que representa nosso primeiro design. Para nosso primeiro design de produto, personalizaremos apenas o suficiente para que o dispositivo principal da IoT inicialize e execute o aplicativo OOBE integrado, que devemos ser capazes de ver em um monitor compatível com HDMI.

Para facilitar a execução desses comandos, instalaremos e usaremos o shell do IoT Core, que predefine vários caminhos e variáveis usados com frequência.

Pré-requisitos

verifique se o computador do técnico tem as ferramentas necessárias instaladas antes de criar uma imagem do IoT Core.

Consulte Obter as ferramentas necessárias para personalizar o Windows IoT Core para preparar o computador do técnico.

Importante

A versão do ADK usada deve corresponder à versão dos Pacotes Principais do IoT usados abaixo.

Você precisará das seguintes ferramentas instaladas para concluir esta seção:

  • KiT de avaliação e implantação do Windows (Windows ADK)
  • Pacotes do Windows 10 IoT Core
  • Complementos do IoT Core ADK
  • Ambiente do PowerShell do IoT Core
  • Um editor de texto como o Bloco de Notas ou o VS Code

Criar uma imagem básica

Criar um workspace

  1. No Windows Explorer, vá para a pasta onde você instalou os complementos do IoT Core ADK, por exemplo, C:\IoT-ADK-AddonKit, e abra IoTCorePShell.cmd. Ele deve solicitar que você seja executado como administrador.

Isso carregará o módulo do PowerShell e também verificará as versões do kit ADK, IoT Core. Isso também verificará os certificados de teste no repositório de certificados e, se não estiverem presentes, os instalará automaticamente.

Solução de problemas: Erro: "O sistema não pode encontrar o caminho especificado". Se você obtiver isso, clique com o botão direito do mouse no ícone e modifique o caminho em "Destino" para o local escolhido para instalar as ferramentas.

  1. No IoTCorePShell, crie um novo espaço de trabalho com C:\MyWorkspace um nome Contoso OEM para a arquitetura arm usando New-IoTWorkspace
New-IoTWorkspace C:\MyWorkspace Contoso arm
(or) new-ws C:\MyWorkspace Contoso arm

O IoT Core suporta quatro arquiteturas, x64,x86,arm e arm64.

Somente caracteres alfanuméricos são suportados no nome do OEM, pois isso é usado como um prefixo para vários nomes de arquivo gerados.

Isso gera o IoTWorkspace.xml e define um número de versão para o design, que você pode usar para atualizações futuras. O primeiro número de versão padrão é 10.0.0.0.

Os pacotes necessários, como Registry.Version, Custom.Cmd e Provisioning.Auto, serão importados para o espaço de trabalho automaticamente.

PowerShell session showing setup of new IoTWorkSpace

  1. Importe pacotes de exemplo para o espaço de trabalho. Você pode optar por importar os pacotes seletivamente ou importar todos.
# 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 *

Importar um Raspberry Pi BSP

Esta próxima etapa é pegar os arquivos do Board Support Package e extra/build seus arquivos .CAB para incluir no arquivo FFU.

  1. Faça o download RPi_BSP.zip para um diretório local, digamos C:\Downloads\RPi_BSP.zip.

  2. Importar o bsp usando Import-IoTBSP

Import-IoTBSP RPi2 C:\Downloads\RPi_BSP.zip
(or) importbsp RPi2 C:\Downloads\RPi_BSP.zip

Para obter mais informações sobre BSPs disponíveis, consulte BSPs do Windows 10 IoT Core.

Criar um projeto de teste

No ambiente do Shell do IoT Core, crie uma nova pasta de produto que use o BSP do Raspberry Pi 2. Esta pasta representa um novo dispositivo que queremos criar e contém arquivos de personalização de exemplo que podemos usar para iniciar nosso projeto. Criar um novo produto usando Add-IoTProduct

Add-IoTProduct ProductA RPi2
(or) newproduct ProductA RPi2

Você será solicitado a inserir as informações do SMBIOS, como Nome do fabricante (nome do OEM), Família, SKU, BaseboardManufacturer e BaseboardProduct. Aqui estão alguns valores de exemplo:

  • Nome do OEM do sistema: Fabricam
  • Nome da família do sistema: FabricamHub
  • Número da SKU do sistema: AI-001
  • Seta do fabricante do rodapé
  • Produto Baseboard: Raspberry Pi 2

O nome do BSP é o mesmo que o nome da pasta para o BSP. Você pode ver quais BSPs estão disponíveis procurando nas C:\MyWorkspace\Source-<arch>\BSP pastas.

Isso cria a pasta: C:\MyWorkspace\Source-<arch>\Products\\ProductA.

New Product

Arquivo OemCustomization.cmd

Cada imagem inclui um arquivo oemcustomization.cmd que será executado em cada inicialização do seu dispositivo. Você tem a capacidade de modificar esse arquivo para personalizar o que é executado na inicialização. Esse arquivo está localizado em C:\MyWorkspace\Source-<arch>\Products\\ProductA neste exemplo. O conteúdo do arquivo é o seguinte:

@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

Observação

Lembre-se de que recursos de segurança como BitLocker e SecureBoot estão desabilitados por padrão para uma imagem de teste personalizada. Se você deseja incluir esses recursos (em uma imagem de varejo), você pode descomentar as linhas apropriadas no arquivo, antes de criar sua imagem.

Observação

Lembre-se de que os comandos neste arquivo são executados com privilégio de sistema local.

Pacotes de compilação

No IoT Core Shell, prepare seu ambiente para criar produtos criando todos os pacotes nas pastas de trabalho usando New-IoTCabPackage:

New-IoTCabPackage All
(or) buildpkg All

Observação

Se você receber erros do SignTool ao compilar os pacotes no modo de teste, execute installoemcerts.cmd para instalar os certificados de teste no seu PC técnico.

Criar uma imagem

  1. Ejete todas as unidades de armazenamento removíveis, incluindo o cartão Micro SD e quaisquer unidades flash USB.

  2. Crie o arquivo de imagem FFU inserindo o seguinte comando no Ambiente do PowerShell do IoT Core usando New-IoTFFUImage:

New-IoTFFUImage ProductA Test
(or) buildimage ProductA Test

Isso cria um arquivo FFU com sua imagem básica em C:\MyWorkspace\Build\<arch>\ProductA\Test. Essa imagem de teste incluirá ferramentas adicionais que podem ser usadas para fins de depuração. A construção do arquivo FFU final levará cerca de 10 a 30 minutos para ser concluída.

Para direcionar toda a saída para o console em vez do arquivo de log, adicione -Verbose sinalizador, como o abaixo.

new-IoTFFUImage -Verbose ProductX Test

Observação

Se você receber 0x80070005 ou 0x800705b4 como um código de erro, desconecte todas as unidades externas (incluindo cartões micro SD e pen drives USB) e tente novamente. Se isso não funcionar, volte para Configurar seu PC e baixe os exemplos e verifique se tudo está instalado.

Atualizar uma imagem do Windows IoT Core

Agora que seu arquivo de imagem FFU é construído, você pode ues este arquivo para flash e implantar th eimage para o seu dispositivo. Listado abaixo ar as etapas para piscar o arquivo de imagem FFU para dispositivos específicos do fabricante.

Pré-requisitos/Requisitos

Você precisará das seguintes ferramentas instaladas para concluir esta seção:

  • Painel do Windows IoT Core (somente Raspberry Pi)
  • Ferramenta de atualização do Dragonboard (somente Qualcomm DragonBorad)
  • Ferramenta DICM (Deployment Imaging and Servicing and Management, criação de imagens de implantação) (somente dispositivos Intel)

Como estamos usando o Raspberry Pi aqui, começaremos com o Raspberry Pi, mas também explicaremos como piscar imagens em outros dispositivos.

Raspberry Pi

  1. Inicie o Painel do Windows IoT Core.

  2. Conecte seu cartão micro SD ao PC do técnico e selecione-o na ferramenta.

  3. Na seção Configurar um novo dispositivo, selecione Broadcomm [Raspberry Pi 2 & 3] em Tipo de dispositivo.

  4. Selecione Personalizado em Compilação do sistema operacional.

  5. Clique em Procurar e navegue e selecione o arquivo FFU criado anteriormente. Nesse caso, o arquivo FFU está localizado em C:\MyWorkspace\Build\<arch>\ProductA\Test\Flash.ffu. Em seguida, clique em Próximo.

  6. Verifique se o cartão microSD está listado na seleção Unidade.

  7. Opcionalmente, você pode definir as seleções Nome do dispositivo e Senha do administrador para o dispositivo.

  8. Marque a caixa de seleção Aceito os termos de licença de software (canto inferior direito) e clique em Instalar.

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

O Painel do Windows IoT Core agora abrirá uma janela de comando e usará o DISM (Deployment Image Servicing and Management Tool) para piscar o arquivo FFU para o cartão microSD.

Raspberry Pi Flashing DISM

Observação

Como alternativa, você também pode usar o comando DISM para piscar manualmente a imagem: dism.exe /Apply-Image /ImageFile:"D:\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

Quando o processo de piscar estiver concluído, ejete o cartão microSD do PC do técnico e insira-o no Raspberry Pi. Reconecte a energia para inicializar o Windows IoT Core. Você deve ver o aplicativo IoT Core Default, que mostra informações básicas sobre a imagem.

Qualcomm

Placa de Dragão 410c

A Qualcomm forneceu o aplicativo Dragonboard Update Tool, que usaremos para piscar o arquivo de imagem FFU para o Dragonboard 410c. Você pode baixar a versão x86 ou x64 (recomendamos x64).

DragonBoard update tool

Depois de instalar a Ferramenta de Atualização do DragonBoard, você deve primeiro colocar o dispositivo DragonBoard no modo de programação. Isso é feito definindo dipswitch #1 (na parte traseira do dispositivo) para a posição ON :

Dragonboard Dipswitch

Conecte o dispositivo DragonBoard ao seu PC técnico com um cabo microUSB e ligue a placa.

Execute a DragonBoard Update Tool, procure o arquivo de imagem FFU que você está implantando e pressione o botão Programa . Você verá um Status de Conexão verde e uma barra de progresso quando o dispositivo estiver piscando o arquivo FFU.

Quando o processo de piscar estiver concluído, desconecte a alimentação da placa, bem como o cabo microUSB. Em seguida, você precisa virar o dipswitch #1 de volta para a posição OFF . Reconecte a energia para inicializar o Windows IoT Core.

DragonBoard Update tool position 1DragonBoard Update tool position 2

Inteligência

Lago Apollo/Braswell/Trilha das Cerejeiras

Usaremos o DISM (Deployment Image and Servicing Management Tool) e um pendrive inicializável para piscar o arquivo de imagem FFU para o dispositivo Intel especificado (Apollo Lake/Braswell/Cherry Trail). Informações adicionais sobre o DISM podem ser encontradas aqui.

Criando uma unidade USB inicializável

Primeiro precisamos criar uma unidade USB inicializável que possamos usar para inicializar no dispositivo de hardware Intel especificado. Podemos usar o Windows PE (WinPE) para isso (informações adicionais sobre o WinPE estão aqui).

  1. Instale o WinPE a partir dos complementos do Ambiente de Pré-instalação do Windows ADK.

WinPE Install screen

  1. Preparar unidade USB

A unidade USB que você deseja usar deve ser formatada corretamente antes que possamos carregar o WinPE nela. Siga estes teps para formatar corretamente sua unidade USB:

  • Executar a ferramenta a diskpart partir de um prompt de comando administrativo
  • Executar list disk para ver a lista de discos disponíveis
  • Execute select disk X, onde X corresponde ao número do disco da unidade USB
  • Executar clean para limpar o disco selecionado

Observação

Se você encontrar o seguinte erro, execute convert mbr:

ERROR: Failed to format "F:"; DiskPart errorlevel -2147212244
  • Executar create partition primary para criar uma partição primária no disco
  • Executar format fs=fat32 quick para formatar a unidade
  • Executar assign para atribuir a unidade
  • Saia do diskpart. Sua unidade USB agora está formatada e pronta para ter o WinPE instalado.
  1. Criar arquivos de trabalho do WinPE

Agora precisamos criar uma cópia funcional dos arquivos do Windows PE no PC do técnico. Isso pode ser feito usando o programa de linha de comando Deployment and Imaging Tools Environment . A maneira mais fácil de iniciar o Deployment and Imaging Tools Environment é procurar implantar via Menu Iniciar.

Execute o programa de linha de comando Deployment and Imaging Tools Environment como administrador e execute o seguinte comando:

copype amd64 C:\WinPE_amd64

Isso criará a cópia de trabalho dos arquivos do Windows PE em C:\WinPE_amd64.

Insira a unidade USB no PC do técnico e execute este comando para instalar o Windows PE na unidade USB. Certifique-se de que pode substituir o X pela letra da unidade USB:

MakeWinPEMedia /UFD C:\WinPE_amd64 X:
  1. Copie o arquivo FFU para a unidade raiz da unidade USB.
  2. Insira a unidade USB no dispositivo de hardware Intel e inicialize a partir da unidade USB. Talvez seja necessário entrar no BIOS (ou no menu de inicialização) do dispositivo de hardware para especificar a inicialização a partir de uma unidade USB.
  3. Quando o ambiente do Windows PE for inicializado, você verá uma janela de comando. Altere a unidade e o diretório atual para o local do arquivo FFU (dependendo da enumeração da unidade, ele pode estar em C: ou D: .. Etc.) e execute o seguinte comando para piscar o arquivo de imagem FFU:
dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

Observação

Na maioria das vezes, o destino de armazenamento integrado a ser piscado é enumerado como , no entanto, se houver vários dispositivos de armazenamento, ele pode enumerar como PhysicalDrive0outro número de unidade. Você pode usar o comando in diskpart para verificar o list disk número da unidade.

  1. Quando o processo de piscar estiver concluído, desligue o dispositivo de hardware e remova a unidade USB. Reconecte a energia ao dispositivo de hardware para inicializar o Windows IoT Core.
Comandos do 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
Comandos do WinPE
copype amd64 C:\WinPE_amd64
MakeWinPEMedia /UFD C:\WinPE_amd64 X:
Comando DISM (via WinPE no dispositivo de hardware Intel)
X:\WinPE>d:

D:\>dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

Próximas etapas

Deixe o dispositivo ligado por enquanto e continue no Laboratório 1b: Adicionar um aplicativo à sua imagem.