Guia de fabricação do IoT Core

Observação

Para a versão anterior, consulte Guia de fabricação do IoT Core para v5.x.

Pensando em dispositivos de produção em massa executando Windows 10 IoT Core? Use os Complementos do Windows ADK IoT Core para criar imagens que podem ser exibidas rapidamente em novos dispositivos.

Você pode criar imagens de teste, que incluem ferramentas para acessar e modificar dispositivos rapidamente. As imagens de teste são ótimas para:

  • Desenvolvedores, fornecedores de hardware e fabricantes (OEMs) que estão experimentando novos designs de dispositivo.
  • Hobbyists e organizações que estão criando dispositivos projetados para serem executados em ambientes de rede não conectados ou controlados.

Você pode criar imagens de varejo, que podem ser mais seguras para redes públicas ou corporativas enquanto ainda recebem atualizações.

Você pode adicionar personalizações, incluindo aplicativos, configurações, configurações de hardware e pacotes de suporte de quadro (BSPs).

Para imagens no estilo OEM, você encapsulará suas personalizações em arquivos de pacote (.cab). Os pacotes permitem que OEMs, ODMs, desenvolvedores e Microsoft trabalhem juntos para ajudar a fornecer atualizações de segurança e recursos para seus dispositivos sem pisar no trabalho uns dos outros.

Seu dispositivo IoT Core com o serviço de localização do Windows 10 informa aos seus aplicativos e serviços onde você está ou onde esteve.

Na versão "11 B" do Windows 10 IoTCore RS5 de novembro de 2019 (versão 17763.865) do sistema operacional em diante, os serviços de localização do IoT Core serão configurados para serem definidos como "desativados" por padrão. Se você for um OEM e quiser ativar os serviços de localização, siga as etapas abaixo. Isso só se aplica ao IoT Core.

Na chave HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManagerCapabilitieslocationeditiondo Registro , defina os seguintes valores:

  • name=InitSystemGlobalConsentDenied value="0" valueType=REG_DWORD
  • name=InitUserGlobalConsentDenied value="0" valueType=REG_DWORD

Os construtores de kits devem se referir ao Laboratório 1c: adicionando arquivos e configurações de registro a uma imagem para obter instruções sobre como criar uma imagem personalizada com essas configurações do Registro

Cenários

Conceitos

Para entender claramente o processo para criar e implantar imagens do Windows IoT Core, alguns conceitos e terminologia devem ser definidos primeiro.

O processo para criar uma imagem do Windows IoT Core envolve várias etapas, listadas aqui:

  1. Teste qualquer personalização a ser incluída na imagem para verificar se elas funcionam corretamente. Elas incluem aplicativos, configurações, drivers ou BSPs (Pacotes de Suporte de Placa).
  2. Instale certificados de teste no computador e empacote suas personalizações em arquivos .CAB.
  3. Crie um teste Windows 10 IoT Core imagem que inclua suas personalizações, juntamente com o pacote IoT Core e quaisquer atualizações do fabricante do hardware.
  4. Faça flash da imagem em um dispositivo e teste se ela funciona. Você pode usar as ferramentas de teste incorporadas à imagem de teste para solucionar problemas que possam surgir.
  5. Depois de verificar se tudo funciona corretamente, obtenha um certificado de varejo válido e assine suas personalizações com seu certificado de varejo. Em seguida, você deve reempacotar a personalização em novos arquivos .CAB.
  6. Crie uma imagem de varejo com seus arquivos .CAB assinados e flash a imagem em seus dispositivos.

iot core image creation process

Terminologia

Pacotes

Pacotes (arquivos .cab) são os blocos de construção lógicos do IoT Core. Eles contêm todos os arquivos, bibliotecas, configurações do Registro, executáveis e dados no dispositivo. De drivers de dispositivo a arquivos do sistema, cada componente deve estar contido em um pacote. Essa arquitetura modular permite o controle preciso das atualizações: um pacote é a menor unidade que pode ser atendida no dispositivo.

Cada pacote contém:

  • O conteúdo do pacote, como um binário de driver assinado ou um binário appx assinado.
  • Um arquivo de definição de pacote (.wm.xml) especifica o conteúdo do pacote e onde eles devem ser colocados na imagem final. Confira o diretório %SRC_DIR%\Packages\ do kit complemento IoT Core do Windows ADK para obter vários exemplos de arquivos de pacote. Por exemplo, dê uma olhada em Appx.IoTCoreDefaultApp.wm.xml.
  • Uma assinatura. Um pacote pode ser assinado com um certificado de teste ou de varejo.

A pkggen ferramenta combina esses itens em pacotes assinados. Nossos exemplos incluem scripts: createpkge createprovpkg, que chamam pkggen para criar pacotes para nossos drivers, aplicativos e configurações.

Manifestos de recursos (FMs)

Depois de colocar tudo em pacotes, você usará o Manifesto de Recursos (arquivos FM) para listar quais dos pacotes pertencem à imagem final.

Você pode usar quantas FMs desejar em uma imagem. Neste guia, nos referimos às seguintes FMs:

  • OEMFM.xml inclui recursos que um OEM pode adicionar a um dispositivo, como o aplicativo e um pacote de provisionamento.
  • BSPFM.xml inclui recursos que um fabricante de hardware pode usar para definir uma placa. Por exemplo, OEM_RPi2FM.xml inclui todos os recursos usados para o Raspberry Pi 2.

Você listará quais dos recursos adicionar usando estas marcas:

  • <BasePackages: pacotes> que você sempre incluiu em suas imagens, por exemplo, seu aplicativo base.
  • <Features>\<OEM>: outros pacotes individuais que podem ser específicos para um design de produto específico.

A ferramenta Fusão de Recursos gera os pacotes de identificador de recursos necessários necessários para atender o dispositivo. Execute essa ferramenta sempre que forem feitas alterações nos arquivos FM. Depois de alterar os arquivos OEM FM ou OEM COMMON FM, execute buildfm oem. Depois de alterar o arquivo BSPFM, execute buildfm bsp <bspname>. Esses comandos são executados no shell do IoT Core.

BSPs (Pacotes de Suporte do Board)

Os Pacotes de Suporte de Placa contêm um conjunto de software, drivers e configurações de inicialização para um quadro específico, normalmente fornecido por um fabricante de placas. O fabricante do quadro pode fornecer periodicamente atualizações para o quadro, que seus dispositivos podem receber e aplicar. Você também pode criar seu próprio BSP se o fabricante do quadro não fornecer um e você tiver o conjunto correspondente de arquivos de software e driver. Os BSPs com suporte estão listados aqui.

Arquivos de imagem de atualização flash completos

Os arquivos FFU (Atualização Flash Completa) são arquivos de imagem que podem ser implantados (também conhecidos como . "flashed") para um dispositivo de hardware específico. Quando você mostra um arquivo FFU em um dispositivo, todo o software necessário é instalado nesse dispositivo ao mesmo tempo. Um arquivo de imagem FFU agrupa carregadores de inicialização, o Sistema Operacional Windows, drivers, imagens periféricas e quaisquer outros arquivos necessários em um único pacote.

Aplicativos em primeiro plano e em segundo plano

Há dois tipos de aplicativos que podem ser executados no Windows IoT Core.

  • Aplicativos em primeiro plano – esses aplicativos têm uma interface do usuário. Somente um aplicativo pode ser executado em um dispositivo IoT como os aplicativos em primeiro plano. Se vários aplicativos em primeiro plano estiverem incluídos na imagem, apenas um deverá ser definido como inicialização automática na inicialização.
  • Aplicativos em segundo plano – esses aplicativos não têm uma interface do usuário. Vários aplicativos podem ser executados em um dispositivo IoT como aplicativos em segundo plano. Você pode configurar qualquer número de aplicativos em segundo plano para iniciar automaticamente.

Para obter mais informações, consulte Aplicativos em primeiro plano ou Aplicativos em segundo plano.

Criando a imagem: ImgGen e o arquivo de configuração de imagem (OEMInput.xml)

Para criar a imagem final, você usará a imggen ferramenta com um arquivo de configuração de imagem OEMInput.xml arquivo.

O arquivo de configuração de imagem lista:

  • Os FMs (manifestos de recurso) e os pacotes que você deseja instalar de cada um deles.

  • Um identificador de chip soc , que é usado para ajudar a configurar as partições do dispositivo. Os valores com suporte para soc são definidos no bspfm.xml correspondente, em <devicelayoutpackages>.

  • Um identificador de dispositivo , que é usado para selecionar o layout do dispositivo. Os valores com suporte para o dispositivo são definidos no bspfm.xml correspondente, em <oemdeviceplatformpackages>.

  • O ReleaseType ( produção ou teste).

    Builds de varejo: recomendamos criar imagens de varejo no início do processo de desenvolvimento para verificar se tudo funcionará quando você estiver pronto para enviar.

    Esses builds contêm todos os recursos de segurança habilitados.

    Para usar esse tipo de build, todo o código deve ser assinado usando certificados de assinatura de código de varejo (não teste).

    Para obter um exemplo, consulte %SRC_DIR%\Products\SampleA\RetailOEMInput.xml.

    Compilações de teste: use-as para experimentar novas versões de seus aplicativos e drivers criados por você e seus parceiros de fabricante de hardware.

    Esses builds têm alguns recursos de segurança desabilitados, o que permite que você use pacotes assinados por teste ou assinados em produção.

    Essas compilações também incluem ferramentas de desenvolvedor, como transporte de depuração, SSH e PowerShell, que você pode usar para ajudar a solucionar problemas.

    Para obter um exemplo, consulte %SRC_DIR%\Products\SampleA\TestOEMInput.xml.

Área Builds de varejo Compilações de teste
Tipo de versão de imagem ReleaseType: Produção ReleaseType: Teste
Tipo de versão do pacote Há suporte apenas para pacotes de Tipo de Produção Há suporte para Tipo de Produção ou Tipo de Teste
Pacotes assinados por teste Sem suporte O recurso de IOT_ENABLE_TESTSIGNING com
suporte deve ser incluído.
Marcar de integridade do código Com suporte. Por padrão, isso está habilitado. Com suporte. Por padrão, nenhuma política é imposta

Ok, vamos tentar

Comece aqui: obtenha as ferramentas necessárias para personalizar o Windows IoT Core.