Hard Reset USB no Ubuntu 10.04

5

Eu tenho um dispositivo USB (um modem) que é realmente meticuloso. Às vezes funciona bem, mas outras vezes se recusa a se conectar. A única solução que encontrei para consertá-lo, uma vez que fica em mau estado, é desconectar fisicamente o dispositivo e conectá-lo novamente. No entanto, nem sempre tenho acesso físico à máquina em que ele está conectado. Estou procurando uma maneira de fazer isso através da linha de comando.

Esta postagem sugere a exibição:

$ sudo modprobe -w -r usb_storage; sudo modprobe usb_storage

No entanto, recebo uma saída de "opção desconhecida -w". Este comando ligeiramente modificado:

$ sudo modprobe -r usb_storage

Falha com a mensagem FATAL: O módulo usb_storage está em uso. Se eu tentar matar -9 os processos marcados [usb-storage] antes de rodar eles se recusam a morrer (eu acho que eles estão profundamente ligados ao kernel).

Alguém sabe de uma maneira de fazer isso?

OBSERVAÇÃO: Eu publiquei esse problema em serverfault como eu não sabia o que era mais apropriado. Vou deletar e / ou vincular o que for respondido primeiro.

    
por Cory 16.08.2010 / 11:39

5 respostas

3

Eu tenho o Ubuntu 14.04.4. Eu não tenho idéia se isso funciona em 10.04. Eu testei no Cyborg Rumble Pad (e na unidade flash USB genérica).

Logo após conectar o dispositivo:

dmesg | grep usb | tail -n 20

Eu recebo (talvez entre outras coisas):

[ 2875.790610] usb 2-1.2: new full-speed USB device number 7 using ehci-pci
[ 2875.887485] usb 2-1.2: New USB device found, idVendor=0738, idProduct=cb02
[ 2875.887489] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2875.887490] usb 2-1.2: Product: Cyborg Rumble Pad - PC/Xbox 360
[ 2875.887492] usb 2-1.2: Manufacturer: Saitek
[ 2875.887493] usb 2-1.2: SerialNumber: 0CFE6B97

A parte crucial é 2-1.2 string. Identifica a porta USB. A boa notícia é que ele não deve mudar a menos que eu conecte o dispositivo em outra porta, então eu preciso obter a string apenas uma vez.

Em seguida, vou ao lugar certo:

cd /sys/bus/usb/drivers/usb

e invoque como raiz (por exemplo, sudo bash first):

echo 2-1.2 > unbind ; sleep 3 ; echo 2-1.2 > bind

O resultado é meu Rumble Pad se reinicializando como se estivesse plugado e novamente. Eu testei minha unidade flash USB também. Ele (seu LED) se comporta como se nada tivesse acontecido, ainda meu KDE reage e pergunta se eu quero montar.

Sempre que o dispositivo é ligado. Este método não funcionará se o seu modem reiniciar por causa da falta de energia.

    
por 10.05.2016 / 19:06
1

Você pode tentar redefinir o dispositivo usb usando usbreset . Aqui está um link para a fonte - link

Você acabou de procurar um dispositivo que deseja redefinir ( lsusb ):

# lsusb
Bus 005 Device 004: ID 0951:1642 Kingston Technology DT101 G2

e depois:

# usbreset /dev/bus/usb/005/004
    
por 25.11.2013 / 14:27
0

Por que você está tentando descarregar o módulo usb_storage , quando o seu dispositivo é um modem USB?

execute sudo lshw e encontre a entrada para o seu modem usb. Deve haver uma linha configuration: como essa (seu driver será diferente, obviamente):

configuration: ... driver=iwlagn ...

confirme se o módulo está carregado (substituindo o nome correto do driver):

lsmod | grep iwlagn

então faça:

sudo modprobe -r iwlagn && sleep 2 && sudo modprobe iwlagn

Eu gosto de colocar o sleep lá apenas no caso de o dispositivo levar algum tempo para desligar.

    
por 16.08.2010 / 12:47
0

Esta é uma solução "lá fora", mas pode funcionar.

  • Obtenha um segundo PC antigo, não muito poderoso. Instale o Debian nele. Instale usbip sobre ele.
  • Em seguida, instale usbip no seu servidor.
  • Conecte o modem ao segundo PC. Configure usbip em ambas as máquinas para que o modem, conectado ao segundo PC, possa ser acessado via VHCI do servidor.
  • Configure ssh no segundo PC ou outro meio em que você possa ser remoto e emitir comandos.
  • Quando o dispositivo falhar, efetue login e reinicialize o segundo PC por meio do comando reboot , depois que ele voltar, reconecte usando as instalações que o usbip oferece (nunca usei usbip ). Isso deve redefinir o dispositivo. Você provavelmente poderia escrever isso.
por 29.01.2012 / 23:27
0

maneira mais fácil de desligar dispositivos USB arbitrários da linha de comando (por exemplo, com ciclo de energia real para USB):

  1. compre um hub USB de 4 portas DELOCK 87445 (google para < DELOCK 87445 >)
  2. esse hardware é compatível com hub-ctrl.c (google para < hub-ctrl.c >). Então, portas arbitrárias podem ser ligadas / desligadas. Para mais informações, consulte também: link
por 05.01.2013 / 12:15