Je možné, že se úložné zařízení USB logicky odpojí: zařízení je stále připojeno, ale je neviditelné z operačního systému (např. Není uvedeno pod /proc/bus/usb
). Možná se to může stát i jiným druhům USB nebo jiným vyměnitelným zařízením. To se může stát například:
Co se děje v ovladači nebo v hardwaru, a co je nejdůležitější, (jak), lze zařízení logicky znovu připojit (aniž by bylo fyzicky zapojeno a znovu zapojeno)?
Všimněte si, že tato otázka není o montáži. Ve stavu „logicky odpojeno“ jádro věří, že na sběrnici USB není nic (a tak samozřejmě pod položkou /dev
).
Někdy je možné provést energetický cyklus na větvi sběrnice USB, kde je zařízení připojeno:
# echo suspend > /sys/bus/usb/devices/1-1/power/level
# echo auto > /sys/bus/usb/devices/1-1/power/level
The 1-1
by mělo být přizpůsobeno vaší konfiguraci. Uvidíte, ke které části stromu USB je zařízení připojeno spuštěním lsusb -t
před vysunutím.
Podrobné informace najdete v linux-usb mailing-listu, například toto vlákno .
udevadm info -a -n /dev/sdb
Nyní zkontrolujte jádro. Např. pokud je připojen k portu 2 Front UIP, pak by to bylo 1-1.2 a pokud je připojen k portu 1 Front UIP, pak by to bylo 1-1.1.
Pro port 2: Odpojení USB:
echo '1-1.2' | tee /sys/bus/usb/drivers/usb/unbind
Připojení USB:
echo '1-1.2' | tee /sys/bus/usb/drivers/usb/bind
Resetujte zařízení nebo rozbočovač, ke kterému je připojeno, a zařízení by se mělo znovu objevit. Zde je malý program, který to provede:
http://marc.info/?l=linux-usb-users&m=116827193506484
Funguje to pro většinu USB disků, které jsem vyzkoušel, ale existují výjimky, jako jsou mé Kingston DT 101 II 4GB, které po resetu selhávají příkazů INQUIRY a READ CAPACITY a zůstávají nepoužitelné, dokud nejsou cyklicky napájeny.
Pokud je zařízení napájeno z portu, můžete jej napájet z cyklu bez odpojení a váš rozbočovač USB podporuje řízení napájení na jeden port. Zde je malý program pro ovládání výkonu:
http://marc.info/?l=linux-usb-devel&m=113724451205634
Bohužel téměř žádná rozbočovače USB nepodporují tuto funkci a je velmi obtížné najít tu, která ji podporuje. Výrobci to neinzerují. Mnoho hubů o tom také leží, například pokud děláte "lsusb -v", můžete vidět "Přepínání výkonu na porty" inzerované v "wHubCharacteristic", ale ve skutečnosti to nefunguje. Čipová sada jej může podporovat, ale pro výrobce bylo snazší/levnější připojit kolíky napájení portu přímo k napájení místo toho, aby procházel čipovou sadou.
Našel jsem tato odpověď skvěle fungující na mém systému Gentoo. Nezapomeňte také znovu aktivovat zařízení, pokud je to důležitá součást vašeho systému (např. Myš nebo klávesnice).
Sudo sh -c 'AUTHFILE="/sys/bus/usb/devices/5-2/authorized" ; echo 0 > "$AUTHFILE" ; sleep 1 ; echo 1 > "$AUTHFILE"'
Chcete-li vidět, co deaktivujete/znovu povolíte:
cat /sys/bus/usb/devices/5-2/product
Vyzkoušel jsem většinu výše uvedených návrhů, ale pro mě nefungovaly. Našel jsem, jak resetovat zařízení USB z příkazového řádku: https://askubuntu.com/a/290519
echo $i >/sys/bus/pci/drivers/ehci_hcd/bind
kde $i
můžete použít příslušné ID zařízení od /sys/bus/pci/drivers/ehci_hcd
.
Následující zařízení odpojí zařízení USB.
Sudo eject /dev/sde
Následující zařízení USB znovu připojí.
Sudo eject -t /dev/sde
Výše uvedené práce na mé linuxové mincovně.
Reference: http://www.upubuntu.com/2011/09/how-to-remount-usb-stick-without.html