質問: 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つの解決策は here であり、最初の解決策は次のとおりです。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-hubデバイスの電源をオフにします。私もフォローしようとしていました this :しかし、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 (udev usbアクセス許可を構成する場合、sudoの使用を回避できます)。互換性のある単一のハブのポート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ハブが実際に機能します。 詳細はこちら をお読みください。