Guía de fabricación de IoT Core

Nota:

Para la versión anterior, consulte la guía de fabricación de IoT Core para v5.x.

¿Piensas en dispositivos de producción masiva que ejecutan Windows 10 IoT Core? Use los complementos de Windows ADK IoT Core para crear imágenes que se pueden flashar rápidamente en nuevos dispositivos.

Puede crear imágenes de prueba, que incluyen herramientas para acceder y modificar dispositivos rápidamente. Las imágenes de prueba son excelentes para:

  • Desarrolladores, proveedores de hardware y fabricantes (OEM) que están probando nuevos diseños de dispositivos.
  • Aficionados y organizaciones que crean dispositivos diseñados para ejecutarse en entornos de red no conectados o controlados.

Puede crear imágenes comerciales, que se pueden hacer más seguras para las redes públicas o corporativas mientras siguen recibiendo actualizaciones.

Puede agregar personalizaciones, incluidas las aplicaciones, la configuración, las configuraciones de hardware y los paquetes de compatibilidad de placa (BSP).

En el caso de las imágenes de estilo OEM, encapsulará las personalizaciones en archivos de paquete (.cab). Los paquetes permiten que los OEM, los OEM, los desarrolladores y Microsoft trabajen juntos para ayudar a ofrecer actualizaciones de seguridad y características a los dispositivos sin pisar el trabajo entre sí.

El dispositivo IoT Core con el servicio de ubicación de Windows 10 indica a las aplicaciones y servicios dónde está o dónde ha estado.

Desde la versión de Windows 10 IoTCore RS5 de noviembre de 2019 "11 B" (versión del sistema operativo 17763.865) en adelante, los servicios de ubicación para IoT Core se configurarán para que se establezcan en "desactivados" de forma predeterminada. Si es un OEM y desea activar los servicios de ubicación, siga estos pasos. Esto solo se aplica a IoT Core.

En la clave HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManagerCapabilitieslocationeditiondel Registro , establezca los valores siguientes:

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

Los generadores de kit deben hacer referencia a Lab 1c: Agregar archivos y configuraciones del Registro a una imagen para obtener instrucciones sobre cómo crear una imagen personalizada con esta configuración del Registro

Escenarios

Conceptos

Para comprender claramente el proceso para crear e implementar imágenes de Windows IoT Core, primero se deben definir algunos conceptos y terminología.

El proceso para crear una imagen de Windows IoT Core implica una serie de pasos, que se enumeran aquí:

  1. Pruebe cualquier personalización que se incluya en la imagen para comprobar que funcionan correctamente. Entre ellas se incluyen aplicaciones, configuraciones, controladores o paquetes de compatibilidad con placa (BSP).
  2. Instale certificados de prueba en el equipo y empaquete las personalizaciones en archivos .CAB.
  3. Cree una imagen de Windows 10 IoT Core de prueba que incluya las personalizaciones, junto con el paquete de IoT Core y las actualizaciones del fabricante de hardware.
  4. Flashe la imagen en un dispositivo y pruebe que funciona. Puede usar las herramientas de prueba integradas en la imagen de prueba para solucionar los problemas que puedan surgir.
  5. Una vez que haya comprobado que todo funciona correctamente, obtenga un certificado comercial válido y firme las personalizaciones con el certificado comercial. A continuación, debe volver a empaquetar la personalización en nuevos archivos de .CAB.
  6. Cree una imagen comercial con los archivos de .CAB firmados y flashe la imagen en los dispositivos.

Proceso de creación de imágenes básicas de IoT

Terminología

Paquetes

Los paquetes (archivos .cab) son los bloques de creación lógicos de IoT Core. Contienen todos los archivos, bibliotecas, configuración del Registro, ejecutables y datos del dispositivo. Desde controladores de dispositivo a archivos del sistema, todos los componentes deben estar incluidos en un paquete. Esta arquitectura modular permite un control preciso de las actualizaciones: un paquete es la unidad de servicio más pequeña del dispositivo.

Cada paquete contiene:

  • El contenido del paquete, como un binario del controlador firmado o un binario appx firmado.
  • Un archivo de definición de paquete (.wm.xml) especifica el contenido del paquete y dónde deben colocarse en la imagen final. Consulte el directorio %SRC_DIR%\Packages\ del kit de complementos de Windows ADK IoT Core para obtener varios ejemplos de archivos de paquete. Por ejemplo, eche un vistazo aAppx.IoTCoreDefaultApp.wm.xml.
  • Una firma. Un paquete se puede firmar con un certificado de prueba o comercial.

La pkggen herramienta combina estos elementos en paquetes firmados. Nuestros ejemplos incluyen scripts: createpkg, y createprovpkg, que llaman a pkggen para crear paquetes para nuestros controladores, aplicaciones y configuraciones.

Manifiestos de características (VM)

Después de colocar todo en paquetes, usará el manifiesto de características (archivos FM) para enumerar cuáles de los paquetes pertenecen a la imagen final.

Puede usar tantas máquinas virtuales en una imagen como desee. En esta guía, nos referimos a las siguientes máquinas virtuales:

  • OEMFM.xml incluye características que un OEM podría agregar a un dispositivo, como la aplicación y un paquete de aprovisionamiento.
  • BSPFM.xml incluye características que un fabricante de hardware puede usar para definir una placa. Por ejemplo, OEM_RPi2FM.xml incluye todas las características usadas para Raspberry Pi 2.

Enumerará cuáles de las características que se van a agregar mediante estas etiquetas:

  • <BasePackages>: paquetes que siempre incluyó en las imágenes, por ejemplo, la aplicación base.
  • <Características>\<OEM>: otros paquetes individuales que pueden ser específicos de un diseño de producto determinado.

La herramienta Fusión de características genera los paquetes de identificadores de características necesarios para el mantenimiento del dispositivo. Ejecute esta herramienta cada vez que se realicen cambios en los archivos FM. Después de cambiar los archivos FM DE OEM o OEM COMMON FM, ejecute buildfm oem. Después de cambiar el archivo BSPFM, ejecute buildfm bsp <bspname>. Estos comandos se ejecutan desde el shell de IoT Core.

Paquetes de soporte técnico de placa (BSP)

Los paquetes de soporte de placa contienen un conjunto de software, controladores y configuraciones de arranque para una placa determinada, que normalmente proporciona un fabricante de placa. El fabricante de la placa puede proporcionar periódicamente actualizaciones para la placa, que los dispositivos pueden recibir y aplicar. También puede crear su propio BSP si el fabricante de la placa no proporciona uno, y tiene el conjunto correspondiente de archivos de software y controladores. Los BSP admitidos se enumeran aquí.

Archivos de imagen de actualización flash completa

Los archivos full Flash Update (FFU) son archivos de imagen que se pueden implementar (también conocido como . "flashed") a un dispositivo de hardware específico. Cuando parpadea un archivo FFU en un dispositivo, todo el software necesario se instala en ese dispositivo al mismo tiempo. Un archivo de imagen FFU agrupa cargadores de arranque, el sistema operativo Windows, los controladores, las imágenes periféricas y cualquier otro archivo necesario en un único paquete.

Aplicaciones en primer plano y en segundo plano

Hay dos tipos de aplicaciones que se pueden ejecutar en Windows IoT Core.

  • Aplicaciones en primer plano: estas aplicaciones tienen una interfaz de usuario. Solo se puede ejecutar una aplicación en un dispositivo IoT como aplicaciones en primer plano. Si se incluye varias aplicaciones en primer plano en la imagen, solo se debe establecer una como inicio automático en el arranque.
  • Aplicaciones en segundo plano: estas aplicaciones no tienen una interfaz de usuario. Varias aplicaciones se pueden ejecutar en un dispositivo IoT como aplicaciones en segundo plano. Puede configurar cualquier número de aplicaciones en segundo plano para iniciarse automáticamente.

Para obtener más información, consulte Aplicaciones en primer plano o Aplicaciones en segundo plano.

Creación de la imagen: ImgGen y el archivo de configuración de imagen (OEMInput.xml)

Para crear la imagen final, usará la imggen herramienta con un archivo de configuración de imagen, OEMInput.xml archivo.

El archivo de configuración de imágenes muestra:

  • Los manifiestos de características (FM) y los paquetes que desea instalar desde cada uno.

  • Un identificador de chip soC , que se usa para ayudar a configurar las particiones del dispositivo. Los valores admitidos para soc se definen en el bspfm.xml correspondiente, en <devicelayoutpackages>.

  • Identificador de dispositivo , que se usa para seleccionar el diseño del dispositivo. Los valores admitidos para el dispositivo se definen en el bspfm.xml correspondiente, en <oemdeviceplatformpackages>.

  • ReleaseType (producción oprueba).

    Compilaciones comerciales: se recomienda crear imágenes comerciales al principio del proceso de desarrollo para comprobar que todo funcionará cuando esté listo para enviarse.

    Estas compilaciones contienen todas las características de seguridad habilitadas.

    Para usar este tipo de compilación, todo el código debe estar firmado mediante certificados de firma de código comercial (no de prueba).

    Para obtener un ejemplo, vea %SRC_DIR%\Products\SampleA\RetailOEMInput.xml.

    Compilaciones de prueba: úselos para probar nuevas versiones de las aplicaciones y controladores creados por usted y sus asociados fabricantes de hardware.

    Estas compilaciones tienen algunas características de seguridad deshabilitadas, lo que permite usar paquetes firmados por pruebas o firmados por producción.

    Estas compilaciones también incluyen herramientas de desarrollo como el transporte de depuración, SSH y PowerShell, que puede usar para ayudar a solucionar problemas.

    Para obtener un ejemplo, vea %SRC_DIR%\Products\SampleA\TestOEMInput.xml.

Área Compilaciones comerciales Compilaciones de prueba
Tipo de versión de imagen ReleaseType: Production ReleaseType: Test
Tipo de versión del paquete Solo se admiten paquetes de tipo de producción Se admiten tanto el tipo de producción como el tipo de prueba
Paquetes firmados por pruebas No compatible Se debe incluir la característica IOT_ENABLE_TESTSIGNING compatible
.
Comprobación de integridad de código Compatible. De forma predeterminada, esto está habilitado. Compatible. De forma predeterminada, no se aplica ninguna directiva

Bien, vamos a probarlo.

Comience aquí: Obtenga las herramientas necesarias para personalizar Windows IoT Core.