Diseño de dispositivos IoT
Al modificar un paquete de compatibilidad de placa de IoT Core (BSP), puede cambiar las particiones de unidad y el diseño modificando los archivos DeviceLayout.
Diseño de partición
IoT Core admite los diseños de partición UEFI (GPT) y BIOS (MBR) heredados. La mayoría de los dispositivos IoT Core usan particiones de estilo UEFI y GPT, aunque Raspberry Pi 2 usa particiones de estilo MBR. Para más información sobre UEFI, lea Arranque y UEFI y las Preguntas más frecuentes sobre Windows y GPT.
Diseños de partición de ejemplo incluidos en los complementos de ADK:
- \iot-adk-addonkit\Common\Packages\DeviceLayout.GPT4GB\devicelayout.xml
- \iot-adk-addonkit\Common\Packages\DeviceLayout.GPT4GB-R\devicelayout.xml
- \iot-adk-addonkit\Common\Packages\DeviceLayout.MBR4GB\devicelayout.xml
- \iot-adk-addonkit\Common\Packages\DeviceLayout.MBR4GB-R\devicelayout.xml
Estos archivos usan tres archivos de componentes:
- DeviceLayout.<Name>.pkg.xml: archivo de paquete, crea paquetes para DeviceLayout y OEMDevicePlatform.xml.
- DeviceLayout.xml: especifica el diseño de la partición del dispositivo.
- OEMDevicePlatform.xml: especifica la cantidad de bloques libres disponibles en el dispositivo y qué particiones se comprimen.
Diseño de partición (DeviceLayout.xml)
IoT Core requiere 3 particiones obligatorias (EFIESP, MainOS y Datos). Opcionalmente, puede incluir otras particiones, por ejemplo, una CrashDump. Los tamaños se calculan en sectores, el sector predeterminado es de 512 bytes.
Propiedades admitidas:
EFI: partición de tamaño fijo con el administrador de arranque, base de datos de configuración de arranque. Esta partición es necesaria para ambos dispositivos de estilo MBR/GPT.
Nombre:
EFIESP
Tipo: para MBR, use
0x0C
. Para GPT, use{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
.FileSystem:
FAT
TotalSectors:
65536
(= 32 MB)Bootable:
true
RequiredToFlash:
true
MainOS: aplicaciones precargadas del sistema operativo y OEM. Esta partición requiere un número mínimo de sectores libres (MinFreeSectors) para las operaciones normales.
Nombre:
MainOS
Tipo: para MBR, use
0x07
. Para GPT, use{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
.FileSystem:
NTFS
MinFreeSectors:
1048576
(= 512 MB)ByteAlignment:
0x800000
ClusterSize:
0x1000
(se recomienda este tamaño para mantener el tamaño de partición administrable).
Data: partición de datos de usuario, subárboles del registro de usuario, aplicaciones, datos de aplicaciones. Esta partición se establece normalmente para usar el resto del espacio de almacenamiento en el dispositivo. (UseAllSpace: True)
Nombre:
Data
Tipo: para MBR, use
0x07
. Para GPT, use{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
.FileSystem:
NTFS
UseAllSpace:
true
ByteAlignment:
0x800000
ClusterSize:
0x4000
(esta partición tiende a ser mayor, por lo que se recomienda 0x4000. 0x1000 también es correcto).
Partición de volcado de memoria: partición opcional, que se usa para recopilar datos de volcado de memoria. Cuando se usa, el tamaño se asigna en el total de sectores.
Nombre:
CrashDump
Tipo: para MBR, use
0x07
. Para GPT, use{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
.FileSystem:
FAT32
TotalSectors:
1228800
(= 600 MB)
Campos obligatorios
Estos campos son obligatorios, se admiten los siguientes valores para IoTCore:
Versión:
IoTUAP
SectorSize:
512
ChunkSize:
128
DefaultPartitionByteAlignment:
0x200000
Estimaciones de tamaño de almacenamiento
En los diagramas siguientes se proporciona información general sobre dos configuraciones.
Configuración de 2 GB (2048 MB, normalmente tiene 1843 MB para almacenamiento)
Partition | Contenido | MB | Sectores | Comentarios |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | Tamaño de EFIESP |
Sistema operativo principal | Sistema operativo principal | 800 | 1638400 | MainOS (calculado) |
Sistema operativo principal | Espacio libre | 128 | 262 144 | MainOS Headroom |
Datos | Datos | 883 | 1808384 | Se expande para rellenar el espacio libre |
TOTAL | 1843 | 3774464 |
Configuración de 4 GB: (4096 MB, normalmente tiene 3600 MB disponibles para almacenamiento)
Partition | Contenido | MB | Sectores | Comentarios |
---|---|---|---|---|
EFIESP | EFIESP | 32 | 65536 | Tamaño de EFIESP |
Sistema operativo principal | Sistema operativo principal | 800 | 1638400 | MainOS (calculado) |
Sistema operativo principal | Espacio libre | 512 | 1 048 576 | MainOS Headroom |
CrashDump | Volcado de memoria | 600 | 1228800 | Tamaño de CrashDump |
Datos | Datos | 1656 | 3391488 | Se expande para rellenar el espacio libre |
TOTAL | 3600 | 7372800 |
Diseño de la plataforma de dispositivo (OEMDevicePlatform.xml)
OEMDevicePlatform.xml especifica la cantidad de bloques libres disponibles en el dispositivo y qué particiones se comprimen. Ejemplo:
<?xml version="1.0" encoding="utf-8"?>
<OEMDevicePlatform xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
<MinSectorCount>7372800</MinSectorCount>
<DevicePlatformIDs>
<ID>*</ID>
</DevicePlatformIDs>
<CompressedPartitions>
<Name>MainOS</Name>
</CompressedPartitions>
</OEMDevicePlatform>