O que são as redefinições do dispositivo USB?

13

Eu tenho este novo software RAID-1 construído com duas unidades USB externas WD Elements, e posso ver que o Linux repete a seguinte mensagem:

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

Então, o que isso diz? Isso é normal? Isso é um problema que eu deveria tentar consertar?

Atualizar
Na verdade, essas mensagens não são para as unidades que eu pensava que eram. Eu tenho um monte de outras unidades USB conectadas a este computador através de um hub USB também. De qualquer forma, a minha pergunta é basicamente o que essa mensagem significa em inglês claro?

    
por ILIV 03.11.2013 / 09:42

2 respostas

16

Deixe-me tentar.

Literalmente, a mensagem diz que a pilha USB do Linux emitiu "USB_RESET" para o seu dispositivo em particular (dispositivos # 19 e # 20, quaisquer que sejam eles). O erro parece ocorrer uma vez por 10 a 30 segundos. Após a reinicialização, o registro deve ter novas mensagens de enumeração, uma vez que a redefinição do USB forçará o dispositivo conectado ao "estado padrão". Parece que o detalhamento do seu log é muito reduzido.

A reinicialização de um dispositivo USB no meio da operação é uma situação bastante drástica. O controlador recorre a essa redefinição de "porta" se encontrar "erro de transação". Erro de transação ocorre quando o link não completa todas as fases necessárias da transação USB ou tem um erro de CRC. No USB normal, o controlador EHCI repetirá automaticamente a transação com falha (máximo de 3 vezes típico) e, em seguida, definirá uma interrupção XACT_ERROR. Estatisticamente, pela teoria do erro, se um link não responder corretamente a três tentativas consecutivas, há algo errado com o segmento USB específico, principalmente eletricamente. Portanto, o erro de transação é considerado fatal e o software tenta recuperar o link. Se a árvore quatro tentativas de recuperar o link falhar, o host considerará essa porta como inativa e será encerrada.

No Linux, no entanto, alguém decidiu que 3 tentativas teóricas não são suficientes, e o software Linux realiza 32 (trinta e duas) tentativas adicionais, totalizando 96 (!!!) tentativas. Se o link de hardware for eletricamente marginal, as 96 tentativas podem ter sucesso em 99,99% do tempo. Gurus do software Linux afirmam que isso ajuda a melhorar a operabilidade de dispositivos / cabos questionáveis. Em essência, essa técnica esconde um problema sério com essa conexão USB específica, o que não ajuda os usuários a longo prazo.

O problema pode estar na alimentação de voltagem marginal (VBUS) para os drives, ou falhas VBUS, ou degradação de sinal nos fios de sinal. Eu tentaria primeiro cabos certificados extremamente curtos de alta qualidade e verificar se as estatísticas de erro mudam.

    
por 02.08.2016 / 05:28
5

Este erro é descrito no artigo Linux: Reinicie o dispositivo USB de alta velocidade usando o erro ehci_hcd e a solução :

This error indicates that USB 2.0 may not function on your system, or may function only at USB 1.1 speeds. To fix this problem:

  1. Replace hardware: In most cases you need to replace the motherboard.
  2. Remove ehci_hcd driver
  3. Disable ehci_hcd drive USB 2.0 interface and use it as USB 1.1. In short disable the ehci_hcd.

Se você não deseja substituir a placa-mãe, para remover o driver ehci_hcd edite o arquivo /etc/modprobe.d/blacklist.conf e adicione a linha:

blacklist ehci_hcd

Finalmente, use o script mkinitrd para construir uma estrutura de diretório que pode servir como um sistema de arquivos raiz initrd sem ehci_hcd:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

Reinicie como teste.

Um artigo com instruções semelhantes é: Por que o erro "kernel: usb 1-2.2: redefinir dispositivo USB de alta velocidade usando ehci_hcd e endereço 6" escrito para o / var / log / arquivo de mensagens?

    
por 01.08.2016 / 11:35

Tags