特定の時間にオフになるようにプログラムできるように、特別に購入したUSBライトがあるため、USBポートから電源を切る必要があります。
USBハブUSB6があると思います。照明はこのハブのポートの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
答え1
私のツールを使用できます。uhubctl- 互換性のあるUSBハブの各ポートのUSB電源を制御するためのコマンドラインユーティリティ。
ポート固有の電源切り替えをサポートするハブでのみ機能しますが、多くの最新のマザーボードにはこの機能をサポートするUSBハブがあります。
まず、オペレーティングシステムのパッケージストアにすでにuhubctlがある可能性があります。閲覧ファイルインストール方法を確認し、最新バージョン(作成時に2.4.0)を使用していることを確認してください。
オペレーティングシステムにこのパッケージの最新バージョンがない場合は、次のようにソースからインストールできます。
編む:
git clone https://github.com/mvp/uhubctl
cd uhubctl
make
システム全体にインストールするには、次の手順を実行します/usr/sbin/uhubctl
。
sudo make install
uhubctlで制御できるすべてのハブ、その場所、およびポートのステータスを一覧表示します。
sudo uhubctl
sudo
(udev 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ハブもサポートされており、かなりの数の新しいUSB 3.0ハブが実際にうまく機能します。
読むここでもっと学ぶ。
答え2
バラよりLinuxを使用したUSB電源(オン/オフ)の制御、最新のカーネルを使用する短いバージョンの「hang」はもう機能しません。
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo "auto" > "/sys/bus/usb/devices/usbX/power/control"
しかし、実際に電源を切るわけではありません。デバイスに電源を切るように信号を送り、電源管理を実装し、正しいタスクを実行することはデバイスによって異なります。
その中に多くの詳細が含まれています。公式文書カーネル内では、さまざまなファイルとデバイス/sys/bus/usb/devices/.../power/
とポートを管理する方法について説明します。
実際のUSBデバイスではない場合(USBインジケータはlsusbに表示されますか?)、運が悪くなる可能性があります。 USBインジケータとGPSロガーを使ってバッテリーを充電し、USB経由でデータを転送してみました。 cp210x USB to シリアルポートでの動作は、コンピュータの電源を切っても機能しません。 GPSを「接続解除」してからecho '5-4.6' > /sys/bus/usb/drivers/usb/unbind
再接続できますが、echo '5-4.6' > /sys/bus/usb/drivers/usb/bind
バッテリー充電インジケーターは点灯し続けます。
でもそうだいくつかのハブは素晴らしい仕事をしています。。