J'ai une application qui implémente certaines automatisations lorsqu'une clé USB est branchée.
Pendant le développement, je dois le tester dans un environnement spécifique (dérivé de Debian Squeeze).
L'application s'abonne aux événements HAL via DBUS.
Le problème est: mon bureau est au troisième étage tandis que mes machines d'essai sont au sous-sol.
J'aimerais vraiment avoir un moyen de simuler une prise USB.
Peut-être est-il possible de simuler un appel dbus?
Mon poste de travail est sur Ubuntu 12.04.
J'ai trouvé une autre solution qui me convenait. En fait, j'ai réalisé que je n'avais pas vraiment besoin de simuler une clé USB, mais plutôt n'importe quel type de périphérique de stockage (mon application regarde HAL ou UDisks pour les événements "DeviceAdded").
J'ai donc fait ce qui suit:
créer une image de système de fichiers, par exemple avec la commande "virt-make-fs"Sudo virt-make-fs --type=ntfs -- fs.tar.gz fs-test.img
téléchargez le fichier img sur la machine de test
Sudo losetup /dev/loop0 fs-test.img
Et c'est tout, UDisks vient de déclencher l'événement DBus "DeviceAdded"!
(cependant, HAL ne déclenche rien dans ce cas, c'est donc une bonne occasion de le supprimer car il est obsolète)
Si vous le souhaitez, vous pouvez monter manuellement l'image avec quelque chose comme Sudo mount /dev/loop0 /mnt/fs
.
Si vous devez utiliser pmount, n'oubliez pas d'ajouter /dev/loop0
à /etc/pmount.allow
.
Pour désinstaller le périphérique de boucle, utilisez simplement Sudo losetup -d /dev/loop0
.