GNU/Linux >> Linux の 問題 >  >> Linux

USBポートへの電源をオフにします。または、USBサブシステム全体の電源をオフにしますか?

特定の時間にプログラムでオフにするために特別に購入したUSBランプを持っているので、USBポートの電源を切る必要があります。

私はusb6にusbハブがあると思います。ランプは、このハブのポートの1つに接続されています:

#myhost$ lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 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 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...
...
Bus 008 Device 006: ID 050d:0234 Belkin Components F5U234 USB 2.0 4-Port Hub

これが私が試したことです:

2つの解決策がここにあります。最初の解決策は次のとおりです。

echo disabled > /sys/bus/usb/devices/usb1/power/wakeup 
echo suspend > /sys/bus/usb/devices/usb1/power/level  # turn off

しかし、write error: Invalid argument /sys/bus/usb/devices/usb1/power/levelに書き込もうとしたとき :

$sudo bash -c 'echo disabled > /sys/bus/usb/devices/usb6/power/wakeup'
$echo suspend|sudo tee /sys/bus/usb/devices/usb6/power/level suspend
tee: /sys/bus/usb/devices/usb6/power/level: Invalid argument
$sudo bash -c 'echo suspend> /sys/bus/usb/devices/usb6/power/level'bash: line 0: echo: write error: Invalid argument

2番目の解決策:

sudo bash -c 'echo 0 > /sys/bus/usb/devices/usb6/power/autosuspend_delay_ms; echo auto > /sys/bus/usb/devices/usb6/power/control'

これにより、USBハブデバイスの電源がオフになります。

私もこれをフォローしようとしていました:

ただし、lsusb -tの出力 ハングアップするだけです:

$lsusb -t
4-1:0.0: No such file or directory
4-1:0.1: No such file or directory
^C

これにより、このメソッドを使用して「2-1.1」の部分を取得できなくなります:

echo '2-1.1' > /sys/bus/usb/drivers/usb/unbind

この情報を取得する別の方法はありますか?

または、USBサブシステム全体への電源を遮断する方法はありますか? modprobe -r usb_etcのようなもの ?

私のカーネルは:

$uname -r
3.2.0-4-amd64

承認された回答:

私のツールuhubctlを使用できます –互換性のあるUSBハブのポートごとのUSB電力を制御するコマンドラインユーティリティ。

ポートごとの電源切り替えをサポートするハブでのみ機能しますが、最近のマザーボードの多くには、この機能をサポートするUSB​​ハブがあることに注意してください。

コンパイルするには:

git clone https://github.com/mvp/uhubctl
cd uhubctl
make

/usr/sbin/uhubctlとしてシステム全体にインストールするには :

sudo make install

uhubctlで制御できるすべてのハブ、その場所、およびポートのステータスを一覧表示するには:

sudo uhubctl

sudoの使用を避けることができます udev USB権限を構成する場合)。

関連:USBスティック上のファイルを削除してもスペースが解放されないのはなぜですか?

互換性のある単一ハブのポート5の電源をオフにするには:

sudo uhubctl -a 0 -p 5

互換性のあるハブが複数接続されている場合は、-lを使用してください ハブの場所を指定して制御するには:

sudo uhubctl -a 0 -p 5 -l 3-1.2

電源をオフにしてからオンに切り替えるには:

sudo uhubctl -a 2 -p 5

USB 3.0ハブもサポートされており、かなりの数の新しいUSB3.0ハブが実際に正常に機能することに注意してください。

詳しくはこちらをご覧ください。


Linux
  1. ターミナルの画面をオフにしますか?

  2. USB Type-C、電力供給の方向はどのように制御されますか?

  3. OS 全体を起動可能な USB スティックにクローンするにはどうすればよいですか?

  1. Linux でマウスの LED ライトをオフにする

  2. MySQL で --skip-grant-tables をオフにする

  3. Linux のターミナルでビープ音をオフにするにはどうすればよいですか?

  1. USBハブの速度を見つける方法は?

  2. Linux USB:電源をオン/オフしますか?

  3. LinuxでUSB電源を制御(オン/オフ)する