Fonctionnalités et communication des appareils
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Les fonctionnalités de l’appareil déterminent les stratégies de système d’exploitation spécifiques à l’appareil pour la communication service-UART . Toutes les communications entre l’ordinateur hôte et un appareil attaché sont via l’UART du service. L’ordinateur hôte communique avec un appareil attaché pour effectuer des opérations sur l’appareil. Les fabricants, les développeurs de logiciels et les techniciens de service après-vente utilisent des fonctionnalités pour déverrouiller la communication UART de service pour les opérations dont ils ont besoin tout en garantissant que l’appareil est protégé contre les utilisateurs malveillants.
Les fabricants d’appareils et les oem peuvent verrouiller la communication service-UART pour empêcher toute utilisation non autorisée par ceux qui ont un accès physique à l’appareil. Le verrouillage de ces communications fait partie de la finalisation de l’appareil. Après la finalisation, un utilisateur peut obtenir l’ID d’un appareil, mais rien de plus : toutes les autres opérations nécessitent une fonctionnalité d’appareil. La finalisation est généralement effectuée au niveau de l’usine avant que le fabricant n’envoie l’appareil à un site client.
Un fichier de capacité d’appareil contient zéro ou plusieurs fonctionnalités pour un seul appareil uniquement. Le fichier de capacité ne fonctionnera pas s’il est appliqué à un appareil qui n’est pas celui pour lequel il est destiné. Un appareil peut avoir les fonctionnalités suivantes, chacune d’elles étant décrite plus loin dans cette rubrique :
Remarque
Les fonctionnalités d’appareil ne sont pas liées aux fonctionnalités d’application. Les fonctionnalités d’application sont les ressources qui sont nécessaires à une application lors de l’exécution. Pour plus d’informations sur les fonctionnalités d’application, consultez manifeste d’application.
Guide pratique pour déterminer les fonctionnalités de l’appareil ou l’état de fabrication
Pour déterminer la configuration de capacité stockée sur l’appareil attaché, utilisez la commande azsphere device capability show-attached. La commande affiche les fonctionnalités configurées à l’aide d’un fichier de fonctionnalités et certaines fonctionnalités, mais pas toutes, présentes par défaut sur les tableaux. Pour obtenir la liste complète des commandes azsphere qui nécessitent une fonctionnalité d’appareil, consultez le tableau de la vue d’ensemble de l’interface CLI.
Les fonctionnalités de l’appareil peuvent être affectées par l’état de fabrication de l’appareil. Pour déterminer l’état de fabrication de l’appareil, utilisez la commande azsphere device manufacturing-state show. Si la commande indique que l’appareil est dans l’état de fabrication deviceComplete ou retourne Device access is forbidden
, la communication service-UART est verrouillée et vous avez besoin d’une fonctionnalité d’appareil pour communiquer avec l’appareil à partir de votre ordinateur. Lorsqu’un appareil est dans l’état de fabrication DeviceComplete , les opérations de fabrication sont autorisées uniquement lorsque l’appareil est déverrouillé via un fichier de capacité.
Remarque
Si vous installez un appareil sur un site client, vous devez vous assurer que l’appareil est finalisé à l’état de fabrication DeviceComplete avant l’installation. Consultez Finaliser l’appareil Azure Sphere.
L’état de manufacuring DeviceComplete n’est normalement pas approprié pour un kit de développement. Pour permettre le test des opérations de fabrication développées par les ingénieurs de fabrication, un kit de développement doit être à l’état de fabrication vide ou à l’état de fabrication Module1Complete .
Comment les appareils acquièrent des fonctionnalités
Les appareils peuvent acquérir des fonctionnalités de l’une des trois manières suivantes :
Ouvert par défaut. Un appareil qui se trouve dans l’état de fabrication vide ou l’état de fabrication Module1Complete a certaines fonctionnalités ouvertes par défaut. Cela permet de faire en sorte que les appareils encore à l’étape de fabrication n’ont pas besoin d’être connectés au cloud ou revendiqués dans des locataires, comme le nécessite le processus d’utilisation de fichiers de capacité d’appareil pour déverrouiller les fonctionnalités. À mesure que la fabrication progresse, les fabricants peuvent changer l’état de fabrication de l’appareil pour verrouiller les fonctionnalités qui ne sont plus appropriées, comme décrit dans les tâches de niveau usine.
Chargement indépendant sur l’appareil. Un appareil peut avoir un fichier de capacité chargé de manière indépendante sur l’appareil à partir de l’ordinateur hôte. Utilisez la commande azsphere device capability download pour récupérer le fichier de fonctionnalité. Cet ensemble indépendant de fonctionnalités persiste jusqu’à ce qu’un nouveau fichier de capacité (qui peut être un fichier vide sans fonctionnalités) soit chargé de manière indépendante. Il s’agit de la situation habituelle pendant le développement d’applications, par exemple, lorsque la commande azsphere device enable-development est exécutée. Le développement d’applications est aidé par le fait que l’appareil est dans un état déverrouillé où le développeur peut effectuer des opérations telles que le débogage et la suppression et le déploiement facilement des versions déchargées de l’application.
Transmis à l’appareil avec chaque opération. Un appareil peut avoir des fonctionnalités sélectionnées localement en fonction de l’opération. La commande azsphere device select sélectionne un fichier de capacité stocké localement sur l’ordinateur hôte. Une fois cette commande exécutée, la fonctionnalité sélectionnée est passée de l’ordinateur à l’appareil avec chaque commande suivante. Il s’agit du moyen recommandé d’utiliser des fonctionnalités pour les appareils qui se trouvent dans le champ, car les fonctionnalités sont stockées sur l’ordinateur plutôt que sur l’appareil. Le risque qu’un ingénieur de terrain quitte accidentellement l’appareil dans un état non sécurisé en oubliant de supprimer la fonctionnalité est évité.
Avant qu’un fichier de capacité puisse être chargé de manière indépendante sur un appareil ou transmis à un appareil avec une opération, il doit être téléchargé à partir du service de sécurité Azure Sphere (AS3), comme décrit dans Apporter des modifications à un appareil après la fabrication. Les fichiers de capacité téléchargés sont spécifiques à l’appareil ; une fois téléchargé, un fichier de capacité peut être utilisé à plusieurs reprises sur l’appareil associé.
Fonctionnalité enableRfTestMode
La fonctionnalité enableRfTestMode est présente par défaut sur l’appareil lorsque l’état de fabrication de l’appareil est Vide. Cette fonctionnalité permet la programmation de fusibles électroniques et la configuration et le test de l’opération RF. Il n’est pas possible pour les propriétaires de locataires de télécharger cette fonctionnalité sur un ordinateur hôte. Si vous avez besoin de cette fonctionnalité, contactez votre représentant Microsoft.
Lorsque l’état de fabrication de l’appareil est Vide, la commande azsphere device capability show-attache affiche la fonctionnalité enableRfTestMode.
La fonctionnalité appDevelopment
La fonctionnalité d’appareil appDevelopment déverrouille la communication service-UART et modifie le type de signature que l’appareil approuve. Elle est destinée à être utilisée lors du développement d’applications.
Par défaut, les appareils Azure Sphere font confiance aux packages d’image signés pour la production, mais ne font pas confiance aux packages d’image signés pour le SDK. Par conséquent, vous ne pouvez pas créer un package d’image avec le SDK et le charger de façon indépendante sur votre appareil Azure Sphere pour le débogage, sauf si l’appareil dispose de la fonctionnalité appDevelopment. La fonctionnalité appDevelopment fait que l’appareil fait confiance au package d’image, et vous permet de démarrer, d’arrêter, de déboguer ou de supprimer une application de l’appareil.
En résumé, la fonctionnalité appDevelopment déverrouille la communication service-UART pour permettre les opérations suivantes :
Chargement indépendant d’un package d’images généré avec Visual Studio, Visual Studio Code, l’interface CLI ou la commande azsphere image-package.
Démarrage, arrêt, débogage ou suppression d’un package d’image de l’appareil Azure Sphere, quelle que soit la façon dont le package d’image est signé.
Pour ajouter la fonctionnalité appDevelopment , utilisez la commande azsphere device enable-development . Cette commande télécharge la fonctionnalité appDevelopment pour l’appareil attaché, charge la fonctionnalité sur l’appareil et déplace l’appareil vers le groupe d’appareils de développement par défaut. Pour spécifier un autre groupe d’appareils, incluez le --device-group
paramètre.
Quand vous utilisez azsphere device enable-development, l’appareil reste déverrouillé jusqu’à ce qu’il soit verrouillé explicitement. Pour reverrouiller l’appareil, utilisez la commande azsphere device enable-cloud-test. Cette commande supprime la fonctionnalité et change le groupe d’appareils, en fonction des paramètres de ligne de commande fournis.
Les commandes azsphere device enable-development et azsphere device enable-cloud-test effectuent une séquence d’actions qui préparent un appareil pour le développement et le débogage ou pour les déploiements cloud, respectivement. Au lieu d’utiliser ces commandes, vous pouvez utiliser la commande de fonctionnalité d’appareil azsphere pour télécharger ou mettre à jour une fonctionnalité d’appareil, ou pour déterminer les fonctionnalités dont dispose actuellement un appareil.
La fonctionnalité fieldServicing
La fonctionnalité fieldServicing est présente sur un appareil par défaut lorsque l’appareil a un état de fabrication vide ou Module1Complete. Lorsqu’un appareil est à l’état de fabrication DeviceComplete , la fonctionnalité fieldServicing peut être chargée de manière indépendante, mais elle est généralement passée à l’appareil avec chaque opération pendant une session de maintenance. Pour plus d’informations sur le démarrage d’une session de maintenance, consultez Apporter des modifications à un appareil après la fabrication.
Quelle que soit l’état de fabrication de l’appareil, la fonctionnalité fieldServicing déverrouille la communication service-UART pour permettre les opérations suivantes :
- Chargement indépendant d’un package d’images signé en production.
- Démarrage, arrêt et suppression d’un package d’image signé en production marqué comme temporaire.
- Effectuer des tâches de maintenance courantes telles que la configuration du Wi-Fi.
Bien que la fonctionnalité fieldServicing soit présente par défaut sur l’appareil lorsque l’état de fabrication de l’appareil est Vide ou Module1Complete, la commande azsphere device capability show-attache n’affiche pas la fonctionnalité fieldServicing.
Dépendance sur le magasin de clés approuvé à jour
Lorsqu’un fichier de fonctionnalité est créé par AS3, il est signé à l’aide de la clé de signature d’image actuelle. Chaque appareil dispose d’un magasin de clés approuvé dans le cadre du système d’exploitation où ces clés sont conservées. Toutefois, si l’appareil n’est pas connecté à Internet, il est possible qu’une fonctionnalité ne soit pas approuvée par l’appareil qu’il cible si le magasin de clés approuvé de cet appareil est obsolète.
Pour résoudre ce problème, une méthode consiste à autoriser l’appareil à se connecter à Internet afin qu’il met à jour le magasin de clés approuvé. Connectez votre appareil à Internet et appuyez sur Réinitialiser pour déclencher une mise à jour du système d’exploitation.
Si cela n’est pas possible, vous pouvez charger un magasin de clés approuvé mis à jour. Pour ce faire, acceptez les termes du contrat de licence, puis téléchargez les dernières images de récupération du système d’exploitation, et à partir de ce fichier zip, extrayez simplement le fichier « trusted-keystore.bin ». Vous pouvez ensuite utiliser la commande azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> pour charger côte à côte le magasin de clés approuvé, et la fonctionnalité doit maintenant être approuvée par l’appareil.
Une troisième méthode consiste à récupérer le logiciel système pour mettre à jour le système d’exploitation Azure Sphere vers la dernière version publiée, y compris le dernier magasin de clés approuvé.