O que pode causar uma mudança de velocidade da porta usb?

4

Eu tenho um instrumento conectado via usb a um computador OpenSuse (11.1 32). Seguindo as instruções do fornecedor, adicionei uma regra ao udev:

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

De tempos em tempos, e eu não sei como diagnosticar o problema, o usb muda de usb 2.0 para 1.1.

Tendo o instrumento conectado à porta com o rótulo "usb1", posso ler isso:

$ 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

Neste caso, o controle do instrumento inicia normalmente e podemos usá-lo para adquirir e processar dados.

Mas de repente a comunicação é cortada com uma exceção sobre a alta velocidade do usb não está disponível. Repetindo o último comando, tenho:

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

Eu realmente não entendo isso, mas é como se de alguma forma tivesse mudado o ônibus. Mas o instrumento ainda está no lugar físico com o rótulo "usb1".

Conectando-o à porta com o rótulo "usb2", tenho:

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

Onde o controle funciona de volta. E se eu me conectar de volta ao "usb1", ele mudará para:

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

O instrumento precisa ter uma porta usb 2.0 para funcionar e não sei o que pode causar essas alterações. Não há outro dispositivo usb conectado e afaik ninguém está perturbando o computador para o seu funcionamento normal.

Como posso diagnosticar? A como isso pode ser consertar será um plus ... Pode ter relação com o " Nenhum tal arquivo ou diretório " mensagem recebida quando lista?

Respondendo SamB comentário, é um ambiente industrial. O computador tem um chassi cPCI que é um backplane PCI de 8 portas, com um < um Blade que contém o próprio computador. Tem um cPCI mesmo cartão receptor conectado.

Eu entendo isso fazer a pergunta sobre um sistema incomum. Mas ele roda um OpenSuse 11.1 sem nada mais especial que o driver para o receptor de eventos.

Eu tenho uma atualização mais recente. Em vez de pensar em como posso modificar a velocidade de uma porta específica, tentei descobrir como posso desconectar e conectar as portas USB da linha de comando, semelhante ao que você faz desconectando e conectando novamente. Entre muitos sites, encontrei um um com um simples exemplo básico e fez a sua parte.

# 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

Com uma pequena adaptação do script, posso recuperar a velocidade da porta USB e relançar o Tango device server que controla o instrumento e faz a aquisição de dados. A questão agora é que eu preciso de direitos de root para fazer isso, mas ajuda porque esses equipamentos não têm um acesso físico muito prático.

    
por srgblnch 18.05.2015 / 16:54

0 respostas

Tags