Es posible que un dispositivo de almacenamiento USB se desconecte lógicamente: el dispositivo todavía está enchufado, pero es invisible para el sistema operativo (por ejemplo, no está en la lista /proc/bus/usb
). Tal vez esto también le pueda pasar a otros tipos de USB u otros dispositivos extraíbles. Esto puede suceder por ejemplo:
- después de que Nautilus haya desmontado un dispositivo de almacenamiento USB ;
- después de que VirtualBox haya reclamado un dispositivo de almacenamiento USB (el dispositivo desaparece del host de Linux cuando está conectado al invitado y no vuelve a aparecer automáticamente si se desconecta del invitado).
¿Qué sucede en el controlador o en el hardware y, lo que es más importante, (cómo) se puede volver a conectar lógicamente el dispositivo (sin enchufarlo físicamente y volver a conectarlo)?
Tenga en cuenta que esta pregunta no se trata de montaje. En el estado "desconectado lógicamente", el núcleo cree que no hay nada en el bus USB (y, por supuesto, no hay ninguna entrada debajo /dev
).
Respuestas:
A veces es posible hacer un ciclo de encendido en la rama del bus USB donde está conectado el dispositivo:
El
1-1
debe ajustarse a su configuración. Puede ver a qué parte del árbol USB está conectado su dispositivo ejecutandolsusb -t
antes de expulsarlo.Puede encontrar información detallada en la lista de correo linux-usb, este hilo por ejemplo.
fuente
dmesg
informa la identificación correcta del dispositivo ("usb 9-4: desconexión [...] USB"), esto no funciona en la última versión de Arch Linux. No hay camino/sys/bus/usb/devices/9-4
después.suspend
es compatible con las versiones recientes del kernel ...Reinicie el dispositivo o el concentrador al que está conectado y el dispositivo debería reaparecer. Aquí hay un pequeño programa para hacer eso:
http://marc.info/?l=linux-usb-users&m=116827193506484
Funciona para la mayoría de las unidades USB que he probado, pero hay excepciones, como mi Kingston DT 101 II 4GB, que falla los comandos INQUIRY y READ CAPACITY después del reinicio, y permanece inutilizable hasta que se apaga y enciende.
Puede apagar y encender el dispositivo sin desconectarlo si recibe energía del puerto y su concentrador USB admite el control de energía por puerto. Aquí hay un pequeño programa para controlar el poder:
http://marc.info/?l=linux-usb-devel&m=113724451205634
Desafortunadamente, casi ningún concentrador USB admite esta función, y es muy difícil encontrar uno que lo admita. Los fabricantes no lo anuncian. Muchos centros también mienten al respecto, por ejemplo, si hace "lsusb -v", puede ver "Cambio de alimentación por puerto" anunciado en "wHubCharacteristic", pero en realidad no funciona. El chipset puede admitirlo, pero fue más fácil / más barato para el fabricante conectar los pines de alimentación del puerto directamente a la fuente de alimentación en lugar de pasar por el chipset.
fuente
Encontré que esta respuesta funciona muy bien en mi sistema Gentoo. Recuerde también volver a habilitar su dispositivo si es una parte importante de su sistema (por ejemplo, mouse o teclado).
Para ver lo que está deshabilitando / volviendo a habilitar:
fuente
Ahora verifique si hay Kernel. Por ejemplo, si está conectado al puerto 2 de UIP frontal, entonces sería 1-1.2 y si está conectado al puerto 1 de UIP frontal, sería 1-1.1.
Para el puerto 2: para desconectar el USB:
Para conectar USB:
fuente
He intentado la mayoría de las sugerencias anteriores, pero no funcionaron para mí. Encontré cómo restablecer un dispositivo USB desde la línea de comandos: https://askubuntu.com/a/290519
desde donde
$i
puede usar la ID de dispositivo adecuada/sys/bus/pci/drivers/ehci_hcd
.fuente
Lo siguiente desconectará el dispositivo USB.
Lo siguiente volverá a conectar el dispositivo USB.
Lo anterior funciona en mi Linux Mint.
Referencia: http://www.upubuntu.com/2011/09/how-to-remount-usb-stick-without.html
fuente
No estoy seguro de comprender bien su pregunta, pero en mi sistema si un dispositivo usb está enchufado pero no montado, puedo "verlo"
Eso me dice con qué dispositivo está asociado (es decir, / dev / sdd1 o algo así), luego lo monto manualmente.
fuente
/dev
).