Erreur "USBDeviceOpen a échoué" uniquement avec mon compte utilisateur lors de l'utilisation du contrôleur USB PowerMate. OK avec un nouveau compte

2

J'ai un contrôleur PowerMate USB de Griffin: cela fonctionne, mais avec mon compte d'utilisateur normal, je ne peux pas contrôler les paramètres d'éclairage . Avec un nouveau compte, tout fonctionne comme prévu. Comment puis-je trouver quelle cause le problème?

Je peux interagir avec elle, la tourner, la presser et elle réagit comme prévu.
Mais je ne peux pas contrôler les réglages de l'éclairage: l'éclairage est toujours allumé, même si je le règle en mode pulsé. Il ne clignote pas quand il le devrait.

Chaque fois que je fais une action qui devrait changer l'état de la lumière (attribuer le réglage par défaut à l'unité PowerMate ou changer l'état de la lumière par défaut dans les paramètres), l'erreur suivante apparaît dans la console:

19/03/11 17:39:42 PowerMate [441] PowerMate Emplacement de l'appareil: 26410000 Service: 0000b69b USBDeviceOpen a échoué: e00002c5

Parfois, je reçois plusieurs entrées de la même erreur (jusqu'à 14 fois). À l'exception de cette erreur et de l'erreur suivante au lancement de l'application, rien n'est utile.

Le chemin (null) attribué à - [NSWorkspace iconForFile:] n'est pas un chemin complet.


J'utilise Lion 10.7.1 (le problème était similaire sur Snow Leopard).

Voici ce que j'ai fait jusqu'à présent pour résoudre les problèmes suivants:

  • Assurez-vous que l'application PowerMate.app n'est pas en cours d'exécution

  • Débranchez le périphérique USB PowerMate et tous les autres périphériques USB (à l'exception de mon clavier).

  • Supprimez tout ce qui a été créé par l'application PowerMate.app avec:

.

rm ~/Library/Preferences/com.griffintechnology.PowerMate.plist;
rm -rf ~/Library/Caches/com.griffintechnology.PowerMate;
rm -rf ~/Library/Application\ Support/PowerMate;
  • Réparer l'autorisation avec Disk Utility.app

  • Redémarrer.

  • Appliquer la dernière mise à jour du combo (MacOSXUpdCombo10.6.6.dmg)

  • Redémarrage

  • Lancez la dernière version de l'application PowerMate.app (version 3.0 - 3012).

  • Branchez ensuite le périphérique USB PowerMate.

Avez-vous autre chose à suggérer pour trouver la différence entre mon compte et un nouveau?

Différences connues entre les comptes:

Similarités entre les comptes:

Les deux comptes sont admin de la machine.
Ils sont membres du même groupe.

Sortie de la commande id: mon compte normal (celui avec le problème):
uid=501(mylogin) gid=20(staff) groups=20(staff),401(com.apple.access_screensharing),102(com.apple.access_ssh),204(_developer),100(_lpoperator),98(_lpadmin),81(_appserveradm),80(admin),79(_appserverusr),61(localaccounts),12(everyone),402(com.apple.sharepoint.group.1)

le nouveau compte test (celui où cela fonctionne):
uid=502(test2) gid=20(staff) groups=20(staff),401(com.apple.access_screensharing),204(_developer),100(_lpoperator),98(_lpadmin),81(_appserveradm),80(admin),79(_appserverusr),61(localaccounts),12(everyone),402(com.apple.sharepoint.group.1)

Je suis en contact avec le support Griffin. Ils sont très gentils, mais nous n’avons pas encore trouvé la raison du problème.


Mise à jour: Apparemment, le code d'erreur e00002c5signifie "accès exclusif et périphérique déjà ouvert".
Une idée de comment déterminer quel processus a accès à un périphérique USB?

Guillaume
la source
Vérifiez votre appartenance actuelle et votre nouvelle appartenance à un groupe d'utilisateurs à l'aide de la idcommande.
mspasov
2
Êtes-vous un administrateur de votre machine? Le nouvel utilisateur est-il un administrateur sur la machine? Les deux utilisateurs sont-ils membres du même groupe d'utilisateurs? Serait-il possible que le truc Griffin utilise une autre liste que celle que vous avez supprimée? Avez-vous essayé un nettoyeur d'application (comme AppZapper ou des alternatives gratuites?)
Martin Marconcini
@mspasov et @ Martín Marconcini: merci pour vos idées. J'ai mis à jour la question avec les réponses à vos questions.
Guillaume

Réponses:

1

Cela ressemble à quelque chose qui est cassé avec le nœud de périphérique pour le périphérique USB. Vous pouvez comparer les paramètres avec quelque chose comme ceci:

  1. déterminer quel est le nœud de périphérique. La dernière étape affichera le nom du périphérique après un> (et quelques autres indésirables que vous pouvez ignorer.) Vous aurez besoin de ce nom de périphérique à l'étape 2. Il serait préférable de faire ce test sur l'utilisateur temporaire qui fonctionne redémarrage frais.
    1. ls -1 /dev/ > /tmp/before ( note, c'est "tiret un" )
    2. brancher l'appareil
    3. ls -1 /dev/ > /tmp/after
    4. diff /tmp/before /tmp/after
  2. comparer les autorisations de périphérique entre les deux.
    1. connectez-vous comme vous-même
    2. ls -el /dev/devicename > /tmp/broken ( note, c'est "dash e ell" cette fois )
    3. se connecter en tant qu'utilisateur temporaire
    4. ls -el /dev/devicename > /tmp/working

Ce dernier bit créera deux fichiers qui ressemblent à ceci:

crw-rw-rw- 1 root wheel 11, 1 Mar 26 16:20 cu.Bluetooth-PDA-Sync

Le premier bit ( crw-rw-rw-) est une représentation textuelle des bits de mode ... il est possible que la différence soit la cause.

Le prochain bit qui pourrait poser problème est user ( root) et group ( wheel), l'un ou l'autre pouvant être à l'origine du problème.

Je suppose qu'il est créé dynamiquement (incorrectement) lorsque le périphérique est inséré. Une autre possibilité est que le nœud de périphérique est persistant mais incorrect. Si ces deux fichiers correspondent, montrez-nous ce qu'ils sont et nous pourrons probablement déterminer le type de périphérique à utiliser.

cabbey
la source
Salut Cabbey. Merci pour l'aide. Sur la première étape, j'obtiens des résultats exactement similaires (environ 300 entrées) avec le compte de travail et le compte cassé. Le diff ne donne rien. Un autre moyen d'obtenir le nom de l'appareil?
Guillaume
Impossible de comprendre le nom du périphérique à partir de la première étape. Mais j'ai essayé ls -el /dev/* > /tmp/_all_working_accountsur le nouveau compte et ls -el /dev/* > /tmp/_all_broken_accountsur mon compte. La seule différence significative dans le diff est la suivante: crw - w ---- 1 test2 tty 16, 0 30 juin 12:15 / dev / ttys000 pour le fichier _all_working_account et crw - w ---- 1 niveau 16, 0 30 mai 12:17 / dev / ttys000 crw - w ---- 1 niveau 16, le 30 mai 12:18 / dev / ttys001 pour le fichier _all_broken_account.
Guillaume
1

J'ai trouvé le coupable: MenuMeters accédait au réglage de l'éclairage du périphérique PowerMate.

Je ne savais pas que MenuMeters disposait d'un paramètre pour afficher l'utilisation du processeur via le voyant PowerMate. C'était là depuis 2003, mais je m'en foutais de ne pas posséder de PowerMate auparavant.

La dernière version corrige ce bogue. Merci beaucoup à Alex Harper pour son excellent logiciel et son support continu. http://www.ragingmenace.com/software/menumeters/history.html

Guillaume
la source