Qu'est-ce qui peut provoquer un changement de vitesse du port USB?

J'ai un instrument connecté via USB à un ordinateur OpenSuse (11.1 32). En suivant les instructions du fournisseur, j'ai ajouté une règle à udev:

ATTR{idVendor}=="0e0d", ATTR{idProduct}=="0003", MODE="0666" 

De time en time, et je ne sais pas comment diagnostiquer le problème, l'usb passe de l'USB 2.0 à 1.1.

Ayant l'instrument branché sur le port avec l'label "usb1" je peux lire que:

 $ lsusb -t 1-1:1.0: No such file or directory /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M |__ Port 1: Dev 109, If 0, Class=vend., Driver=, 480M 

Dans ce cas, le contrôle de l'instrument commence normalement et nous pouvons l'utiliser pour acquérir et traiter datatables.

Mais soudainement la communication est coupée avec une exception sur la grande vitesse de l'USB n'est pas disponible. En répétant la dernière command, j'ai:

 2-1:1.0: No such file or directory /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 1: Dev 25, If 0, Class=vend., Driver=, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M 

Je ne le comprends pas vraiment, mais c'est comme si ça changeait le bus. Mais l'instrument est toujours dans la place physique avec l'label "usb1".

Le connecter au port avec l'label "usb2" J'ai:

 1-2:1.0: No such file or directory /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M |__ Port 2: Dev 116, If 0, Class=vend., Driver=, 480M 

Là où le contrôle fonctionne. Et si je me connecte à "usb1" il se transforme en:

 1-1:1.0: No such file or directory /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M |__ Port 1: Dev 117, If 0, Class=vend., Driver=, 480M 

L'instrument doit avoir un port USB 2.0 pour fonctionner, et je ne sais pas ce qui peut provoquer ces changements. Il n'y a aucun autre gadget USB connecté et afaik personne ne dérange l'ordinateur pour son fonctionnement normal.

Comment puis-je le diagnostiquer? A comment cela peut être correct sera un plus … Peut-il avoir relation avec le message " No such file or directory " reçu lors de la list?


Répondant au commentaire de SamB , c'est un environnement indussortingel. L'ordinateur a un châssis cPCI qui est un fond de panier PCI 8 ports, avec un Blade qui contient l'ordinateur lui-même. Il a une carte de récepteur même cPCI branché.

Je comprends cela faire la question sur un système inhabituel. Mais il gère un OpenSuse 11.1 sans rien de plus spécial que le driver pour le récepteur d'événement.


J'ai une nouvelle mise à jour. Au lieu de réfléchir à la façon dont je peux modifier la vitesse d'un port particulier, j'ai essayé de find comment déconnecter et connecter les ports usb à partir de la command line, comme vous détwigz et retwigz-le. Entre de nombreux sites j'en ai trouvé un avec un simple exemple simple et il a fait sa part.

 # cd /sys/bus/pci/drivers/ehci_hcd # ll ????:??:??.? lrwxrwxrwx 1 root root 0 Jun 9 11:32 0000:00:1d.7 -> ../../../../devices/pci0000:00/0000:00:1d.7 # sudo echo -n "0000:00:1d.7" > unbind # sudo echo -n "0000:00:1d.7" > bind 

Avec une adaptation mineure du script, je peux récupérer la vitesse du port USB et relancer le server de périphériques Tango qui contrôle l'instrument et l'acquisition des données. Le problème est maintenant que j'ai besoin de droits root pour le faire, mais cela aide parce que ces équipements n'ont pas un access physique très pratique.