Linux

Como reiniciar as portas USB no Linux


Botão Pânico

Olá gafanhotos, quanto tempo.

Sempre que apareço por aqui é porque passei por uma situação inusitada que tive de resolver. Como sempre, venho compartilhar a resolução para que ninguém mais tenha que se matar procurando nas páginas remotas do Google ou no Stack Overflow.

Imaginem que uma gaveta USB de backup parou de reconhecer em um servidor.  Agora e se este servidor ficar em um data center, onde ninguém pode ir lá desconectar e reconectar?

Reiniciamos a máquina?

Mas e se a operação for 24×7?

Seus problemas acabaram!

Garimpando consegui entender a estrutura onde fica armazenada os dados dos dispositivos USB e dar um jeito de reiniciá-los!

Segue o script:


#!/bin/bash
# script criado por @fabiolrodriguez - https://tchubirabiron.wordpress.com/

# Reiniciando as portas USB 2.0
for i in $(ls /sys/bus/pci/drivers/ehci_hcd/ | grep : )
do echo $i >/sys/bus/pci/drivers/ehci_hcd/unbind
echo $i > /sys/bus/pci/drivers/ehci_hcd/bind
done

# Reiniciando as portas USB 3.0
for i in $(ls /sys/bus/pci/drivers/xhci_hcd/ | grep : )
do echo $i > /sys/bus/pci/drivers/xhci_hcd/unbind
echo $i > /sys/bus/pci/drivers/xhci_hcd/bind
done

# Reiniciando as portas para hub USB
for i in $(ls /sys/bus/pci/drivers/ehci-pci | grep : )
do echo $i > /sys/bus/pci/drivers/ehci-pci/unbind
echo $i > /sys/bus/pci/drivers/ehci-pci/bind
done

P.S – Caso o dispositivo não exista, por exemplo no caso do USB 3.0, o script apenas vai dar um erro para este dispositivo.

P.S 2 – Script testado em Fedora e CentOS, porém deve funcionar em outros distribuições ou necessitar de pequenos ajustes.

Até a próxima!

Um comentário sobre “Como reiniciar as portas USB no Linux

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s