Usb

我的顯示器聲稱有 3 個 USB 3.0 埠,但是當顯示器通過 USB-C 連接時,它們為什麼不能正常工作?

  • January 22, 2020

我最近購買了一台 HP Z27 顯示器。它是 4K/UHD,支持通過 usb-c 輸入影片。

它還具有 3 個“下游 USB 3.0”埠,可在連接 USB-C 電纜時使用。

我將它連接到執行 debian 測試/bullseye的Lenovo X1 Carbon(第 7 代) 。它有 2 個 USB-A 埠,均標有:

USB超高速

它還有 2 個 USB-C 埠,均標有:

在此處輸入圖像描述

這是我目前的核心:

$ uname -a
Linux tak 5.4.0-2-amd64 #1 SMP Debian 5.4.8-1 (2020-01-05) x86_64 GNU/Linux

lspci建議筆記型電腦具有以下迅雷控制器(可能連接到 USB-C 埠):

Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)

這裡lsusb沒有插入任何東西:

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
   |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
       ID 06cb:00bd Synaptics, Inc.

…這是lsusb通過usb-c連接的顯示器,沒有任何東西插入顯示器下游的USB-A埠:

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
   |__ Port 2: Dev 6, If 0, Class=Hub, Driver=hub/2p, 480M
       ID 03f0:0169 HP, Inc 
       |__ Port 1: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M
           ID 03f0:0169 HP, Inc 
   |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
       ID 06cb:00bd Synaptics, Inc.

如果我將 USB 3.0 外置驅動器插入筆記型電腦的 USB-A 埠,它會出現在lsusb“3.0 集線器”下,速度為“5000M”

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
   |__ Port 4: Dev 11, If 0, Class=Mass Storage, Driver=uas, 5000M
       ID 0bc2:ab26 Seagate RSS LLC Backup Plus Slim Portable Drive 1 TB
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
   |__ Port 2: Dev 23, If 0, Class=Hub, Driver=hub/2p, 480M
       ID 03f0:0169 HP, Inc 
       |__ Port 1: Dev 24, If 0, Class=Hub, Driver=hub/4p, 480M
           ID 03f0:0169 HP, Inc 
   |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
       ID 06cb:00bd Synaptics, Inc.

但是,如果我將同一驅動器插入 Z27 下游“USB 3.0”埠之一,該驅動器不會出現在lsusb.

如果我避開 X1 Carbon 上的 USB-C 埠並通過 HDMI(用於影片)和 USB-A(筆記型電腦)連接到 USB-C(顯示器),則在插入顯示器時會檢測到外部驅動器並且速度為5000M。

$ lsusb -tv
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
   ID 1d6b:0003 Linux Foundation 3.0 root hub
   |__ Port 4: Dev 12, If 0, Class=Hub, Driver=hub/1p, 5000M
       ID 03f0:0620 HP, Inc 
       |__ Port 1: Dev 13, If 0, Class=Hub, Driver=hub/4p, 5000M
           ID 03f0:0620 HP, Inc 
           |__ Port 2: Dev 14, If 0, Class=Mass Storage, Driver=uas, 5000M
               ID 0bc2:ab26 Seagate RSS LLC Backup Plus Slim Portable Drive 1 TB
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
   ID 1d6b:0002 Linux Foundation 2.0 root hub
   |__ Port 4: Dev 28, If 0, Class=Hub, Driver=hub/2p, 480M
       ID 03f0:0169 HP, Inc 
       |__ Port 1: Dev 29, If 0, Class=Hub, Driver=hub/4p, 480M
           ID 03f0:0169 HP, Inc 
   |__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
       ID 04f2:b67d Chicony Electronics Co., Ltd 
   |__ Port 9: Dev 7, If 0, Class=Vendor Specific Class, Driver=, 12M
       ID 06cb:00bd Synaptics, Inc.

令人驚訝的是,在最後一個範例中,“HP Inc”設備出現在兩個 root_hub 下,即使顯示器只有一個 USB 連接到筆記型電腦。

一些筆記型電腦具有共享頻寬的 USB-C 和 USB-A 埠(和控制器)……除了使用所有可用頻寬的 USB 影片連接的限制之外。我似乎特別記得頻寬共享是第 6 代 Carbon 的一個問題?無論如何,如果您通過 USB-C 埠將影片發送到顯示器,則下游埠不起作用(全速)。

一旦你把事情分開,通過 HDMI 電纜發送影片,並將顯示器 USB 集線器連接到專用埠,那麼最後的設備就會被分配預期的頻寬(並且沒有影片信號會降低頻寬)。

惠普規格說“1 USB Type-C™(替代模式 DisplayPort™ 1.2,功率輸出高達 65 W)”,它指的是一個埠可以是 USB 3 集線器,也可以是 DisplayPort ……所以不能兩者兼有同時地。

當我這樣連接顯示器時:

  • 影片:HDMI(用於影片)
  • USB 數據:USB-A(筆記型電腦)到 USB-C(顯示器)

然後顯示器上的所有 USB-A 埠都作為 USB 3.0 工作,我的 USB 3.0 外置驅動器以 5000M 的速度連接。

當我通過 USB-C 連接顯示器進行影片/數據/電源傳輸時,顯示器上的所有 USB-A 埠都作為 USB 2.0 工作。

但是,我發現當顯示器通過 USB-C 連接時,螢幕菜單中有一個額外的選項:

  1. 3840x2160 60Hz + USB 2.0
  2. 3840x2160 30Hz + USB 3.0

(1) 為出廠預設設置。如果我將其更改為 (2),那麼當顯示器通過 USB-C 連接時,顯示器上的 USB-A 埠將充當 USB 3.0。

我將此顯示器用於辦公室工作,因此降至 30Hz 對我來說不是問題。對於希望同時執行 USB 3.0 和更高刷新率的人來說,這是需要注意的事情。

引用自:https://unix.stackexchange.com/questions/563393