GNU/Linux >> Belajar Linux >  >> Linux

Linux USB:menyalakan dan mematikan daya?

Interaksi usbfs tampaknya telah berubah beberapa kali sejak pertanyaan ini awalnya dijawab. Jadi, inilah cara saya memutar daya port hub di Ubuntu Oneiric Ocelot dari Bash Shell.

Telusuri nomor bus dan perangkat:

sudo lsusb -v|less

Temukan perangkat di hierarki port bus / hub menggunakan nomor bus dan perangkat:

sudo lsusb -t|less

Sintaksnya sepertinya 'bus-port.port.port.port.port...' Misalnya, mouse saya terhubung ke hub eksternal yang terhubung ke hub komputer saya yang terhubung secara internal ke hub root:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 1: Dev 3, If 0, Class=hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M

Jadi, '2-1.1.1' dalam kasus di atas. Terakhir, putar daya port:

echo '2-1.1.1'|sudo tee /sys/bus/usb/drivers/usb/unbind
sleep 1
echo '2-1.1.1'|sudo tee /sys/bus/usb/drivers/usb/bind

Saya belum memasang penganalisis protokol untuk melihat apa yang sebenarnya terjadi di bus, tetapi saya tahu lampu mouse saya mati saat saya melepaskannya. Saya menduga pada lapisan bawah ini berinteraksi dengan pengontrol host EHCI untuk benar-benar mematikan daya di port. Hal ini sangat berguna untuk perangkat yang disematkan, seperti webcam UVC, yang sepertinya tidak pernah berfungsi dengan baik dan sebaliknya akan memerlukan booting ulang sistem untuk menyetel ulang.

Lihat juga udevadm perintah.


Ada entri sys untuk ini di Linux. Dari Dokumentasi/usb/power-management.txt:

kekuatan/tingkat

This file contains one of three words: "on", "auto",
or "suspend".  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.

"suspend" means that the device should remain
suspended, and autoresume is not allowed.  (But remote
wakeup may still be allowed, since it is controlled
separately by the power/wakeup attribute.)

Sesuatu seperti:echo on > /sys/bus/usb/devices/usb5/power/level

Anda mungkin perlu bermain dengan pengaturan penangguhan otomatis juga. Tanpa memberi tahu kernel untuk berhenti mencoba, itu mungkin menangguhkan port secara otomatis.

Semoga berhasil!


Linux
  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. Cara Membuat Alias ​​​​dan Menggunakan Perintah Alias ​​​​di Linux

  3. Inode dan sistem file Linux

  1. Mematikan Daya Ke Port Usb. Atau Matikan Daya Ke Seluruh Subsistem Usb?

  2. Bagaimana cara mengizinkan atau memblokir port dan Alamat IP menggunakan Firewalld, tabel IP, dan UFW di Linux?

  3. Bagaimana saya mengontrol output daya di port USB di Linux?

  1. Tonton perintah dan tugas dengan perintah jam tangan Linux

  2. Membaca dan menulis ke port serial di C di Linux

  3. USB Type-C, bagaimana arah pengiriman daya dikendalikan?