Share via


Fonctionnalités et communication de l’appareil

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é s’effectuent via le service UART. 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 sur le terrain utilisent des fonctionnalités pour déverrouiller la communication service-UART 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 fabricants 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 cette communication 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 dans 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. Le fichier de capacité ne fonctionnera pas s’il est appliqué à un appareil qui n’est pas celui auquel il est destiné. Un appareil peut avoir les fonctionnalités suivantes, chacune d’elles étant décrite plus loin dans cette rubrique :

Note

Les fonctionnalités de l’appareil ne sont pas liées aux fonctionnalités de l’application. Les fonctionnalités de l’application spécifient les ressources dont une application a besoin au moment de l’exécution. Pour plus d’informations sur les fonctionnalités de l’application, consultez manifeste d’application.

Comment 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, mais pas toutes, les fonctionnalités 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 dans 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 capacité 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é.

Note

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 fabrication DeviceComplete n’est normalement pas approprié pour un kit de développement. Pour permettre le test des opérations de fabrication en cours de développement 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 dont l’état de fabrication est Vide ou Module1Complete a certaines fonctionnalités ouvertes par défaut. Cela permet d’éviter que les appareils encore en phase de fabrication n’ont pas besoin d’être connectés au cloud ou revendiqués dans des locataires, comme l’exige le processus d’utilisation des fichiers de capacité d’appareil pour déverrouiller les fonctionnalités. À mesure que la fabrication progresse, les fabricants peuvent modifier l’état de fabrication de l’appareil pour verrouiller les fonctionnalités qui ne sont plus appropriées, comme décrit dans Tâches au niveau de l’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 capacité. Cet ensemble de fonctionnalités chargé de manière indépendante persiste jusqu’à ce qu’un nouveau fichier de fonctionnalités (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 facilité 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 facilement supprimer et déployer des versions de l’application chargées de manière indépendante.

  • Transmis à l’appareil avec chaque opération. Un appareil peut avoir des fonctionnalités sélectionnées localement appliquées par opération. La commande azsphere device capability 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 de la façon recommandée d’utiliser les fonctionnalités pour les appareils qui se trouvent sur le terrain, 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 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 d’e-fusibles, ainsi que 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-attached affiche la fonctionnalité enableRfTestMode .

La fonctionnalité appDevelopment

La fonctionnalité d’appareil appDevelopment déverrouille la communication service-UART et modifie le type de signature approuvé par l’appareil. Il est destiné à être utilisé pendant le développement de l’application.

Par défaut, les appareils Azure Sphere approuvent les packages d’images signés en production qui sont téléchargés par le service de sécurité Azure Sphere, mais n’approuvent pas les packages d’images signés par le SDK. Par conséquent, vous ne pouvez pas créer un package d’image avec le SDK et le charger sur votre appareil Azure Sphere à des fins de débogage, sauf si l’appareil dispose de la fonctionnalité appDevelopment . La fonctionnalité appDevelopment amène l’appareil à approuver le package d’images 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’images 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 une version test de 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 .

Lorsque vous utilisez azsphere device enable-development, l’appareil reste déverrouillé jusqu’à ce que vous le verrouillez explicitement. Pour relocker l’appareil, utilisez la commande azsphere device enable-cloud-test . Cette commande supprime la fonctionnalité et modifie 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 azsphere device capability pour télécharger ou mettre à jour une fonctionnalité d’appareil, ou pour déterminer les fonctionnalités d’un appareil actuellement.

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 dans 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 à chaque opération au cours d’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.

Quel 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’image 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 de routine, 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-attached n’affiche pas la fonctionnalité fieldServicing .

Dépendance vis-à-vis du magasin de clés approuvé à jour

Lorsqu’un fichier de capacité 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’elle cible si le magasin de clés approuvé de cet appareil est obsolète.

Pour y remédier, 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 ce n’est pas possible, vous pouvez charger une version test d’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 uniquement le fichier « trusted-keystore.bin ». Vous pouvez ensuite utiliser la commande azsphere device sideload deploy --image-package <path-to-trustedkeystore.bin-file> pour charger une version test du 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é.