Bật / tắt cổng USB


18

Có thể bật / tắt một cổng USB cụ thể bằng thiết bị đầu cuối trong Ubuntu không?

lsusb hiển thị kết quả sau:

Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 2232:1020
Bus 002 Device 009: ID 0bc2:a013 Seagate RSS LLC
Bus 002 Device 003: ID 0a5c:219c Broadcom Corp.

Seagate là ổ đĩa cứng ngoài của tôi. Tôi có thể tắt nó trong thiết bị đầu cuối không?

Tôi đã thử Kiểm soát nguồn cung cấp USB (bật / tắt) với Linux . Nhưng tôi bối rối về những gì nên được thay thế usbX.

Câu trả lời:


7

Tất cả các câu trả lời trước đây đều nói về cơ chế treo USB , tức là "tắt nguồn logic", họ sẽ không bao giờ cắt VBUS + 5V về mặt vật lý khỏi cổng USB.

Chỉ có một vài trung tâm thực sự có thể cắt VBUS như được mô tả ở đây .

Công cụ hubpower có thể làm điều đó (nếu hub hỗ trợ nó).


7

Sau khi gặp vấn đề tương tự, tôi thấy rằng các lệnh nên được nhập khác nhau để "sudo" sẽ áp dụng các quyền một cách thích hợp.

Sử dụng lệnh "tee".

echo 0 | sudo tee /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms

sẽ áp dụng quyền root cho lệnh "tee" sẽ ghi 0 vào tệp được chỉ định, thay thế bất cứ thứ gì hiện có. Để chắp thêm, sử dụng lệnh tee với tùy chọn -a.

để biết thông tin xem trang người đàn ông của tee


2
Các teelệnh sẽ có tác dụng phụ của cũng in ra màn hình. Nếu bạn muốn, dd of=/sys/bus/...sẽ chỉ ghi vào tệp, và không ở đâu khác.
Brandon Rhodes

4

Trên thực tế usbXkhông có gì ngoài các số cổng USB trong đó Xbiểu thị số như 1hoặc 2vv ... Ví dụ, usb1usb2cho các cổng 12 . Nhìn chung, một máy tính xách tay có thể có ba hoặc bốn cổng USB với cổng USB 2.0 và USB 3.0.

Trong Ubuntu, usb1, usb2... usbXlà các liên kết đến /sys/devices/pci000:00/*. Để hiểu rõ về nó, hãy chạy lệnh này:

ls -l /sys/bus/usb/devices/

Vì vậy, để bật / tắt các cổng USB usbXsẽ được thay thế bằng usb1khi bạn muốn bật / tắt USB Port Number 1(hoặc tham khảo Stack Exchange):


Chỉnh sửa: Cảm ơn Stefan Denchev để nói cách chính xác để lặp lại một số văn bản vào một tệp bằng sudo . (Cũng kiểm tra bình luận của anh ấy.) Bạn không nên nhận được thông báo từ chối cấp phép ngay bây giờ.

sudo sh -c "echo '0' > /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms"
sudo sh -c "echo 'auto' > /sys/bus/usb/devices/usb1/power/control"

Sau khi thấy lsusbkết quả của bạn , có vẻ như thiết bị Seagate của bạn được kết nối với Port No. 2, vì vậy bạn cần phải tắt usb2. Sau đó, các lệnh sẽ là:

sudo sh -c "echo '0' > /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms"
sudo sh -c "echo 'auto' > /sys/bus/usb/devices/usb2/power/control"

Cảm ơn. Nếu tôi thử echo "0" > "/sys/bus/usb/devices/usb2/power/autosuspend_delay_ms"đầu ra làbash: /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms: Permission denied
tò mò_coder

sau đó thử sudoxem điều gì xảy ra ..
Saurav Kumar

Thử nó. Vẫn lỗi như vậy.
tò mò_coder

Trên thực tế tôi đã không cố gắng bật / tắt bất kỳ cổng nào trong Linux .. Phương châm của tôi là làm cho bạn rõ ràng về usbXvấn đề. Nếu bạn hiểu rõ về các lệnh mà bạn đã lấy từ StackOverflowđó thì chỉ nên thử. Bất cứ cách nào bây giờ tôi cũng quan tâm để biết đó là lệnh thực tế để bật / tắt cổng. Tôi sẽ trả lời bạn sớm, khi nó làm việc cho tôi. Nói sau đó bạn rút phích cắm thiết bị của bạn và thử lại. hoặc thử câu trả lời đầu tiên được đưa ra tại stackoverflow.
Saurav Kumar

1
sudo sh -c "echo 'on' >> /sys/bus/usb/devices/usb4/power/control"
UIlrvnd

1

udisksctlpower-offcờ, mà tôi khuyên bạn nên sử dụng cùng với unmount

Từ man udisksctl:

power-off
           Arranges for the drive to be safely removed and powered off. On the
           OS side this includes ensuring that no process is using the drive,
           then requesting that in-flight buffers and caches are committed to
           stable storage. The exact steps for powering off the drive depends
           on the drive itself and the interconnect used. For drives connected
           through USB, the effect is that the USB device will be deconfigured
           followed by disabling the upstream hub port it is connected to

Bản giới thiệu

Đây là tôi đang ngắt kết nối USB của tôi và sau đó tắt nguồn

testdir:$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 009: ID 154b:007a PNY 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

testdir:$ lsblk                                                                
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
└─sda1   8:1    0 111.8G  0 part /
sdb      8:16   1    30G  0 disk 
└─sdb1   8:17   1    30G  0 part /media/xieerqi/6A32C4555E1C5B4D
sr0     11:0    1  1024M  0 rom  

testdir:$ udisksctl unmount -b /dev/sdb1 && udisksctl power-off -b /dev/sdb1
Unmounted /dev/sdb1.

testdir:$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

testdir:$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
└─sda1   8:1    0 111.8G  0 part /
sr0     11:0    1  1024M  0 rom  

testdir:$ 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.