it-swarm-vi.com

Làm cách nào để kết nối lại thiết bị USB bị ngắt kết nối logic?

Thiết bị lưu trữ USB có thể bị ngắt kết nối logic: thiết bị vẫn được cắm, nhưng vô hình khỏi hệ điều hành (ví dụ: nó không được liệt kê trong /proc/bus/usb). Có lẽ điều này có thể xảy ra với các loại USB khác hoặc các thiết bị di động khác. Điều này có thể xảy ra ví dụ:

Điều gì đang xảy ra trong trình điều khiển hoặc trong phần cứng và quan trọng nhất là (làm thế nào) thiết bị có thể được kết nối lại một cách hợp lý (mà không cần cắm vật lý vào và quay lại)?

Lưu ý rằng câu hỏi này không phải là về việc gắn kết. Trong trạng thái bị ngắt kết nối logic, hạt nhân tin rằng không có gì trên bus USB (và do đó, tất nhiên không có mục nào dưới /dev).

Đôi khi có thể thực hiện một chu kỳ nguồn trên nhánh của bus USB nơi thiết bị được cắm:

# echo suspend > /sys/bus/usb/devices/1-1/power/level
# echo auto > /sys/bus/usb/devices/1-1/power/level

Các 1-1 nên được điều chỉnh theo cấu hình của bạn. Bạn có thể thấy phần nào của cây USB mà thiết bị của bạn được cắm bằng cách chạy lsusb -t trước khi đẩy nó ra.

Bạn có thể tìm thấy thông tin chi tiết về danh sách gửi thư linux-usb, chủ đề này chẳng hạn.

21
jon_d
udevadm info -a -n /dev/sdb

Bây giờ hãy kiểm tra Kernel. Ví dụ. nếu nó được kết nối với Cổng 2 của Front UIP thì nó sẽ là 1-1.2 và nếu nó được kết nối với Cổng 1 của Front UIP thì nó sẽ là 1-1.1.

Đối với Cổng 2: Để ngắt kết nối USB:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/unbind

Để kết nối USB:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/bind
8
Udaya

Đặt lại thiết bị hoặc trung tâm mà nó được kết nối và thiết bị sẽ xuất hiện lại. Đây là một chương trình nhỏ để làm điều đó:

http://marc.info/?l=linux-usb-users&m=116827193506484

Nó hoạt động với hầu hết các ổ USB mà tôi đã thử, nhưng vẫn có trường hợp ngoại lệ, như Kingston DT 101 II 4GB của tôi, không thực hiện được các lệnh INQUIRY và READ KHẢ NĂNG sau khi đặt lại và vẫn không sử dụng được cho đến khi chạy bằng điện.

Bạn có thể khởi động lại thiết bị mà không cần rút phích cắm nếu thiết bị lấy nguồn từ cổng và bộ chia USB của bạn hỗ trợ điều khiển nguồn trên mỗi cổng. Đây là một chương trình nhỏ để kiểm soát sức mạnh:

http://marc.info/?l=linux-usb-devel&m=113724451205634

Thật không may, hầu như không có bộ chia USB nào hỗ trợ tính năng này và rất khó tìm được bộ hỗ trợ. Các nhà sản xuất không quảng cáo nó. Nhiều trung tâm cũng nói dối về nó, ví dụ nếu bạn thực hiện "lsusb -v", bạn có thể thấy "Chuyển đổi năng lượng trên mỗi cổng" được quảng cáo trong "wHubCharacteristic", nhưng thực tế nó không hoạt động. Chipset có thể hỗ trợ nó, nhưng nhà sản xuất dễ dàng hơn/rẻ hơn để kết nối trực tiếp các chân nguồn với nguồn điện thay vì đi qua chipset.

6
user6223

Tôi đã tìm thấy câu trả lời này để hoạt động tốt trên hệ thống Gentoo của tôi. Cũng xin nhớ bật lại thiết bị của bạn nếu đó là một phần quan trọng trong hệ thống của bạn (ví dụ: chuột hoặc bàn phím).

Sudo sh -c 'AUTHFILE="/sys/bus/usb/devices/5-2/authorized" ; echo 0 > "$AUTHFILE" ; sleep 1 ; echo 1 > "$AUTHFILE"'

Để xem những gì bạn đang vô hiệu hóa/kích hoạt lại:

cat /sys/bus/usb/devices/5-2/product
5
Avio

Tôi đã thử hầu hết các đề xuất trên, nhưng chúng không hiệu quả với tôi. Tôi đã tìm thấy cách đặt lại thiết bị USB từ dòng lệnh: https://askubfox.com/a/290519

echo $i >/sys/bus/pci/drivers/ehci_hcd/bind

ở đâu $i bạn có thể sử dụng ID thiết bị phù hợp từ /sys/bus/pci/drivers/ehci_hcd.

4
Kakanakov

Sau đây sẽ ngắt kết nối thiết bị USB.

Sudo eject /dev/sde

Sau đây sẽ kết nối lại thiết bị USB.

Sudo eject -t /dev/sde

Ở trên hoạt động trên Linux Mint của tôi.
[.__.] Tham khảo: http: //www.upubfox.com/2011/09/how-to-remount-usb-stick-without.html

1
Matthew Wai