uhubctl
es una utilidad para controlar la alimentación USB por puerto en concentradores USB inteligentes. Smart hub se define como aquel que implementa conmutación de energía por puerto.
La idea original para este código se inspiró en hub-ctrl.c de Niibe Yutaka: https://www.gniibe.org/development/ac-power-control-by-USB-hub
Tenga en cuenta que muy pocos concentradores admiten conmutación de energía por puerto. Algunos de ellos ya no se fabrican y pueden ser difíciles de encontrar.
Esta es una lista de concentradores USB compatibles conocidos:
Fabricante | Producto | Puertos | USB | VID:PID | Liberar | fin de vida |
---|---|---|---|---|---|---|
Acer | Monitor BE270U (ver) | 4 | 3.0 | 2109:2811 | 2016 | |
Conceptos básicos de Amazon | HU3641V1 (problema de RPi) | 4 | 3.0 | 2109:2811 | 2013 | |
Conceptos básicos de Amazon | HU3770V1 (problema de RPi) | 7 | 3.0 | 2109:2811 | 2013 | |
Conceptos básicos de Amazon | HU9003V1EBL, HUC9003V1EBL | 7 | 3.1 | 2109:2817 | 2018 | |
Conceptos básicos de Amazon | HU9002V1SBL, HU9002V1EBL, HU9002V1ESL (nota) | 10 | 3.1 | 2109:2817 | 2018 | |
Conceptos básicos de Amazon | HUC9002V1SBL, HUC9002V1EBL, HUC9002V1ESL | 10 | 3.1 | 2109:2817 | 2018 | |
Conceptos básicos de Amazon | U3-7HUB (solo funciona para 1 puerto de carga) | 7 | 3.0 | 2109:2813 | 2020 | |
anker | AK-68ANHUB-BV7A-0004 (nota) | 7 | 3.0 | 2109:0812 | 2014 | |
Manzana | Pro Display XDR MWPE2LL/A (concentrador USB interno) | 4 | 2.0 | 05AC:9139 | 2019 | |
Manzana | Pantalla Thunderbolt de 27" (concentrador USB interno) | 6 | 2.0 | 2011 | 2016 | |
Manzana | Teclado USB con teclado numérico (concentrador USB interno) | 3 | 2.0 | 2011 | ||
Asus | Placa base Z77 Sabertooth (concentrador USB integrado) | 6 | 2.0 | 2012 | ||
Asus | Placa base Z87-PLUS (concentrador USB integrado) | 4 | 3.0 | 2013 | 2016 | |
Aukey | CB-C59 | 4 | 3.0 | 2109:2813 | 2017 | |
B+B SmartWorx | UHR204 | 4 | 2.0 | 0856:DB00 | 2013 | |
B+B SmartWorx | USH304 | 4 | 3.0 | 04B4:6506 | 2017 | 2019 |
basler | 2000036234 | 4 | 3.0 | 0451:8046 | 2016 | |
belkin | F5U101 | 4 | 2.0 | 0451:2046 | 2005 | 2010 |
belkin | F5U238UKCRL-MOB | 4 | 2.0 | 0409:0059 | 2004 | 2010 |
BenQ | Monitor PD2700U 4K (funciona solo en modo USB2) | 4 | 3.0 | 05E3:0610 | 2018 | |
BenQ | PD3220U | 4 | 3.1 | 05E3:0610 | 2019 | |
Bytecc | BT-UH340 (advertencia) | 4 | 3.0 | 2109:8110 | 2010 | |
Centech | CT-USB4HUB Reintentar concentrador | 4 | 3.0 | 0424:2744 | 2017 | |
Circuito | Beagleboard-xM (concentrador USB interno) | 4 | 2.0 | 0424:9514 | 2010 | |
club3d | Estación de acoplamiento de doble pantalla CSV-3242HD | 4 | 3.0 | 2109:2811 | 2015 | |
equipo fresco | USBG-12U2ML | 12 | 2.0 | 05e3:0607 | 2015 | |
Ciprés | Kit de desarrollo CY4608 HX2VL (nota) | 4 | 2.0 | 04B4:6570 | 2012 | |
Enlace D | DUB-H4 rev D,E (negro). Nota: rev A, C, F no compatibles | 4 | 2.0 | 05E3:0608 | 2012 | |
Enlace D | DUB-H7 rev A (plata) | 7 | 2.0 | 2001:F103 | 2005 | 2010 |
Enlace D | DUB-H7 rev D,E (negro). Rev B, C, F, G no compatibles | 7 | 2.0 | 05E3:0608 | 2012 | |
Dell | Monitor QHD P2416D de 24" (nota) | 4 | 2.0 | 2017 | ||
Dell | S2719DGF Monitor para juegos WQHD de 27" | 5 | 3.0 | 0424:5734 | 2018 | |
Dell | Monitor LCD UltraSharp 1704FPT de 17" | 4 | 2.0 | 0424:A700 | 2005 | 2015 |
Dell | Monitor LCD UltraSharp U2415 de 24" | 5 | 3.0 | 2014 | ||
Dell | Monitor curvo UltraSharp U3419W de 34" | 6 | 3.0 | 2020 | ||
Dell | Wyse 3040 (se requiere -f) | 6 | 3.0 | 2017 | ||
Desbloquear | 62537 | 4 | 3.0 | 2017 | 2021 | |
Desbloquear | 87445 (nota) | 4 | 2.0 | 05E3:0608 | 2009 | 2013 |
elecom | U2H-G4S | 4 | 2.0 | 2006 | 2011 | |
gigabyte | Monitor G27Q (ver | 4 | 3.0 | 2109:0817 | 2020 | |
Escala global | ESPRESSObin SBUD102 V5 | 1 | 3.0 | 1D6B:0003 | 2017 | |
núcleo duro | ODROID-C4 (nota) | 4 | 3.0 | 2020 | ||
Tecnología de venta ambulante | UH214 | 4 | 2.0 | 2003 | 2008 | |
Hewlett-Packard | Base USB-C G5 5TW10AA | 5 | 3.0 | 03F0:076B | 2019 | |
Hewlett-Packard | P5Q58UT | 3 | 3.0 | 2019 | ||
Inateck | HB2025A (solo USB2) | 4 | 3.1 | 2109:2822 | 2021 | |
IIO | U3H415E1 | 4 | 3.0 | 2012 | ||
j5crear | JUH377 (nota) | 7 | 3.0 | 2016 | ||
j5crear | JUH470 (nota) | 3 | 3.0 | 05E3:0610 | 2014 | |
Sistemas de jugo | 6HUB-01 | 7 | 3.0 | 0BDA:0411 | 2014 | 2018 |
KUNBUS GmbH | Conexión RevPi (+) / S / SE | 2 | 2.0 | 0424:9514 | 2018 | |
KUNBUS GmbH | RevPi Conectar 4 | 2 | 3.0 | 2022 | ||
KUNBUS GmbH | RevPi Core 3 / S / SE | 2 | 2.0 | 0424:9514 | 2017 | |
Electrónica LG | Monitor 27MD5KL-B | 4 | 3.0 | 043E:9A60 | 2019 | |
Electrónica LG | Monitor 27GL850-B | 4 | 3.0 | 0451:8142 | 2019 | |
Electrónica LG | Monitor 27UK850-W | 2 | 3.0 | 2018 | ||
Electrónica LG | Monitor 27UN83A-W | 2 | 3.0 | 0451:8142 | 2020 | |
Electrónica LG | Monitor 38WK95C-W | 4 | 3.0 | 0451:8142 | 2018 | |
lenovo | Estación de acoplamiento ThinkPad Ultra (40A20090EU) | 6 | 2.0 | 17EF:100F | 2015 | |
lenovo | Estación de acoplamiento ThinkPad Ultra (40AJ0135EU) | 7 | 3.1 | 17EF:3070 | 2018 | |
lenovo | ThinkPad X200 Ultrabase 42X4963 | 3 | 2.0 | 17EF:1005 | 2008 | 2011 |
lenovo | ThinkPad X6 Ultrabase 42W3107 | 4 | 2.0 | 17EF:1000 | 2006 | 2009 |
lenovo | Concentrador USB-C ThinkPlus 4 en 1 4X90W86497 | 3 | 3.0 | 2021 | ||
lenovo | Monitor ThinkVision T24i-10 | 4 | 2.0 | 17EF:0610 | 2018 | |
lenovo | Concentrador USB-C a USB-A de 4 puertos | 4 | 2.0 | 17EF:103A | 2020 | |
Lindy | Convertidor serie USB 4 puertos | 4 | 1.1 | 058F:9254 | 2008 | |
Linksys | USB2HUB4 (nota) | 4 | 2.0 | 2004 | 2010 | |
maplin | A08CQ | 7 | 2.0 | 0409:0059 | 2008 | 2011 |
metadoto | El teclado 4 | 2 | 3.0 | 2014 | ||
Pastilla | EVB9512 | 2 | 2.0 | 2009 | ||
Pastilla | EVB-USB2517 | 7 | 2.0 | 2008 | ||
Pastilla | EVB-USB2534BC | 4 | 2.0 | 2013 | ||
Pastilla | EVB-USB5807 | 7 | 3.0 | 2016 | ||
moxa | Uport-407 | 7 | 2.0 | 110A:0407 | 2009 | |
NVIDIA | Jetson Nano B01 (detalles) | 4 | 3.0 | 2019 | ||
NVIDIA | Supersónico Xavier NX (detalles) | 4 | 3.0 | 2020 | ||
Fidgets | HUB0003_0 | 7 | 2.0 | 1A40:0201 | 2017 | |
Philips | Monitor curvo ultraancho de 34" 346B1C | 4 | 3.0 | 05E3:0610 | 2019 | |
enchufable | USB3-HUB7BC | 7 | 3.0 | 2109:0813 | 2015 | |
enchufable | USB3-HUB7C (solo funciona para 2 puertos de carga) | 7 | 3.0 | 2109:0813 | 2015 | |
enchufable | USBC-HUB7BC (funciona para 6/7 puertos, no el más a la derecha) | 7 | 3.0 | 2109:0817 | 2021 | |
enchufable | USB3-HUB10-C2 (solo funciona para 2 puertos de carga) | 10 | 3.0 | 2014 | ||
puerto inc. | NWUSB01 | 4 | 1.1 | 0451:1446 | 1999 | 2003 |
Frambuesa Pi | B+, 2B, 3B (ver más abajo) | 4 | 2.0 | 2011 | ||
Frambuesa Pi | 3B+ (ver más abajo) | 4 | 2.0 | 0424:2514 | 2018 | |
Frambuesa Pi | 4B (ver más abajo) | 4 | 3.0 | 2109:3431 | 2019 | |
Frambuesa Pi | 5 (ver más abajo) | 4 | 3.0 | 1d6b:0002 | 2023 | |
Renesas | Controlador de host uPD720202 PCIe USB 3.0 | 2 | 3.0 | 2013 | ||
rosawill | RHUB-210 | 4 | 2.0 | 0409:005A | 2011 | 2014 |
rosonway | RSH-518C (nota) | 7 | 3.0 | 2109:0817 | 2021 | |
rosonway | RSH-A10 (ver) | 10 | 3.0 | 0bda:0411 | 2020 | |
rosonway | RSH-A13 (advertencia) | 13 | 3.1 | 2109:2822 | 2021 | |
rosonway | RSH-A16 (nota, advertencia) | 16 | 3.0 | 0bda:0411 | 2020 | |
rosonway | RSH-A104 (solo USB2) | 4 | 3.1 | 2109:2822 | 2022 | |
rosonway | RSH-A107 (también conocido como ikuai A107-5) | 7 | 3.1 | 0bda:5411 | 2022 | |
rosonway | RSH-ST07C (solo 4) | 7 | 3.0 | 2109:2822 | 2023 | |
Suministro Sanwa | USB-HUB14GPH | 4 | 1.1 | 2001 | 2003 | |
Seagate | Concentrador Backup Plus STEL8000100 | 2 | 3.0 | 0BC2:AB44 | 2016 | |
Estudio de semillas | reTerminal CM4104032 | 2 | 2.0 | 0424:2514 | 2021 | |
StarTech | Base de viaje USB-C DKT30CSDHPD3 | 3 | 3.0 | 2109:2817 | 2018 | |
StarTech | HB30A4AIB (advertencia) | 4 | 3.0 | 2109:2817 | 2018 | |
solix | SHB4200MA | 4 | 2.0 | 0409:0058 | 2006 | 2009 |
Charlas del sistema | Sugoi USB2-HUB4X | 4 | 2.0 | 2007 | ||
Targus | PA095UZ | 2 | 2.0 | 2004 | ||
Targus | PAUH212/PAUH212U | 7 | 2.0 | 2004 | 2009 | |
Instrumentos de Texas | TUSB4041PAPVM | 4 | 2.1 | 0451:8142 | 2015 | |
UUGear | MEGA4 (para Frambuesa Pi 4B) | 4 | 3.0 | 2109:0817 | 2021 | |
VirtualAquí | Concentrador USB3 de 4 puertos (nota) | 4 | 3.0 | 2024 |
Esta tabla no está de ninguna manera completa. Si su centro funciona con uhubctl
, pero no figura en la lista anterior, infórmelo abriendo un nuevo problema en https://github.com/mvp/uhubctl/issues, para que podamos agregarlo a la tabla compatible. En su informe, proporcione el modelo exacto del producto y agregue la salida de uhubctl
y pruebe la compatibilidad con VBUS desactivado como se describe a continuación en las preguntas frecuentes.
Tenga en cuenta que bastantes placas base modernas tienen concentradores raíz integrados que admiten esta función; es posible que ni siquiera necesite comprar ningún concentrador externo.
Si tiene un concentrador USB 3.0 conectado al puerto ascendente USB3, se detectará como 2 concentradores virtuales independientes: USB2 y USB3, y sus dispositivos USB se conectarán al concentrador virtual USB2 o USB3 según sus capacidades y velocidad de conexión. Para controlar la alimentación de dichos concentradores, es necesario apagar y encender los concentradores virtuales USB2 y USB3 para que los cambios de encendido y apagado surtan efecto. uhubctl
intentará hacer esto automáticamente (a menos que desactive este comportamiento con la opción -e
).
Desafortunadamente, si bien la mayoría de los concentradores cortan la conexión USB de datos, es posible que algunos aún no corten el VBUS al puerto, lo que significa que el teléfono conectado aún puede continuar cargándose desde el puerto apagado por uhubctl
.
Esta utilidad fue probada para compilar y funcionar en Linux (Ubuntu/Debian, Redhat/Fedora/CentOS, Arch Linux, Gentoo, openSUSE, Buildroot), FreeBSD, NetBSD, SunOS y MacOS.
Mientras uhubctl
se compila en Windows, el cambio de alimentación USB no funciona en Windows porque libusb
utiliza el controlador winusb.sys
, que según Microsoft no admite las solicitudes de control USB necesarias. Esto puede solucionarse si libusb
comienza a admitir controladores diferentes en Windows.
Tenga en cuenta que se recomienda encarecidamente tener instalado pkg-config
(muchas plataformas lo proporcionan de forma predeterminada).
Primero, necesita instalar la biblioteca libusb-1.0 (se recomienda la versión 1.0.12 o posterior, se recomienda la 1.0.16 o posterior):
sudo apt-get install libusb-1.0-0-dev
sudo yum install libusb1-devel
sudo zypper install libusb-1_0-devel
brew install libusb
o sudo port install libusb-devel
sudo pkgin install libusb1 gmake pkg-config
Para recuperar el código fuente de uhubctl y compilarlo:
git clone https://github.com/mvp/uhubctl
cd uhubctl
make
Esto debería generar el binario uhubctl
. Puedes instalarlo en tu sistema como /usr/sbin/uhubctl
usando:
sudo make install
Tenga en cuenta que en algunos sistemas operativos (por ejemplo, FreeBSD/NetBSD) necesita usar gmake
en su lugar para compilar.
Además, en MacOS puedes instalar uhubctl
con todas las dependencias necesarias de una sola vez usando Homebrew tap:
brew tap mvp/uhubctl https://github.com/mvp/uhubctl
brew install uhubctl
Para compilar/instalar desde la rama maestra, use --HEAD
:
brew install uhubctl --HEAD
️ En Linux, usesudo
o configure los permisos USB como se describe a continuación.
Para enumerar todos los centros compatibles:
uhubctl
Puede controlar la alimentación de un puerto USB de esta manera:
uhubctl -a off -p 2
Esto significa operar en el concentrador inteligente predeterminado y apagar ( -a off
o -a 0
) en el puerto 2 ( -p 2
). 2
acciones 1
son off
/ on
/ cycle
/ toggle
(o 0
3
. cycle
significa apagar, esperar un poco de retraso (configurable con -d
) y volver a encenderlo. Los puertos pueden ser una lista separada por comas y pueden usarse -
para rangos, por ejemplo, 2
, 2,4
, 2-5
o 1-2,5-8
.
️ Apagar los puertos USB integrados puede cortar el teclado o el mouse, ¡así que tenga cuidado con los puertos que está apagando!
Si tiene más de un concentrador USB inteligente conectado, debe elegir un concentrador específico para controlar usando el parámetro -l
(ubicación). Para encontrar ubicaciones de concentradores, simplemente ejecute uhubctl
sin ningún parámetro. Las ubicaciones de los concentradores se parecen a bx.yz
, donde b
es el número de bus USB y x
, y
, z
... son números de puerto para todos los concentradores de la cadena, comenzando desde el concentrador raíz para un bus USB determinado. Esta dirección es semiestable: no cambiará si desconecta/reconecta (o apaga/enciende) el dispositivo USB en el mismo puerto USB físico (este método también se usa en el kernel de Linux).
En Linux, debes configurar los permisos USB udev
(de lo contrario tendrás que ejecutarlo como root usando sudo uhubctl
).
A partir del kernel de Linux 6.0, hay una interfaz estándar para activar o desactivar los puertos del concentrador USB, y uhubctl
intentará usarla (en lugar de libusb
) para configurar el estado del puerto. Es por eso que existen reglas adicionales para los núcleos 6.0+. No hay nada de malo en tener estas reglas en sistemas que ejecutan versiones anteriores del kernel.
Para corregir los permisos de USB, primero ejecute sudo uhubctl
y anote todos vid:pid
de los concentradores que necesita controlar. Luego, agregue reglas de udev como las siguientes al archivo /etc/udev/rules.d/52-usb.rules
(reemplace 2001
con la identificación del proveedor de su concentrador o elimine por completo el filtro ATTR{idVendor}
para permitir el acceso de cualquier concentrador USB):
SUBSYSTEM=="usb", DRIVER=="usb", MODE="0666", ATTR{idVendor}=="2001"
# Linux 6.0 or later (its ok to have this block present for older Linux kernels):
SUBSYSTEM=="usb", DRIVER=="usb",
RUN="/bin/sh -c "chmod -f 666 $sys$devpath/*-port*/disable || true""
Tenga en cuenta que para los concentradores USB3, algunos concentradores utilizan una identificación de proveedor diferente para los componentes USB2 y USB3 del mismo chip, y ambos necesitan permisos para que uhubctl funcione correctamente. Por ejemplo, para Raspberry Pi 4B, debe agregar estas 2 líneas (o eliminar el filtro idVendor):
SUBSYSTEM=="usb", DRIVER=="usb", MODE="0666", ATTR{idVendor}=="2109"
SUBSYSTEM=="usb", DRIVER=="usb", MODE="0666", ATTR{idVendor}=="1d6b"
Si no te gusta el modo abierto 0666
, puedes restringir el acceso por grupo de esta manera:
SUBSYSTEM=="usb", DRIVER=="usb", MODE="0664", GROUP="dialout"
# Linux 6.0 or later (its ok to have this block present for older Linux kernels):
SUBSYSTEM=="usb", DRIVER=="usb",
RUN+="/bin/sh -c "chown -f root:dialout $sys$devpath/*-port*/disable || true""
RUN+="/bin/sh -c "chmod -f 660 $sys$devpath/*-port*/disable || true""
y luego agregue usuarios permitidos al grupo dialout
:
sudo usermod -a -G dialout $USER
Para que los cambios en las reglas de udev
surtan efecto, reinicie o ejecute:
sudo udevadm trigger --attr-match=subsystem=usb
Para su comodidad, aquí se proporciona la regla udev lista para usar.
Según la especificación USB 2.0, los concentradores USB pueden anunciar que no hay conmutación de energía, conmutación de energía agrupada (todos los puertos a la vez) o conmutación de energía por puerto (individual). Tenga en cuenta que, de forma predeterminada, uhubctl
solo detectará concentradores USB que admitan conmutación de energía por puerto (pero puede forzarlo a intentar operar en concentradores no compatibles con la opción -f
). Puede encontrar qué tipo de conmutación de energía admite su hardware usando sudo lsusb -v
:
Sin conmutación de energía:
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
Conmutación de energía agrupada:
wHubCharacteristic 0x0008
Ganged power switching
Per-port overcurrent protection
Conmutación de energía por puerto:
wHubCharacteristic 0x0009
Per-port power switching
Per-port overcurrent protection
uhubctl
?sudo uhubctl
. Si su hub no aparece en la lista, no es compatible. Alternativamente, puede ejecutar sudo lsusb -v
y verificar Per-port power switching
; si no puede ver dicha línea en la salida de lsusb, el concentrador no es compatible.uhubctl
para apagar ese puerto y verifique que el teléfono deje de cargarse, que la luz del USB deje de brillar o que el ventilador del USB deje de girar. Si VBUS no se apaga, el fabricante de su concentrador no incluyó circuitos para cortar la energía. Dicho concentrador aún funcionaría para cortar la conexión de datos USB, pero no puede apagar la alimentación y no consideramos este dispositivo compatible.Después de apagar el puerto USB, udev no recibe ningún evento, por lo que conserva los archivos del dispositivo. Sin embargo, intentar acceder a los archivos del dispositivo provocará un error de IO.
Este es un problema del kernel de Linux y está solucionado desde uhubctl 2.5.0 para sistemas con kernel de Linux 6.0 o posterior.
Si todavía utiliza Linux 5.x o anterior, puede utilizar esta solución para este problema:
sudo uhubctl -a off -l ${location} -p ${port}
sudo udevadm trigger --action=remove /sys/bus/usb/devices/${location}.${port}/
udev eliminará el archivo del dispositivo, pero el dispositivo USB seguirá estando visible en lsusb
. Tenga en cuenta que la ruta /sys/bus/usb/devices/${location}.${port}
solo existirá si se detectó un dispositivo en ese puerto. Cuando vuelva a encenderlo, el dispositivo debería volver a enumerarse correctamente (no es necesario volver a llamar udevadm
).
Algunos controladores de dispositivos en el kernel se sorprenden cuando el dispositivo USB se apaga e intentan volver a encenderlo automáticamente.
Este es un problema del kernel de Linux y está solucionado desde uhubctl 2.5.0 para sistemas con kernel de Linux 6.0 o posterior.
Si todavía estás usando Linux 5.x o anterior:
Puede usar la opción -r N
, donde N es un número del 10 al 1000 para solucionar este problema: uhubctl
intentará apagar la alimentación muchas veces en rápida sucesión y debería suprimirlo.
Deshabilitar la autorización USB para el dispositivo en cuestión antes de apagarlo con uhubctl
debería ayudar:
echo 0 > sudo tee /sys/bus/usb/devices/${location}.${port}/authorized
Si su dispositivo es un almacenamiento masivo USB, invocar udisksctl
antes de llamar uhubctl
también debería ayudar:
sudo udisksctl power-off --block-device /dev/disk/...`
sudo uhubctl -a off ...
Muchos fabricantes de concentradores construyen sus concentradores USB utilizando chips USB básicos de 4 puertos. Por ejemplo, para crear un concentrador de 7 puertos, conectan en cadena dos concentradores de 4 puertos; 1 puerto se pierde en la conexión en cadena, por lo que se convierte en un concentrador de 4+4-1=7 puertos. De manera similar, un concentrador de 10 puertos podría construirse como 3 concentradores de 4 puertos conectados en cadena, lo que da 4+4+4-2=10 puertos utilizables.
Tenga en cuenta que nunca debe intentar cambiar el estado de energía de los puertos utilizados para conectar en cadena concentradores internos. Hacerlo confundirá los circuitos internos del concentrador y provocará un comportamiento impredecible.
Ésta es la limitación del diseño del hardware Raspberry Pi. Como solución alternativa, puede comprar cualquier concentrador USB externo de la lista compatible anterior, conectarlo a cualquier puerto USB de Raspberry Pi y controlar la alimentación de sus puertos de forma independiente. Además, existen concentradores compatibles diseñados específicamente para Raspberry Pi, por ejemplo, UUGear MEGA4.
Como referencia, los modelos Raspberry Pi compatibles tienen la siguiente topología USB interna:
Concentrador único 1-1
, puertos 2-5 agrupados, todos controlados por el puerto 2
:
uhubctl -l 1-1 -p 2 -a 0
Intentar controlar los puertos 3
, 4
, 5
no servirá de nada. El puerto 1
controla la alimentación para Ethernet+WiFi.
Concentrador principal 1-1
, los 4 puertos agrupados, todos controlados por el puerto 2
(también apaga los puertos del concentrador secundario). El puerto 1
conecta el concentrador 1-1.1
a continuación, los puertos 2
y 3
están cableados afuera, el puerto 4
no está cableado.
uhubctl -l 1-1 -p 2 -a 0
Concentrador secundario 1-1.1
(conectado en cadena al principal): 3 puertos, el puerto 1
se usa para Ethernet+WiFi y los puertos 2
y 3
están conectados al exterior.
️ Si el firmware de su VL805 es anterior a00137ad
(verifique consudo rpi-eeprom-update
), debe actualizar el firmware para que el cambio de energía funcione en RPi 4B.
Concentrador USB2 1
, 1 puerto, solo conecta el concentrador 1-1
a continuación.
Concentrador USB2 1-1
, 4 puertos agrupados, dual al concentrador USB3 2
a continuación:
uhubctl -l 1-1 -a 0
Concentrador USB3 2
, 4 puertos agrupados, dual al concentrador USB2 1-1
arriba:
uhubctl -l 2 -a 0
Hub USB2 3
, 1 puerto, controlador OTG. No se admite el cambio de energía.
Raspberry Pi 5 tiene dos puertos USB2 y dos puertos USB3 (4 en total). Estos puertos están conectados a 4 concentradores USB distintos 1
, 2
, 3
, 4
en una configuración realmente extraña (pero dependiendo de la revisión del sistema operativo y del HW, los concentradores de interés pueden ser 2
, 3
, 4
, 5
). Si el dispositivo USB3 está conectado al conector azul, se detectará en el concentrador USB3 2
o 4
. Si el dispositivo USB2 está conectado a cualquier toma o un dispositivo USB3 conectado a una toma negra, se detectará en el concentrador USB2 1
o 3
. Independientemente del tipo de conexión USB2/USB3, los enchufes azules siempre son el puerto 1
y los enchufes negros siempre son el puerto 2
.
Cada uno de los 4 concentradores USB integrados se anuncia como compatible con la conmutación de alimentación por puerto, pero esto no es cierto. En realidad, los 4 puertos de Raspberry Pi 5 están agrupados en un grupo, a pesar de pertenecer a 4 concentradores USB lógicos diferentes.
Para apagar la alimentación de VBUS, debe desactivarse en todos los concentradores y puertos integrados con:
uhubctl -l 2 -a 0
uhubctl -l 4 -a 0
Para volver a encenderlo:
uhubctl -l 2 -a 1
uhubctl -l 4 -a 1
Tenga en cuenta que la alimentación de VBUS se reduce solo si todos los puertos están apagados; al habilitar cualquier puerto se habilita el retorno de VBUS para los 4 puertos.
Proyecto | Descripción |
---|---|
Luz USB con código Morse | Muestra un mensaje en código Morse con luz USB |
Luz USB para cámara web | Enciende/apaga el LED cuando la cámara web está encendida/apagada |
Caja de luz de cine | Activar/desactivar Cinema Lightbox desde la aplicación iOS Home |
Luz de estado de compilación | Cree una luz de estado de compilación en menos de 10 minutos |
Luces de construcción | Estado de construcción del proyecto GitLab/GitHub como luz verde/roja |
Estación meteorológica | Restablecer la estación meteorológica cuando se congele |
sistemaQMOD | Restablecer módems celulares cuando sea necesario |
Sensor de contaminación | Restablecimiento de energía del sensor de smog basado en Raspberry Pi |
Clúster terrible | Encienda/apague los nodos del clúster Raspberry Pi según sea necesario |
Servidor de música ideal | Apague los puertos USB no utilizados para mejorar la calidad del audio |
Unidades USB sin carga fantasma | Encienda las unidades USB solo cuando sea necesario para ahorrar energía |
Recuperación de datos de unidad USB | Recuperar datos de un disco duro USB defectuoso |
Controlar la alimentación de la impresora 3D. | Complemento web OctoPrint para control de alimentación USB |
Ventilador USB para Raspberry Pi | Controle el ventilador USB para evitar el sobrecalentamiento de Raspberry Pi |
Enrutador de reinicio Raspberry Pi | Reinicia automáticamente el enrutador si Internet no funciona |
Controlar la lámpara USB con voz | Control por voz de lámpara USB usando Siri y Raspberry Pi |
Controlar tira LED USB | Control de la tira de luces LED alimentada por USB |
Elaborar cerveza con Raspberry Pi | Sistema automatizado de elaboración de cerveza con Raspberry Pi |
Señal de cámara web en el aire | Ilumina automáticamente un letrero cuando la cámara web está en uso |
Hágalo usted mismo PPPS | Suelde cables en su concentrador USB para admitir uhubctl |
Centro PPPS de código abierto | Proyecto de hardware de código abierto para un concentrador compatible con uhubctl |
Envoltorio de Python para uhubctl | Módulo para usar uhubctl con Python |
rejilla de laboratorio | Marco para probar Linux integrado en hardware |
Copyright (C) 2009-2024 Vadim Mijailov
Este archivo se puede distribuir bajo los términos y condiciones de la Licencia Pública General GNU versión 2.