Có cách nào để tắt nguồn thiết bị USB bằng phần mềm không?


11

Có cách nào để tôi có thể tắt hoàn toàn thiết bị USB (cụ thể) bằng phần mềm từ máy Linux không?

Tôi muốn sử dụng điều này để tắt nguồn (để đèn LED tắt) một thanh USB (đơn).

Bạn có biết phương pháp nào để đạt được điều này? Ví dụ: sử dụng / sys / bus / usb hoặc tương tự?


Đúng. Đơn giản chỉ cần tháo gắn thiết bị.
iglvzx

1
Không, điều đó không có ích. Cũng có khả năng là không có phân vùng có thể sử dụng (có thể được gắn) trên thanh.
Daniel Jour

Đối với ổ đĩa flash, một cách để loại bỏ ổ đĩa là echo 1 > /sys/block/sd<letter[s]>/device/delete... (đẩy ra có thể đang làm điều đó ...) Nó MIGHT dẫn đến việc thiết bị bị "tắt nguồn" ... (Nếu nó hoạt động cho các ổ đĩa, nó sẽ không hoạt động đối với các thiết bị không phải đĩa ..)
Gert van den Berg

Câu trả lời:


10

Nếu máy của bạn chạy kernel cũ, bạn có thể echo suspend > /sys/bus/usb/devices/X-X/power/levelbuộc phải đình chỉ thiết bị.

Tuy nhiên, kể từ 2.6.32, điều này không còn có thể:

Chúng ta có thể phân loại các sự kiện quản lý năng lượng theo hai lớp rộng: bên ngoài và bên trong. Các sự kiện bên ngoài là những sự kiện được kích hoạt bởi một số tác nhân bên ngoài ngăn xếp USB: tạm dừng / tiếp tục hệ thống (được kích hoạt bởi không gian người dùng), tiếp tục động thủ công (cũng được kích hoạt bởi không gian người dùng) và đánh thức từ xa (được kích hoạt bởi thiết bị). Các sự kiện bên trong là những sự kiện được kích hoạt trong ngăn xếp USB : autosuspend và autoresume. Lưu ý rằng tất cả các sự kiện đình chỉ động là nội bộ ; tác nhân bên ngoài không được phép đưa ra đình chỉ năng động.

power/control

    This file contains one of two words: "on" or "auto".
    You can write those words to the file to change the
    device's setting.

    "on" means that the device should be resumed and
    autosuspend is not allowed.  (Of course, system
    suspends are still allowed.)

    "auto" is the normal state in which the kernel is
    allowed to autosuspend and autoresume the device.

    (In kernels up to 2.6.32, you could also specify
    "suspend", meaning that the device should remain
    suspended and autoresume was not allowed.  This
    setting is no longer supported.

(từ http://www.kernel.org/doc/Documentation/usb/power-man quản lý.txt )

Tôi đoán điều tốt nhất bạn có thể làm là hủy liên kết thiết bị khỏi trình điều khiển , do đó sẽ không có hoạt động nào trên đó, sau đó định cấu hình thiết bị để tự động gửi càng sớm càng tốt ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms).

Tuy nhiên, theo như tôi hiểu về thông số kỹ thuật USB , ngay cả khi bạn tạm dừng thiết bị, một số nguồn trên cổng sẽ vẫn còn, do đó không thể tắt đèn led nếu được cung cấp bởi sơ đồ 'câm' (tức là được kết nối trực tiếp với + 5V và GND ghim).


Tôi đánh dấu đây là câu trả lời được chấp nhận vì tôi có thể hủy liên kết thiết bị khỏi trình điều khiển của nó và định cấu hình tự động gửi, điều này dẫn đến việc thiết bị tắt. Thật không may, các thanh USB được nhắm mục tiêu (hoặc: đèn LED của chúng) được kết nối trực tiếp với + 5V và GND và do đó không thể tắt nguồn.
Daniel Jour

3

Sử dụng lệnh đẩy nên hoạt động.

Chạy eject /dev/<devicename>và nó sẽ tắt điện.


Thật không may, điều này không hoạt động cho thanh thử nghiệm của tôi ở đây :(
Daniel Jour

2
Điều này không có gì đáng ngạc nhiên nếu thanh USB của bạn không phải là ổ đĩa CD, Đĩa mềm, Băng hoặc SCSI. ejectchỉ hoạt động với những.
Dmitry Grigoryev
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.