Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : IoT Edge 1.5
Important
IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1.4 LTS est en fin de vie depuis le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Si vous rencontrez des problèmes lors de l’exécution d’Azure IoT Edge pour Linux sur Windows (EFLOW) dans votre environnement, consultez cet article qui vous guidera pour la résolution des problèmes et les diagnostics.
Vous pouvez également consulter Problèmes GitHub liés à IoT Edge pour Linux sur Windows pour un problème signalé similaire.
Isoler le problème
Votre première étape lors de la résolution des problèmes d’IoT Edge pour Linux sur Windows doit être de comprendre quel composant est à l’origine du problème. Il existe trois composants principaux dans une solution EFLOW :
- Composants Windows : module PowerShell, WSSDAgent et EFLOWProxy
- Machine virtuelle CBL Mariner Linux
- Azure IoT Edge
Pour plus d’informations sur l’architecture EFLOW, consultez Qu’est-ce qu’Azure IoT Edge pour Linux sur Windows.
Si votre problème se produit lors de l’installation ou du déploiement de la machine virtuelle EFLOW, assurez-vous que toutes les conditions préalables sont remplies et vérifiez vos configurations réseau et de machine virtuelle. Si votre installation et votre déploiement ont réussi et que vous rencontrez des problèmes avec la gestion post-machine virtuelle, les problèmes sont généralement liés au cycle de vie des machines virtuelles, à la mise en réseau ou à Azure IoT Edge. Enfin, si le problème est lié aux modules ou aux fonctionnalités d’IoT Edge, consultez Résoudre les problèmes de votre appareil IoT Edge.
Pour plus d’informations sur les erreurs courantes liées à l’installation et au déploiement, le provisionnement, l’interaction avec la machine virtuelle et la mise en réseau, consultez Problèmes courants et résolutions pour Azure IoT Edge pour Linux sur Windows.
Rassembler des informations de débogage
Lorsque vous devez rassembler les journaux d’un appareil IoT Edge pour Linux sur Windows, le moyen le plus pratique est d’utiliser la cmdlet PowerShell Get-EflowLogs
. Par défaut, cette commande collecte les journaux suivants :
- eflowlogs-summary.txt : contient l’état de toutes les étapes de collecte de journaux.
- Configuration de machine virtuelle EFLOW : inclut les configurations de machine virtuelle, de mise en réseau et de transfert direct, ainsi que des informations supplémentaires.
- Événements EFLOW : des événements Windows liés au cycle de vie de la machine virtuelle et au service EFLOWProxy.
-
Journaux IoT Edge : inclut la sortie du bundle de prise en charge du runtime IoT Edge
iotedge check
. - Journaux WSSDAgent : inclut tous les journaux liés au service WSSDAgent.
Une fois que la cmdlet a collecté tous les journaux requis, les fichiers sont compressés dans un seul fichier nommé eflowlogs.zip sous le chemin d’installation d’EFLOW (par exemple, C:\Program Files\Azure IoT Edge).
Vérifier votre version d’IoT Edge
Si vous exécutez une version antérieure d’IoT Edge pour Linux sur Windows, une mise à niveau peut résoudre votre problème. Pour vérifier la version d’EFLOW installée sur votre appareil, procédez comme suit :
- Ouvrez Paramètres sur Windows.
- Sélectionnez Ajout/Suppression de programmes.
- Selon le train de mise en production EFLOW utilisé (mise en production continue ou LTS), choisissez Azure IoT Edge LTS ou Azure IoT Edge.
- Vérifiez la version sous le nom de l’application EFLOW.
Pour plus d’informations sur les notes de publication de versions spécifiques, consultez les Notes de publication d’Azure IoT Edge pour Linux sur Windows.
Pour obtenir des instructions sur la mise à jour de votre appareil, consultez Mise à jour d’IoT Edge pour Linux sur Windows.
Vérifier l’état de la machine virtuelle EFLOW
Vous pouvez vérifier l’état et les informations de la machine virtuelle EFLOW à l’aide de la cmdlet PowerShell Get-EflowVm
. Si la machine virtuelle EFLOW est en cours d’exécution, la sortie VmPowerState doit être En cours d’exécution. En revanche, si la machine virtuelle est arrêtée, la sortie VmPowerState est Arrêtée. Pour démarrer ou arrêter la machine virtuelle EFLOW, utilisez les cmdlets Start-EflowVm
et Stop-EflowVm
.
Si la machine virtuelle est En cours d’exécution, mais que vous ne pouvez pas interagir avec ou y accéder, il existe probablement un problème réseau entre la machine virtuelle et le système d’exploitation hôte Windows. Vérifiez également que la machine virtuelle EFLOW dispose de suffisamment de mémoire et de stockage pour poursuivre une exécution normale. Exécutez la cmdlet Get-EflowVm
pour afficher les informations de mémoire (TotalMemMb, UsedMemMb, AvailableMemMb) et de stockage (TotalStorageMb, UsedStorageMb, AvailableStorageMb).
Enfin, si la machine virtuelle est Arrêtée et que vous ne pouvez pas la démarrer à l’aide de la cmdlet Start-EflowVm
, il peut y avoir plusieurs raisons pour lesquelles la machine virtuelle ne peut pas être démarrée.
Tout d’abord, le problème peut être lié au service de gestion du cycle de vie des machines virtuelles (WSSDAgent) qui n’est pas en cours d’exécution. Vérifiez que le service WSSDAgent est en cours d’exécution en procédant comme suit :
- Démarrez une session PowerShell avec élévation de privilèges à l’aide de la commande Exécuter en tant qu’administrateur.
- Vérifier l’état du service
Get-Service -Name WSSDAgent
- Si le service est Arrêté, démarrez le service à l’aide de la commande suivante :
Start-Service -Name WSSDAgent
- Si le service est En cours d’exécution, le problème est probablement lié à une configuration incorrecte du réseau ou à un manque de ressources pour créer la machine virtuelle.
Deuxièmement, le problème pourrait être lié à un manque de ressources. Vous pouvez définir EflowVmAssignedMemory (-memoryInMb
) et EflowVmAssignedCPUcres (-cpuCount
) affectés à la machine virtuelle pendant le déploiement à l’aide de la cmdlet PowerShell Deploy-Eflow
ou après le déploiement à l’aide de la cmdlet Set-EflowVm
. Si ces ressources ne sont pas disponibles lors de la tentative de démarrage de la machine virtuelle, la machine virtuelle ne parvient pas à démarrer. Pour vérifier les ressources affectées et disponibles, procédez comme suit :
- Démarrez une session PowerShell avec élévation de privilèges à l’aide de la commande Exécuter en tant qu’administrateur.
- Vérifiez la mémoire disponible. Vérifiez que FreePhysicalMemory est supérieur à eflowVmAssignedMemory.
Get-CIMInstance Win32_OperatingSystem | Select FreePhysicalMemory
- Vérifiez les cœurs de processeur disponibles. Vérifiez que NumberOfLogicalProcessors est supérieur à EflowVmAssignedCPUcres.
wmic cpu get NumberOfLogicalProcessors
Enfin, le problème peut être lié à la mise en réseau. Pour plus d’informations sur les problèmes de mise en réseau de la machine virtuelle EFLOW, voir Comment dépanner la mise en réseau d’Azure IoT Edge pour Linux sur Windows.
Vérifier l’état du runtime démon IoT Edge
Le runtime IoT Edge est chargé de recevoir le code à exécuter en périphérie et de communiquer les résultats. Si le runtime et les modules IoT Edge ne sont pas en cours d’exécution, aucun code n’est exécuté à la périphérie. Vous pouvez vérifier l’état du runtime et du module en procédant comme suit :
- Démarrez une session PowerShell avec élévation de privilèges à l’aide de la commande Exécuter en tant qu’administrateur.
- Vérifiez l’état du runtime IoT Edge. En particulier, vérifiez si le service est Chargé et Actif.
(Get-EflowVm).EdgeRuntimeStatus.SystemCtlStatus | Format-List
- Vérifiez l’état du module IoT Edge. Vérifiez que tous les modules sont en cours d’exécution.
(Get-EflowVm).EdgeRuntimeStatus.ModuleList | Format-List
Pour plus d’informations sur la résolution des problèmes du runtime IoT Edge, consultez Résoudre les problèmes de votre appareil IoT Edge.
Vérifier le relais TPM
Si vous utilisez le provisionnement TPM en suivant le guide Créer et provisionner un appareil IoT Edge pour Linux sur Windows à grande échelle à l’aide d’un TPM, vous devez activer le transfert direct TPM. Pour accéder au module TPM physique connecté au système d’exploitation hôte Windows, toutes les commandes TPM de machine virtuelle EFLOW sont transférées au système d’exploitation hôte à l’aide d’un service Windows appelé EFLOWProxy. Si vous rencontrez des problèmes liés à l’approvisionnement DpsTpm ou à l’accès aux index TPM à partir de la machine virtuelle EFLOW, vérifiez l’état du service en procédant comme suit :
Démarrez une session PowerShell avec élévation de privilèges à l’aide de la commande Exécuter en tant qu’administrateur.
Vérifiez l’état du service EFLOWProxy.
Get-Service -Name EFLOWProxy
Si le service est Arrêté, démarrez le service à l’aide de la commande suivante :
Start-Service -Name EFLOWProxy
Si le service ne démarre pas, vérifiez les journaux EFLOWProxy. Accédez à Applications>Visionneuse d’événements>Journaux d’applications et de services>Microsoft>EFLOW>EFLOW EFLOWProxy et vérifiez les journaux.
Si le service est En cours d’exécution, vérifiez les services proxy de la machine virtuelle EFLOW. Commencez par vous connecter à la machine virtuelle EFLOW.
Connect-EflowVm
À partir de l’intérieur de la machine virtuelle EFLOW, vérifiez que les services TPM sont opérationnels.
sudo systemctl status tpm*
Vous devriez voir l’état et les journaux d’activité de quatre services différents. Les quatre services doivent être opérationnels.
- tpm2-netns.service - Espace de noms réseau TPM2
- tpm2-socat@2322.service - Service de bac à sable TPM2 sur le port 2322
- tpm2-socat@2321.service - Service de bac à sable TPM2 sur le port 2321
- tpm2-abrmd.service - Répartiteur d’accès TPM2 et démon de gestion des ressources
Si l’un de ces services est Arrêté ou A échoué, redémarrez tous les services à l’aide de la commande suivante :
sudo systemctl restart tpm*
Vérifiez la communication entre la machine virtuelle EFLOW et le service EFLOWProxy. Si la communication fonctionne, vous devriez voir RegistrationId et la clé d’approbation TPM comme sortie de la commande suivante :
sudo /usr/bin/tpm_device_provision
Vérifier l’affectation du GPU
Si vous utilisez le transfert direct de GPU, veillez à suivre toutes les conditions préalables et configurations décrites dans Accélération GPU pour Azure IoT Edge pour Linux sur Windows. Si vous rencontrez des problèmes lors de l’utilisation de la fonctionnalité de transfert direct de GPU, vérifiez les étapes suivantes :
Commencez par vérifier que votre appareil est disponible sur le système d’exploitation hôte Windows.
- Ouvrez Applications>Gestionnaire de périphériques.
- Accédez aux Adaptateurs d’affichage et vérifiez que votre GPU figure dans la liste.
- Cliquez avec le bouton droit sur le nom du GPU, puis sélectionnez Propriétés.
- Vérifiez que le pilote est correctement installé.
Deuxièmement, si le GPU est correctement affecté, mais que vous n’êtes toujours pas en mesure de l’utiliser à l’intérieur de la machine virtuelle EFLOW, procédez comme suit :
Démarrez une session PowerShell avec élévation de privilèges à l’aide de la commande Exécuter en tant qu’administrateur.
Se connecter à la machine virtuelle EFLOW
Connect-EflowVm
Si vous utilisez un GPU NVIDIA, vérifiez l’état de transfert direct à l’aide de la commande suivante :
sudo nvidia-smi
Vous devriez être en mesure de voir les informations de carte GPU, la version du pilote, la version de CUDA, et les informations système et de processus GPU.
Si vous utilisez un transfert direct Intel iGPU, vérifiez l’état du transfert direct à l’aide de la commande suivante :
sudo ls -al /dev/dxg
La sortie doit ressembler à ce qui suit :
crw-rw-rw- 1 root 10, 60 Sep 8 06:20 /dev/dxg
Pour plus d’informations sur les performances et le débogage d’Intel iGPU, consultez Témoignez de la puissance d’Intel® iGPU avec la boîte à outils Azure IoT Edge pour Linux sur Windows (EFLOW) et OpenVINO™.
Vérifier les problèmes dans les journaux WSSDAgent
La première étape avant de vérifier les journaux WSSDAgent consiste à vérifier si la machine virtuelle a été créée et s’exécute.
Démarrez une session PowerShell avec élévation de privilèges à l’aide de la commande Exécuter en tant qu’administrateur.
Sur les références SKU des clients Windows, vérifiez les machines virtuelles HCS.
hcsdiag list
Si la machine virtuelle EFLOW est en cours d’exécution, vous devriez voir une ligne qui contient un GUID suivi de wssdagent. Par exemple :
2bd841e4-126a-11ed-9a91-f01dbca16d1e VM, Running, 2BD841E4-126A-11ED-9A91-F01DBCA16D1E, wssdagent 88d7aa8c-0d1f-4786-b4cb-62eff1decd92 VM, SavedAsTemplate, 88D7AA8C-0D1F-4786-B4CB-62EFF1DECD92, CmService
Sur les références SKU des serveurs Windows, vérifiez les machines virtuelles VMMS.
hcsdiag list
Si la machine virtuelle EFLOW est en cours d’exécution, vous devriez voir une ligne qui contient <WindowsHostname-EFLOW> comme nom. Par exemple :
Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version ---- ----- ----------- ----------------- ------ ------ ------- NUC-EFLOW Running 0 1024 00:01:34.1280000 Operating normally 9.0
Si, pour une raison quelconque, la machine virtuelle n’est pas répertoriée, cela signifie que la machine virtuelle n’est pas en cours d’exécution ou que WSSDAgent n’a pas pu la créer. Suivez les étapes suivantes pour vérifier les journaux WSSDAgent :
- Ouvrez l’Explorateur de fichiers.
- Accédez à
C:\ProgramData\wssdagent\log
- Ouvrez le fichier wssdagent.log.
- Recherchez les mots Error ou Fail.
Réinstaller EFLOW
Parfois, un système peut nécessiter une modification spéciale importante pour fonctionner avec les contraintes de réseau ou de système d’exploitation existantes. Par exemple, un système peut nécessiter des configurations réseau complexes (pare-feu, stratégies Windows, paramètres de proxy) et des configurations de système d’exploitation Windows personnalisées. Si vous avez essayé toutes les étapes de résolution des problèmes précédentes et que vous rencontrez toujours des problèmes avec EFLOW, il est possible qu’il y ait une configuration incorrecte qui provoque le problème. Dans ce cas, l’option finale consiste à désinstaller et réinstaller EFLOW.
Étapes suivantes
Vous pensez avoir trouvé un bogue dans IoT Edge pour Linux sur Windows ? Soumettez un problème afin que nous puissions poursuivre les améliorations.
Si vous avez d'autres questions, créez une Support request pour obtenir de l'aide.