USB Hub is fully manageable (actually you can turn ON /OFF individually each USB2 or USB3 port)
Please check uhubctl project :
github.com/mvp/uhubctl
<- (it will be very neat if someone can use this library at Inidlib)
Example:
evansg$ uhubctl
[code]Current status for hub 20-7 [2109:0813 VIA Labs, Inc. USB3.0 Hub, USB 3.00, 4 ports]
Port 1: 02a0 power 5gbps Rx.Detect
Port 2: 02a0 power 5gbps Rx.Detect
Port 3: 02a0 power 5gbps Rx.Detect
Port 4: 02a0 power 5gbps Rx.Detect
Current status for hub 20-6 [2109:2813 VIA Labs, Inc. USB2.0 Hub, USB 2.10, 4 ports]
Port 1: 0103 power enable connect [0403:6015 Pegasus Astro PPB-ADV revA PPBA4PWG9Q]
Port 2: 0100 power
Port 3: 0100 power
Port 4: 0100 power
Example of switching OFF USB port1:
$ uhubctl --ports 1 --action 0
Current status for hub 20-7 [2109:0813 VIA Labs, Inc. USB3.0 Hub, USB 3.00, 4 ports]
Port 1: 02a0 power 5gbps Rx.Detect
Sent power off request
New status for hub 20-7 [2109:0813 VIA Labs, Inc. USB3.0 Hub, USB 3.00, 4 ports]
Port 1: 0080 off
Current status for hub 20-6 [2109:2813 VIA Labs, Inc. USB2.0 Hub, USB 2.10, 4 ports]
Port 1: 0103 power enable connect [0403:6015 Pegasus Astro PPB-ADV revA PPBA4PWG9Q]
Sent power off request
New status for hub 20-6 [2109:2813 VIA Labs, Inc. USB2.0 Hub, USB 2.10, 4 ports]
Port 1: 0000 off