Summary
Two monitors daisy chained to a port replicator via DisplayPort are not recognized as output via USB Type-C interface using Kernel 5.8.0-1 in OpenSuse Tumbleweed. I've tested various combination (single Displayport, HDMI-Port) and the only thing that works is when I plug in the monitor directly to a HDMI output on my monitor.
Setup
OS: OpenSuse Tumbleweed
Kernel: 5.8.0-1-default
Hardware:
Sorry for the German sites. I was unable to find localized English product pages. Seems like these things are only marketed in Germany.
Details
I have my Lifebook connected via the one and only USB Type-C port to the "recommended" Port Replicator. Connected to this is my mouse, keyboard, audio and even ethernet. All works fine. Additionally, I have my two monitors daisy chained (so one monitor connected to the other, and that one connected to the port replicator) via DisplayPort. I have activated DP1.2 in the monitors settings. I tried all different combinations how I can plug in the monitor with the few monitor settings available and nothing works. The only thing that does work is directly plugging in the monitor to my laptop. But since I only have one HDMI (and one VGA port) this isn't a really good solution for two monitors.
What have I tried
Besides the stuff I described above, I tried to contact the official support, which didn't help much ("We don't support Linux!"). You can read it here. To recap, I thought it may be that the cable/USB Type-C port does not support video output. I asked and after a while support told me that indeed the laptops USB-C port does not support video output. BUT then one day I got to work, plugged in the USB-C cable into my laptop and before I was able to plug in the HDMI-cable both monitors awoke and turned on. It suddenly worked flawlessly. That was until I left for a meeting without my laptop and left plugged in. When I came back everything went to sleep mode but now the monitors didn't woke up no matter what I tried. Back to the HDMI cable it was.
I am now sure that the support doesn't know what he/she was talking about and this indeed can work, because how else should it have worked suddenly?
Since then Tumbleweed had some kernel updates and general updates and I do believe that something changed and back then some settings were just right for it to work. Besides updates, I changed only one thing and that is to load the kernel module "typec_displayport", which wasn't loaded at boot for some reasons.
Further, I looked at the following sources/solutions with no luck:
- Linux Mint - Not detecting monitor connected via USB-C to HDMI hub
- USB C → DisplayPort Adapter support
- https://askubuntu.com/questions/1179492/usb-c-to-displayport-not-recognized-on-ubuntu-18-04
At this point I have no further idea what I can do.
Question
Is there any configuration option that I missed? I can't find many information about the TYPEC_DP_ALTMODE driver in the linux kernel. I assume that the USB-C port does not automatically configure itself to use DP_Altmode. Is there a way to force this?
Additional Information
Some additional informations for you guys/girls that may help you more
- lsmod output of typec:
x@y:~> sudo lsmod | grep typec
typec_ucsi 40960 1 ucsi_acpi
typec_displayport 16384 0
typec 53248 2 typec_displayport,typec_ucsi
- kernel config:
x@x:~> cat /boot/config-5.8.0-1-default | grep TYPEC
CONFIG_TYPEC=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_RT1711H=m
CONFIG_TYPEC_FUSB302=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_DP_ALTMODE=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
CONFIG_CROS_EC_TYPEC=m
- xrandr output (DP-1 and DP-2 are the HDMI and VGA output of my laptop. EDP-1 is the built-in one)
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 276mm x 156mm
1920x1080 60.00*+ 59.97 59.96 59.93
1680x1050 59.95 59.88
1400x1050 59.98
1600x900 59.99 59.94 59.95 59.82
1280x1024 60.02
1400x900 59.96 59.88
1280x960 60.00
1440x810 60.00 59.97
1368x768 59.88 59.85
1280x800 59.99 59.97 59.81 59.91
1280x720 60.00 59.99 59.86 59.74
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
1024x576 59.95 59.96 59.90 59.82
960x600 59.93 60.00
960x540 59.96 59.99 59.63 59.82
800x600 60.00 60.32 56.25
840x525 60.01 59.88
864x486 59.92 59.57
700x525 59.98
800x450 59.95 59.82
640x512 60.02
700x450 59.96 59.88
640x480 60.00 59.94
720x405 59.51 58.99
684x384 59.88 59.85
640x400 59.88 59.98
640x360 59.86 59.83 59.84 59.32
512x384 60.00
512x288 60.00 59.92
480x270 59.63 59.82
400x300 60.32 56.34
432x243 59.92 59.57
320x240 60.05
360x202 59.51 59.13
320x180 59.84 59.32
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
- lsusb -t
x@x:~> sudo lsusb -v -t
/: 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 38, If 0, Class=Hub, Driver=hub/4p, 5000M
ID 04b4:6500 Cypress Semiconductor Corp.
|__ Port 1: Dev 39, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
|__ Port 3: Dev 40, If 0, Class=Hub, Driver=hub/4p, 5000M
ID 04b4:6500 Cypress Semiconductor Corp.
/: 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 20, If 0, Class=Hub, Driver=hub/4p, 480M
ID 04b4:6502 Cypress Semiconductor Corp. CY4609
|__ Port 3: Dev 22, If 0, Class=Hub, Driver=hub/4p, 480M
ID 04b4:6502 Cypress Semiconductor Corp. CY4609
|__ Port 4: Dev 26, If 0, Class=Audio, Driver=snd-usb-audio, 480M
ID 04c5:1571 Fujitsu, Ltd
|__ Port 4: Dev 26, If 3, Class=Human Interface Device, Driver=usbhid, 480M
ID 04c5:1571 Fujitsu, Ltd
|__ Port 4: Dev 26, If 1, Class=Audio, Driver=snd-usb-audio, 480M
ID 04c5:1571 Fujitsu, Ltd
|__ Port 4: Dev 26, If 2, Class=Audio, Driver=snd-usb-audio, 480M
ID 04c5:1571 Fujitsu, Ltd
|__ Port 2: Dev 25, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
ID 046d:c328 Logitech, Inc. Corded Keyboard K280e
|__ Port 2: Dev 25, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
ID 046d:c328 Logitech, Inc. Corded Keyboard K280e
|__ Port 1: Dev 24, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500]
|__ Port 4: Dev 23, If 0, Class=, Driver=, 12M
ID 04b4:5217 Cypress Semiconductor Corp.
|__ Port 4: Dev 23, If 1, Class=Human Interface Device, Driver=usbhid, 12M
ID 04b4:5217 Cypress Semiconductor Corp.
|__ Port 7: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
ID 04f2:b564 Chicony Electronics Co., Ltd
|__ Port 7: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
ID 04f2:b564 Chicony Electronics Co., Ltd
|__ Port 8: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 12M
ID 056a:50cc Wacom Co., Ltd
|__ Port 8: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
ID 056a:50cc Wacom Co., Ltd
|__ Port 10: Dev 8, If 0, Class=Wireless, Driver=btusb, 12M
ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
|__ Port 10: Dev 8, If 1, Class=Wireless, Driver=btusb, 12M
ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)