uhubctl
是用於控制智慧型 USB 集線器上每個連接埠的 USB 電源的實用程式。智慧集線器被定義為實現每個連接埠電源切換的集線器。
此程式碼的最初想法受到 Niibe Yutaka 的 hub-ctrl.c 的啟發:https://www.gniibe.org/development/ac-power-control-by-USB-hub
請注意,很少有集線器實際上支援每個連接埠電源切換。其中一些已不再生產並且很難找到。
這是已知相容 USB 集線器的清單:
製造商 | 產品 | 港口 | USB | 影片:PID | 發布 | 停產 |
---|---|---|---|---|---|---|
宏碁 | BE270U 監視器(請參閱) | 4 | 3.0 | 2109:2811 | 2016年 | |
亞馬遜基礎知識 | HU3641V1(RPi問題) | 4 | 3.0 | 2109:2811 | 2013年 | |
亞馬遜基礎知識 | HU3770V1(RPi問題) | 7 | 3.0 | 2109:2811 | 2013年 | |
亞馬遜基礎知識 | HU9003V1EBL、HUC9003V1EBL | 7 | 3.1 | 2109:2817 | 2018年 | |
亞馬遜基礎知識 | HU9002V1SBL、HU9002V1EBL、HU9002V1ESL(註) | 10 | 3.1 | 2109:2817 | 2018年 | |
亞馬遜基礎知識 | HUC9002V1SBL、 HUC9002V1EBL、 HUC9002V1ESL | 10 | 3.1 | 2109:2817 | 2018年 | |
亞馬遜基礎知識 | U3-7HUB(僅適用於1個充電埠) | 7 | 3.0 | 2109:2813 | 2020年 | |
安克 | AK-68ANHUB-BV7A-0004(註) | 7 | 3.0 | 2109:0812 | 2014年 | |
蘋果 | Pro Display XDR MWPE2LL/A(內部 USB 集線器) | 4 | 2.0 | 05AC:9139 | 2019年 | |
蘋果 | Thunderbolt Display 27"(內建 USB 集線器) | 6 | 2.0 | 2011年 | 2016年 | |
蘋果 | 附數位鍵盤的 USB 鍵盤(內部 USB 集線器) | 3 | 2.0 | 2011年 | ||
華碩 | Z77 Sabertooth主機板(板載USB集線器) | 6 | 2.0 | 2012年 | ||
華碩 | Z87-PLUS主機板(板載USB集線器) | 4 | 3.0 | 2013年 | 2016年 | |
奧基 | CB-C59 | 4 | 3.0 | 2109:2813 | 2017年 | |
B+B SmartWorx | 超高熱204 | 4 | 2.0 | 0856:DB00 | 2013年 | |
B+B SmartWorx | USH304 | 4 | 3.0 | 04B4:6506 | 2017年 | 2019年 |
巴斯勒 | 2000036234 | 4 | 3.0 | 0451:8046 | 2016年 | |
貝爾金 | F5U101 | 4 | 2.0 | 0451:2046 | 2005年 | 2010年 |
貝爾金 | F5U238UKCRL-MOB | 4 | 2.0 | 0409:0059 | 2004年 | 2010年 |
明基 | PD2700U 4K 顯示器(僅在 USB2 模式下運作) | 4 | 3.0 | 05E3:0610 | 2018年 | |
明基 | PD3220U | 4 | 3.1 | 05E3:0610 | 2019年 | |
位元組碼 | BT-UH340(警告) | 4 | 3.0 | 2109:8110 | 2010年 | |
森泰克 | CT-USB4HUB 重試集線器 | 4 | 3.0 | 0424:2744 | 2017年 | |
電路公司 | Beagleboard-xM(內線 USB 集線器) | 4 | 2.0 | 0424:9514 | 2010年 | |
3D俱樂部 | CSV-3242HD 雙顯示擴充塢 | 4 | 3.0 | 2109:2811 | 2015年 | |
酷齒輪 | USBG-12U2ML | 12 | 2.0 | 05e3:0607 | 2015年 | |
柏 | CY4608 HX2VL 開發套件(註) | 4 | 2.0 | 04B4:6570 | 2012年 | |
D-Link | DUB-H4 版本 D、E(黑色)。注意:不支援版本 A、C、F | 4 | 2.0 | 05E3:0608 | 2012年 | |
D-Link | DUB-H7 版本 A(銀色) | 7 | 2.0 | 2001:F103 | 2005年 | 2010年 |
D-Link | DUB-H7 版本 D、E(黑色)。不支援版本 B、C、F、G | 7 | 2.0 | 05E3:0608 | 2012年 | |
戴爾 | P2416D 24" QHD 顯示器(註) | 4 | 2.0 | 2017年 | ||
戴爾 | S2719DGF 27" WQHD 遊戲顯示器 | 5 | 3.0 | 0424:5734 | 2018年 | |
戴爾 | UltraSharp 1704FPT 17 吋液晶顯示器 | 4 | 2.0 | 0424:A700 | 2005年 | 2015年 |
戴爾 | UltraSharp U2415 24 吋液晶顯示器 | 5 | 3.0 | 2014年 | ||
戴爾 | UltraSharp U3419W 34 吋曲面顯示器 | 6 | 3.0 | 2020年 | ||
戴爾 | Wyse 3040(需要 -f) | 6 | 3.0 | 2017年 | ||
德洛克 | 62537 | 4 | 3.0 | 2017年 | 2021年 | |
德洛克 | 87445(註) | 4 | 2.0 | 05E3:0608 | 2009年 | 2013年 |
電訊公司 | U2H-G4S | 4 | 2.0 | 2006年 | 2011年 | |
技嘉 | G27Q 顯示器(參見 | 4 | 3.0 | 2109:0817 | 2020年 | |
全球規模 | ESPRESSObin SBUD102 V5 | 1 | 3.0 | 1D6B:0003 | 2017年 | |
硬核 | ODROID-C4(註) | 4 | 3.0 | 2020年 | ||
霍金科技 | 呃214 | 4 | 2.0 | 2003年 | 2008年 | |
惠普 | USB-C 擴充塢 G5 5TW10AA | 5 | 3.0 | 03F0:076B | 2019年 | |
惠普 | P5Q58UT | 3 | 3.0 | 2019年 | ||
伊納泰克 | HB2025A(僅限 USB2) | 4 | 3.1 | 2109:2822 | 2021年 | |
IOI | U3H415E1 | 4 | 3.0 | 2012年 | ||
j5創建 | JUH377(註) | 7 | 3.0 | 2016年 | ||
j5創建 | JUH470(註) | 3 | 3.0 | 05E3:0610 | 2014年 | |
榨汁系統 | 6HUB-01 | 7 | 3.0 | 0BDA:0411 | 2014年 | 2018年 |
昆布有限公司 | RevPi 連接 (+) / S / SE | 2 | 2.0 | 0424:9514 | 2018年 | |
昆布有限公司 | RevPi 連結 4 | 2 | 3.0 | 2022年 | ||
昆布有限公司 | RevPi 核心 3 / S / SE | 2 | 2.0 | 0424:9514 | 2017年 | |
LG電子 | 27MD5KL-B監視器 | 4 | 3.0 | 043E:9A60 | 2019年 | |
LG電子 | 27GL850-B監視器 | 4 | 3.0 | 0451:8142 | 2019年 | |
LG電子 | 27UK850-W顯示器 | 2 | 3.0 | 2018年 | ||
LG電子 | 27UN83A-W監視器 | 2 | 3.0 | 0451:8142 | 2020年 | |
LG電子 | 38WK95C-W監視器 | 4 | 3.0 | 0451:8142 | 2018年 | |
聯想 | ThinkPad Ultra 擴充座 (40A20090EU) | 6 | 2.0 | 17EF:100F | 2015年 | |
聯想 | ThinkPad Ultra 擴充座 (40AJ0135EU) | 7 | 3.1 | 17EF:3070 | 2018年 | |
聯想 | ThinkPad X200 Ultrabase 42X4963 | 3 | 2.0 | 17EF:1005 | 2008年 | 2011年 |
聯想 | ThinkPad X6 Ultrabase 42W3107 | 4 | 2.0 | 17EF:1000 | 2006年 | 2009年 |
聯想 | ThinkPlus 4 合 1 USB-C 集線器 4X90W86497 | 3 | 3.0 | 2021年 | ||
聯想 | ThinkVision T24i-10 顯示器 | 4 | 2.0 | 17EF:0610 | 2018年 | |
聯想 | USB-C 轉 4 埠 USB-A 集線器 | 4 | 2.0 | 17EF:103A | 2020年 | |
林迪 | USB串口轉換器4口 | 4 | 1.1 | 058F:9254 | 2008年 | |
林克系統 | USB2HUB4(註) | 4 | 2.0 | 2004年 | 2010年 | |
梅普林 | A08CQ | 7 | 2.0 | 0409:0059 | 2008年 | 2011年 |
梅多點 | 達斯鍵盤4 | 2 | 3.0 | 2014年 | ||
微晶片 | EVB9512 | 2 | 2.0 | 2009年 | ||
微晶片 | 評估板-USB2517 | 7 | 2.0 | 2008年 | ||
微晶片 | 評估板-USB2534BC | 4 | 2.0 | 2013年 | ||
微晶片 | 評估板-USB5807 | 7 | 3.0 | 2016年 | ||
艾 | Uport-407 | 7 | 2.0 | 110A:0407 | 2009年 | |
英偉達 | Jetson Nano B01(詳情) | 4 | 3.0 | 2019年 | ||
英偉達 | Jetson Xavier NX(詳細資料) | 4 | 3.0 | 2020年 | ||
菲吉特 | HUB0003_0 | 7 | 2.0 | 1A40:0201 | 2017年 | |
飛利浦 | 346B1C 超寬 34 吋曲面顯示器 | 4 | 3.0 | 05E3:0610 | 2019年 | |
可插拔 | USB3-HUB7BC | 7 | 3.0 | 2109:0813 | 2015年 | |
可插拔 | USB3-HUB7C(僅適用於2個充電埠) | 7 | 3.0 | 2109:0813 | 2015年 | |
可插拔 | USBC-HUB7BC(適用於 6/7 端口,不適用於最右邊) | 7 | 3.0 | 2109:0817 | 2021年 | |
可插拔 | USB3-HUB10-C2(僅適用於2個充電埠) | 10 | 3.0 | 2014年 | ||
港口公司 | NWUSB01 | 4 | 1.1 | 0451:1446 | 1999年 | 2003年 |
樹莓派 | B+、2B、3B(見下文) | 4 | 2.0 | 2011年 | ||
樹莓派 | 3B+(見下文) | 4 | 2.0 | 0424:2514 | 2018年 | |
樹莓派 | 4B(見下文) | 4 | 3.0 | 2109:3431 | 2019年 | |
樹莓派 | 5(見下文) | 4 | 3.0 | 1d6b:0002 | 2023年 | |
瑞薩 | uPD720202 PCIe USB 3.0 主機控制器 | 2 | 3.0 | 2013年 | ||
羅斯威爾 | RHUB-210 | 4 | 2.0 | 0409:005A | 2011年 | 2014年 |
羅森威 | RSH-518C(註) | 7 | 3.0 | 2109:0817 | 2021年 | |
羅森威 | RSH-A10(參見) | 10 | 3.0 | 0bda:0411 | 2020年 | |
羅森威 | RSH-A13(警告) | 13 | 3.1 | 2109:2822 | 2021年 | |
羅森威 | RSH-A16(注意、警告) | 16 | 3.0 | 0bda:0411 | 2020年 | |
羅森威 | RSH-A104(僅限 USB2) | 4 | 3.1 | 2109:2822 | 2022年 | |
羅森威 | RSH-A107(又稱 ikuai A107-5) | 7 | 3.1 | 0bda:5411 | 2022年 | |
羅森威 | RSH-ST07C(僅4個) | 7 | 3.0 | 2109:2822 | 2023年 | |
三和供應 | USB-HUB14GPH | 4 | 1.1 | 2001年 | 2003年 | |
希捷 | Backup Plus 集線器 STEL8000100 | 2 | 3.0 | 0BC2:AB44 | 2016年 | |
西德工作室 | 重新終端 CM4104032 | 2 | 2.0 | 0424:2514 | 2021年 | |
星科技 | DKT30CSDHPD3 USB-C 旅行擴充塢 | 3 | 3.0 | 2109:2817 | 2018年 | |
星科技 | HB30A4AIB(警告) | 4 | 3.0 | 2109:2817 | 2018年 | |
蘇尼克斯 | SHB4200MA | 4 | 2.0 | 0409:0058 | 2006年 | 2009年 |
系統講座 | 速井USB2-HUB4X | 4 | 2.0 | 2007年 | ||
塔格斯 | PA095UZ | 2 | 2.0 | 2004年 | ||
塔格斯 | PAUH212/PAUH212U | 7 | 2.0 | 2004年 | 2009年 | |
德州儀器 | TUSB4041PAPEVM | 4 | 2.1 | 0451:8142 | 2015年 | |
優格齒輪 | MEGA4(適用於樹莓派 4B) | 4 | 3.0 | 2109:0817 | 2021年 | |
虛擬這裡 | USB3 4埠集線器(註) | 4 | 3.0 | 2024年 |
該表並不完整。如果您的集線器與uhubctl
配合使用,但上面未列出,請透過在https://github.com/mvp/uhubctl/issues 上開啟新問題來報告它,以便我們可以將其添加到支援的表中。在您的報告中,請提供準確的產品型號並添加uhubctl
的輸出,並測試 VBUS 是否支持,如常見問題中所述。
請注意,相當多的現代主機板都有內建的根集線器,支援此功能 - 您甚至可能不需要購買任何外部集線器。
如果您有 USB 3.0 集線器連接到 USB3 上游端口,它將被檢測為 2 個獨立的虛擬集線器:USB2 和 USB3,並且您的 USB 設備將根據其功能和連接速度連接到 USB2 或 USB3 虛擬集線器。若要控制此類集線器的電源,需要關閉/開啟USB2和 USB3 虛擬集線器的電源,以使電源關閉/開啟變更生效。 uhubctl
將嘗試自動執行此操作(除非您使用選項-e
停用此行為)。
不幸的是,雖然大多數集線器會切斷資料 USB 連接,但有些集線器可能仍然不會切斷到連接埠的 VBUS,這意味著連接的手機可能仍會繼續從uhubctl
斷電的連接埠充電。
該實用程式經過測試可以在 Linux(Ubuntu/Debian、Redhat/Fedora/CentOS、Arch Linux、Gentoo、openSUSE、Buildroot)、FreeBSD、NetBSD、SunOS 和 MacOS 上編譯和運行。
雖然uhubctl
在 Windows 上編譯,但 USB 電源切換在 Windows 上不起作用,因為libusb
使用winusb.sys
驅動程序,根據 Microsoft 的說法,該驅動程式不支援必要的 USB 控制請求。如果libusb
開始支援 Windows 上的不同驅動程序,此問題可能會解決。
請注意,強烈建議安裝pkg-config
(許多平台預設提供它)。
首先,您需要安裝庫libusb-1.0(版本1.0.12或更高版本,建議1.0.16或更高版本):
sudo apt-get install libusb-1.0-0-dev
sudo yum install libusb1-devel
sudo zypper install libusb-1_0-devel
brew install libusb
,或sudo port install libusb-devel
sudo pkgin install libusb1 gmake pkg-config
要取得 uhubctl 來源並編譯它:
git clone https://github.com/mvp/uhubctl
cd uhubctl
make
這應該會產生uhubctl
二進位。您可以使用以下命令將其安裝在系統中的/usr/sbin/uhubctl
中:
sudo make install
請注意,在某些作業系統(例如 FreeBSD/NetBSD)上,您需要使用gmake
來建置。
此外,在 MacOS 上,您可以使用 Homebrew Tap 一次性安裝uhubctl
以及所有必需的依賴項:
brew tap mvp/uhubctl https://github.com/mvp/uhubctl
brew install uhubctl
若要從 master 分支建置/安裝,請使用--HEAD
:
brew install uhubctl --HEAD
️ 在 Linux 上,使用sudo
或設定 USB 權限,如下所述!
列出所有支援的集線器:
uhubctl
您可以像這樣控制 USB 連接埠的電源:
uhubctl -a off -p 2
這表示在預設智慧集線器上運作並關閉連接埠 2 ( -p 2
) 上的電源( -a off
或-a 0
)。支援的操作包括off
/ on
/ cycle
/ toggle
(或0
/ 1
/ 2
/ 3
)。 cycle
意味著關閉電源,等待一段時間(可使用-d
配置)然後重新開啟。連接埠可以是逗號分隔的列表,並且可以使用-
表示範圍,例如2
、或2,4
、或2-5
、或1-2,5-8
。
️ 關閉內建 USB 連接埠可能會切斷您的鍵盤或滑鼠,因此請小心您要關閉的連接埠!
如果您連接了多個智慧型 USB 集線器,則應使用-l
(位置)參數選擇特定集線器進行控制。要查找中心位置,只需運行uhubctl
(不帶任何參數)即可。集線器位置類似於bx.yz
,其中b
是 USB 總線編號,而x
、 y
、 z
... 是鏈中所有集線器的連接埠號,從給定 USB 總線的根集線器開始。該位址是半穩定的 - 如果您將 USB 裝置拔出/重新插入(或關閉/打開)到同一實體 USB 端口,它不會改變(Linux 核心中也使用此方法)。
在 Linux 上,您應該配置udev
USB 權限(否則您必須使用sudo uhubctl
以 root 身份運行它)。
從 Linux Kernel 6.0 開始,有一個標準介面來開啟或關閉 USB 集線器端口, uhubctl
將嘗試使用它(而不是libusb
)來設定連接埠狀態。這就是為什麼 6.0+ 核心有附加規則的原因。在運行舊核心版本的系統上使用這些規則沒有什麼壞處。
要修復 USB 權限,請先執行sudo uhubctl
並記下您需要控制的集線器的所有vid:pid
。然後,將以下 udev 規則新增至檔案/etc/udev/rules.d/52-usb.rules
(將2001
替換為您的集線器供應商 ID,或完全刪除ATTR{idVendor}
過濾器以允許任何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""
請注意,對於 USB3 集線器,某些集線器對同一晶片的 USB2 和 USB3 組件使用不同的供應商 ID,並且兩者都需要權限才能使 uhubctl 正常工作。例如,對於 Raspberry Pi 4B,您需要新增以下 2 行(或刪除 idVendor 過濾器):
SUBSYSTEM=="usb", DRIVER=="usb", MODE="0666", ATTR{idVendor}=="2109"
SUBSYSTEM=="usb", DRIVER=="usb", MODE="0666", ATTR{idVendor}=="1d6b"
如果您不喜歡完全開放模式0666
,您可以按群組限制訪問,如下所示:
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""
然後將允許的使用者加入到dialout
群組:
sudo usermod -a -G dialout $USER
為了使您的udev
規則變更生效,請重新啟動或執行:
sudo udevadm trigger --attr-match=subsystem=usb
為了您的方便,這裡提供了可以立即使用的 udev 規則。
根據 USB 2.0 規範,USB 集線器可以宣傳無電源切換、成組(同時所有連接埠)電源切換或每個連接埠(單獨)電源切換。請注意,預設情況下uhubctl
將僅檢測支援每個連接埠電源切換的 USB 集線器(但您可以使用選項-f
強制它嘗試在不支援的集線器上運行)。您可以使用sudo lsusb -v
來尋找您的硬體支援哪種電源切換:
無電源切換:
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
聯動電源切換:
wHubCharacteristic 0x0008
Ganged power switching
Per-port overcurrent protection
每埠電源切換:
wHubCharacteristic 0x0009
Per-port power switching
Per-port overcurrent protection
uhubctl
是否支援我的 USB 集線器?sudo uhubctl
。如果您的集線器未列出,則表示不受支援。或者,您可以執行sudo lsusb -v
並檢查Per-port power switching
- 如果您在 lsusb 輸出中看不到此類行,則不支援集線器。uhubctl
關閉該連接埠的電源,並檢查手機是否停止充電、USB 燈是否停止閃爍或 USB 風扇是否停止旋轉。如果 VBUS 沒有關閉,則您的集線器製造商不包含實際切斷電源的電路。此類集線器仍可切斷 USB 資料連接,但無法關閉電源,我們不考慮此支援的裝置。關閉 USB 連接埠電源後,udev 不會收到任何事件,因此它會保留裝置檔案。但是,嘗試存取裝置檔案將導致 IO 錯誤。
這是 Linux 核心問題,對於 Linux 核心 6.0 或更高版本的系統,自 uhubctl 2.5.0 起已修復。
如果您仍在使用 Linux 5.x 或更早版本,則可以使用此解決方法來解決此問題:
sudo uhubctl -a off -l ${location} -p ${port}
sudo udevadm trigger --action=remove /sys/bus/usb/devices/${location}.${port}/
裝置檔案將被 udev 刪除,但 USB 裝置在lsusb
中仍然可見。請注意,只有在該連接埠上偵測到裝置時,路徑/sys/bus/usb/devices/${location}.${port}
才會存在。當您重新開啟電源時,裝置應該正確重新列舉(無需再次呼叫udevadm
)。
核心中的一些裝置驅動程式對 USB 裝置關閉感到驚訝,並自動嘗試重新開啟它的電源。
這是 Linux 核心問題,對於 Linux 核心 6.0 或更高版本的系統,自 uhubctl 2.5.0 起已修復。
如果您仍在使用 Linux 5.x 或更早版本:
您可以使用選項-r N
來修復此問題,其中 N 是 10 到 1000 之間的某個數字 - uhubctl
將嘗試快速連續多次關閉電源,並且它應該會抑制這種情況。
在使用uhubctl
關閉電源之前停用相關裝置的 USB 授權應該會有所幫助:
echo 0 > sudo tee /sys/bus/usb/devices/${location}.${port}/authorized
如果您的設備是 USB 大容量存儲,在調用uhubctl
之前調用udisksctl
也應該有所幫助:
sudo udisksctl power-off --block-device /dev/disk/...`
sudo uhubctl -a off ...
許多集線器製造商使用基本的 4 埠 USB 晶片來建構 USB 集線器。例如,為了製作 7 埠集線器,他們以菊花鏈方式連接兩個 4 埠集線器 - 1 個連接埠因菊花鏈而丟失,因此使其成為 4+4-1=7 埠集線器。同樣,10 埠集線器可以建構為以菊花鏈方式連接在一起的 3 個 4 埠集線器,從而提供 4+4+4-2=10 個可用連接埠。
請注意,您絕對不應該嘗試更改用於將內部集線器菊花鏈在一起的連接埠的電源狀態。這樣做會混淆內部集線器電路並導致不可預測的行為。
這是Raspberry Pi硬體設計的限制。作為解決方法,您可以從上面支援的列表中購買任何外部 USB 集線器,將其連接到 Raspberry Pi 的任何 USB 端口,並獨立控制其端口的電源。此外,還有專為 Raspberry Pi 設計的支援集線器,例如 UUGear MEGA4。
作為參考,支援的 Raspberry Pi 型號具有以下內部 USB 拓撲:
單集線器1-1
,連接埠 2-5 聯動,全部由連接埠2
控制:
uhubctl -l 1-1 -p 2 -a 0
嘗試控制連接埠3
、 4
、 5
不會執行任何操作。連接埠1
控制乙太網路+WiFi 的電源。
主集線器1-1
,所有 4 個連接埠連動,全部由連接埠2
控制(也關閉輔助集線器連接埠)。連接埠1
連接下面的集線器1-1.1
,連接埠2
和3
在外面接線,連接埠4
不接線。
uhubctl -l 1-1 -p 2 -a 0
輔助集線器1-1.1
(菊花鏈至主集線器):3 個端口,端口1
用於乙太網路+WiFi,端口2
和3
用於外部接線。
️ 如果您的 VL805 韌體早於00137ad
(使用sudo rpi-eeprom-update
檢查),您必須更新韌體才能使電源開關在 RPi 4B 上工作。
USB2 hub 1
, 1 端口,僅連接下面的 hub 1-1
。
USB2 集線器1-1
個連接埠連動,雙至 USB3 集線器2
如下:
uhubctl -l 1-1 -a 0
USB3 集線器2
個連接埠連動,雙至 USB2 集線器1-1
以上:
uhubctl -l 2 -a 0
USB2 集線器3
、1 個連接埠、OTG 控制器。不支援電源切換。
Raspberry Pi 5 有兩個 USB2 連接埠和兩個 USB3 連接埠(總共 4 個)。這些連接埠以非常奇怪的配置連接到 4 個不同的 USB 集線器1
、 2
、 3
、 4
(但根據作業系統和硬體版本,感興趣的集線器可以是2
、 3
、 4
、 5
)。如果 USB3 裝置連接到藍色插座,則會在 USB3 集線器2
或4
上偵測到該裝置。如果 USB2 裝置連接到任何插座或 USB3 裝置連接到黑色插座,則會在 USB2 集線器1
或3
上偵測到該裝置。無論 USB2/USB3 連接類型為何,藍色插座始終為連接埠1
,黑色插座始終為連接埠2
。
4 個 USB 板載集線器中的每一個都宣稱支援每個連接埠電源切換,但事實並非如此。實際上,儘管屬於 4 個不同的邏輯 USB 集線器,但 Raspberry Pi 5 的所有 4 個連接埠都組合在一起為一組。
要關閉 VBUS 電源,必須透過以下方式在所有板載集線器和連接埠上停用它:
uhubctl -l 2 -a 0
uhubctl -l 4 -a 0
若要將其重新開啟:
uhubctl -l 2 -a 1
uhubctl -l 4 -a 1
請注意,只有當所有連接埠都關閉時,VBUS 電源才會關閉 - 啟用任何單一連接埠都會使所有 4 個連接埠恢復 VBUS。
專案 | 描述 |
---|---|
摩斯電碼 USB 燈 | 使用 USB 燈以莫斯電碼閃爍訊息 |
網路攝影機 USB 燈 | 網路攝影機開啟/關閉時開啟/關閉 LED |
電影院燈箱 | 從 iOS Home 應用程式開啟/關閉 Cinema Lightbox |
建置狀態燈 | 在 10 分鐘內建立建置狀態燈 |
建築燈 | GitLab/GitHub 專案建置狀態為綠/紅燈 |
氣象站 | 結冰時重置氣象站 |
系統QMOD | 必要時重置蜂窩調製解調器 |
煙霧感測器 | 基於Raspberry Pi的煙霧感測器電源重置 |
可怕的集群 | 根據需要開啟/關閉 Raspberry Pi 叢集節點的電源 |
理想的音樂伺服器 | 關閉未使用的 USB 連接埠以提高音訊品質 |
無幻象負載的 USB 驅動器 | 僅在需要時為 USB 驅動器供電以節省電量 |
磁碟機資料恢復 | 從故障的 USB 硬碟恢復數據 |
控制 3D 列印機的電源 | 用於 USB 電源控制的 OctoPrint Web 插件 |
適用於 Raspberry Pi 的 USB 風扇 | 控制USB風扇以避免Raspberry Pi過熱 |
樹莓派重啟路由器 | 如果網路不工作,自動重新啟動路由器 |
語音控制USB燈 | 使用 Siri 和 Raspberry Pi 語音控制 USB 燈 |
控制USB LED燈條 | 控制USB供電的LED燈帶 |
用樹莓派釀啤酒 | 使用 Raspberry Pi 的自動化啤酒釀造系統 |
網路攝影機直播標誌 | 使用網路攝影機時自動點亮標誌 |
自己做PPPS | 在 USB 集線器中焊接電線以支援 uhubctl |
開源 PPPS 中心 | uhubctl 相容集線器的開源硬體項目 |
uhubctl 的 Python 包裝器 | 將 uhubctl 與 Python 結合使用的模組 |
實驗室網格 | 在硬體上測試嵌入式 Linux 的框架 |
版權所有 (C) 2009-2024 瓦迪姆·米哈伊洛夫
該文件可以根據 GNU 通用公共授權版本 2 的條款和條件進行分發。