É possível que um dispositivo de armazenamento USB seja desconectado logicamente: o dispositivo ainda está conectado, mas é invisível do sistema operacional (por exemplo, não está listado em /proc/bus/usb
). Talvez isso possa acontecer com outros tipos de USB ou outros dispositivos removíveis. Isso pode acontecer, por exemplo:
- depois que o Nautilus desmontar um dispositivo de armazenamento USB ;
- depois que o VirtualBox reivindicar um dispositivo de armazenamento USB (o dispositivo desaparece do host do Linux quando é conectado ao convidado e não reaparece automaticamente se for desconectado do convidado).
O que está acontecendo no driver ou no hardware e, o mais importante, (como) o dispositivo pode ser reconectado logicamente (sem conectá-lo e conectá-lo fisicamente)?
Observe que esta pergunta não é sobre montagem. No estado “logicamente desconectado”, o kernel acredita que não há nada no barramento USB (e, portanto, é claro que não há entrada /dev
).
Respostas:
Às vezes, é possível fazer um ciclo de energia na ramificação do barramento USB em que o dispositivo está conectado:
O
1-1
deve ser ajustado à sua configuração. Você pode ver em qual parte da árvore USB seu dispositivo está conectado executandolsusb -t
antes de ejetar.Você pode encontrar informações detalhadas na lista de discussão linux-usb, neste tópico por exemplo.
fonte
dmesg
que o ID do dispositivo esteja correto ("usb 9-4: USB desconecte [...]"), isso não funciona no Arch Linux mais recente. Não há caminho/sys/bus/usb/devices/9-4
depois.suspend
não é mais suportada em versões recentes do kernel ....Redefina o dispositivo ou o hub ao qual está conectado e o dispositivo deve reaparecer. Aqui está um pequeno programa para fazer isso:
http://marc.info/?l=linux-usb-users&m=116827193506484
Funciona na maioria das unidades USB que eu tentei, mas há exceções, como meu Kingston DT 101 II 4GB, que falha nos comandos INQUIRY e READ CAPACITY após a redefinição e permanece inutilizável até o ciclo de energia.
Você pode ligar e desligar o dispositivo sem desconectá-lo se ele receber energia da porta, e o hub USB suporta o controle de energia por porta. Aqui está um pequeno programa para controlar o poder:
http://marc.info/?l=linux-usb-devel&m=113724451205634
Infelizmente, quase nenhum hub USB suporta esse recurso, e é muito difícil encontrar um que o suporte. Os fabricantes não anunciam. Muitos hubs também mentem, por exemplo, se você fizer "lsusb -v", poderá ver "Comutação de energia por porta" anunciada em "wHubCharacteristic", mas, na realidade, não funciona. O chipset pode suportá-lo, mas era mais fácil / barato para o fabricante conectar os pinos de energia da porta diretamente à fonte de alimentação, em vez de passar pelo chipset.
fonte
Eu encontrei esta resposta para funcionar muito bem no meu sistema Gentoo. Lembre-se também de reativar seu dispositivo se ele for uma parte importante do seu sistema (por exemplo, mouse ou teclado).
Para ver o que você está desativando / reativando:
fonte
Agora verifique o Kernel. Por exemplo, se estiver conectado à Porta 2 do Front UIP, seria 1-1.2 e se estiver conectado à Porta 1 do Front UIP, seria 1-1.1.
Para a porta 2: para desconectar o USB:
Para conectar o USB:
fonte
Eu tentei a maioria das sugestões acima, mas elas não funcionaram para mim. Eu descobri como redefinir um dispositivo USB na linha de comando: https://askubuntu.com/a/290519
de onde
$i
você pode usar o ID do dispositivo apropriado/sys/bus/pci/drivers/ehci_hcd
.fonte
O seguinte desconectará o dispositivo USB.
A seguir, você reconectará o dispositivo USB.
O acima funciona no meu Linux Mint.
Referência: http://www.upubuntu.com/2011/09/how-to-remount-usb-stick-without.html
fonte
Não sei se entendi bem a sua pergunta, mas no meu sistema, se um dispositivo USB estiver conectado, mas não montado, eu posso 'vê-lo'
Isso me diz a qual dispositivo está associado (ou seja, / dev / sdd1 ou algo assim), então eu o monto manualmente.
fonte
/dev
).