🛠 Configurer les entrées-sorties (GPIO, capteurs) sur PlugMate
Objectifs
Ce tutoriel avancé explique comment interagir avec les interfaces d'entrée-sortie (GPIO, UART, I2C) sur la carte PlugMate. Bien que le device soit dépourvu de connecteurs physiques externes, PlugOS expose ces bus via une couche de virtualisation sécurisée. L'objectif est de comprendre comment les applications internes communiquent avec des capteurs théoriques ou des modules de développement connectés via un hub USB-C compatible, en respectant l'isolation stricte du système.
Matériel nécessaire
- Carte PlugMate (firmware à jour)
- Hôte compatible (Android, Windows, Linux, macOS Apple Silicon)
- Client hôte officiel installé
- Câble USB-C certifié
- Module d'extension GPIO compatible avec le protocole de virtualisation TrustKernel (ou émulateur matériel pour tests)
- Terminal SSH ou ADB activé sur l'hôte
Étapes
Connectez le PlugMate à l'hôte. Lancez le client PlugMate. Une fois le système démarré (approx. 24s), ouvrez un terminal sur l'hôte et connectez-vous via ADB ou SSH si activé dans les paramètres développeur. ``bash adb shell ``
PlugOS utilise des drivers spécifiques pour exposer les bus. Vérifiez leur présence dans le système de fichiers virtuel. ``bash ls -l /dev/virtual_gpio* ls -l /dev/virtual_i2c* `` Si les nœuds n'existent pas, activez le mode développeur dans les paramètres de sécurité du client hôte.
Utilisez l'utilitaire gpioctl fourni par TrustKernel pour exporter une broche logique. Notez que les numéros de broches correspondent à la table de mappage interne du SoC MediaTek Helio G80, non à des broches physiques externes. ``bash gpioctl export 18 gpioctl set 18 1 ``
Pour lire un capteur connecté via un adaptateur compatible, utilisez i2cget. L'adresse est celle du périphérique virtualisé. ``bash i2cget -f -y 2 0x48 0x00 `` Cette commande lit le registre 0x00 du périphérique à l'adresse 0x48 sur le bus 2. Le canal USB-C chiffré transporte ces requêtes vers l'hôte si le capteur est physiquement branché sur l'hôte et relayé par le client.
Assurez-vous que le pare-feu système autorise les accès. Les données des capteurs restent isolées de l'hôte. Toute tentative d'accès direct aux registres matériels non virtualisés est bloquée par le hyperviseur.
- Connexion et accès root
- Vérification des pilotes virtualisés
- Configuration du bus GPIO
- Lecture d'un capteur via I2C
- Sécurité et isolation
Vérification
Exécutez gpioctl get 18 pour confirmer l'état de la broche. Pour l'I2C, vérifiez que la valeur lue correspond aux données simulées ou réelles du capteur. Les logs système (logcat | grep VirtualIO) doivent afficher les transactions réussies sans erreur de permission.
Pour aller plus loin
Explorez l'API NDK de PlugOS pour développer des applications natives interactives avec ces bus. Notez que la sécurité du duress PIN efface les clés de chiffrement des données échangées, rendant toute interception inutile. Pour des projets IoT complexes, combinez cette approche avec la virtualisation GPS et caméra pour créer des contextes d'entrée/sortie riches et sécurisés.
Autres tutoriels pour cette carte
- Découvrir les entrées-sorties sur PlugMate
- Cas d'usage : Créer un stockage chiffré portable avec PlugMate
- Mise en route du PlugMate : Premier branchement et configuration
- Configurer les entrées-sorties GPIO sur PlugMate
- Utiliser le PlugMate comme terminal réseau isolé
- Mise en route sécurisée du PlugMate : premier branchement