Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
comment faire pour qu'un device USB ne soit plus activé par un autre programme
Envoyé par: Alain Hervo

Bonjour.

OS linux
fedora core 6

Je développe une appli JAVA pilotant un device (USB freeHands headPhone ) raccordé en USB.
Lors de la connexion, l'OS détecte (Hotplug) ce device et réoriente vers lui le son audio.
Ceci me pose un problème car le device étant déjà activé, il ne semble pas possible à mon application de le faire

Lors du débug de l'appli Java :
La méthode interface.isActive() retourne true
La méthode interface.isClaimed() retourne true

Si à la suite j'appelle la méthode interface.release, une exception a lieu avec l'erreur
"UsbInterface 0x00 setting 0x00 is not claimed" ?!?


Comment faire pour que ce device ne soit plus activé par l'OS ?

Esct ce le même problème se rapproche de celui-ci (vu dans un forum) :
Make sure no other program or kernel module (e.g. dc2xx or stv680) is using the device and
you have read/write access to the device.
*** Error (-53: 'Could not claim the USB device') ***
Merci pour votre aide.

Poste le Thursday 21 June 2007 12:13:46
Répondre     Citer    
Re: comment faire pour qu'un device USB ne soit plus activé par un autre programme
Envoyé par: diancech

Si ton casque usb utilise un module particulier, il te suffit de préciser le nom du module dans "/etc/hotplug.d/blacklist" (le path du fichier est à vérifier je ne suis pas sûr que ce soit exactement celui-là). Comme cela le module ne sera pas chargé et donc la device pas activée.



--------------------------------------------------------------------------------------------------------------------------------------------------
Exige beaucoup de toi-même et attends peu des autres. Ainsi beaucoup d'ennuis te seront épargnés. Confucius

Poste le Thursday 21 June 2007 13:35:50
Répondre     Citer    
Re: comment faire pour qu'un device USB ne soit plus activé par un autre programme
Envoyé par: Alain HERVO

Merci pour cette rapide réponse !
Bon j'ai mis du temps à trouver le nom du module.

Avant et après enfichage, la commande lsmod a permis de connaître le nom du module :snd_usb_audio
J'ai donc précisé ce nom dans le fichier /etc/modprobe.d/blacklist.
Et effectivement, le problème du 'claim' (lock exclusif sur l'interface') est résolu.

Encore merci.


Citation
diancech
Si ton casque usb utilise un module particulier,
il te suffit de préciser le nom du module dans
"/etc/hotplug.d/blacklist" (le path du fichier est
à vérifier je ne suis pas sûr que ce soit
exactement celui-là). Comme cela le module ne sera
pas chargé et donc la device pas activée.



--------------------------------------------------
--------------------------------------------------
----------------------------------------------
Si le problème a une solution il ne sert à rien de
s'inquiéter, mais s'il n'a pas de solution
s'inquièter ne change rien!

Poste le Thursday 21 June 2007 15:47:49
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
comment faire pour qu'un device USB ne soit plus activé par un autre programme
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons