WindowsでもUSBポート単位で電源制御できるPPPSを使う

概要

通常PPPSを利用する場合にはLinuxかMacにてuhubctlを利用して制御をする必要があります。しかしWindowsの場合には通常はUSBハブがデバイスとして見えないのでそのままだと制御することができません。

VirtualHereのUSBハブ

USBを仮想化させるVirtualHereがPPPS対応のUSBハブを販売しています。残念ながらバスパワーのみでセルフパワーに対応していません。作者的にはY字ケーブルみたいなのを使って電源供給してねとのことでしたがちょっと残念。

さて、このVirtualHere用のPPPSソフトは汎用的に作られており、Windowsのドライバーに必要な署名もされている状態で公開されています。

VirtualHere USB 3 4-Port Hub | VirtualHere

上記にリンクがあります。

VirtualHere Clientを利用することで、GUIでの設定変更が可能になります。ただこれだとちょっと使いにくいですよね。

vhui64.exe -t "CUSTOM EVENT,nanopineo3.214,power_cycle_port"

一応コマンドライン経由でも使えますが、上記のようにちょっと指定しにくいコマンドになります。

Windowsコマンドラインツール

なんと、Windows向けのコマンドラインツールも同時に公開してくれています。なんとexeの直リンクです。いまどきこの配布方法は少ないですよね。

>vhfilter.exe

vhfilter.exe turns on/off port power on a USB PPPS Hub
Copyright 2023- VirtualHere Pty. Ltd. https://www.virtualhere.com
Usage  : vhfilter.exe --install-filter | --uninstall-filter | --list-hubs | --switch-port [port] [off | on] [devicePath]

実行するとこんな感じのコマンドラインとなります。

>vhfilter.exe --switch-port 1 off "USB\VID_1A86&PID_8094\5&829319&0&3"
Error 0x00000002 connecting to the USB filter driver, maybe its not installed or there are no USB Hubs?

そのまま実行するとフィルタードライバーが入っていないので上記のようなエラーとなります。

>vhfilter.exe --install-filter

上記でまずフィルタードライバーを入れます。実行すると管理者権限を求められます。そしてマシンを再起動するかUSBハブを取り外してから、再度接続すると有効になります。

>vhfilter.exe --switch-port 1 off "USB\VID_1A86&PID_8094\5&829319&0&3"
Successfully turned port 1 off

そして上記のようにポート単位で制御することに成功しました!

まとめ

Windowsだとかなり使いにくいPPPSですが、署名付きドライバー付きでVirtualHereが公開してくれています。汎用的に作ってあるのでVirtualHere以外の製品にも自由に使っていいとのことでした。

コメント