Score:0

Dock multiple monitors Ubuntu 20.04 LTS

br flag

I have an Asus ROG Strix laptop, specifications below.

Standing screen display size    ‎15.6 Inches
Screen Resolution   ‎1920 x 1080 pixels
Max Screen Resolution   ‎1920 x 1080 Pixels
Processor   ‎4.4 GHz amd_ryzen_7_5800x
RAM     ‎16 GB DDR4
Memory Speed    ‎3200 MHz
Hard Drive  ‎1 TB SSD
Graphics Coprocessor    ‎NVIDIA GeForce RTX 3050 Ti
Chipset Brand   ‎NVIDIA
Card Description    ‎GeForce RTX 3050 Ti
Graphics Card Ram Size  ‎4 GB
Wireless Type   ‎Bluetooth, 802.11ax
Number of USB 3.0 Ports     ‎4

Other Technical Details
Brand   ‎ASUS
Series  ‎ROG Strix G15
Item model number   ‎G513QE-ES76
Hardware Platform   ‎PC
Operating System    ‎Windows 10 Home
Item Weight     ‎4.63 pounds
Product Dimensions  ‎13.94 x 10.2 x 1.02 inches
Item Dimensions LxWxH   ‎13.94 x 10.2 x 1.02 inches
Color   ‎Eclipse Gray
Processor Brand     ‎AMD
Processor Count     ‎8
Computer Memory Type    ‎DDR4 SDRAM
Flash Memory Size   ‎1
Hard Drive Interface    ‎Solid State
Voltage     ‎20 Volts
Batteries   ‎1 Lithium ion batteries required. (included) 

I have nvidia-driver-470 as my main graphic driver, it works for dual-screen monitors. I tried docking to extend to another monitor, but the third monitor is not detected. The dock is connected via USB-C 3.2 port. I tested this configuration in Windows 10, and all three monitors are connected with this setting. This somehow does not for Ubuntu 20.04 and this Asus laptop. Please let me know if there is anything else I can do to connect another monitor.

$ lsusb 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 8087:0029 Intel Corp. 
Bus 003 Device 003: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 003 Device 002: ID 046d:0990 Logitech, Inc. QuickCam Pro 9000
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
Bus 001 Device 003: ID 046d:c318 Logitech, Inc. Illuminated Keyboard
Bus 001 Device 007: ID 2109:0103 VIA Labs, Inc. USB 2.0 Hub
Bus 001 Device 006: ID 1a40:0801 Terminus Technology Inc. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

If both monitors are connected to the USB-C dock, then xrandr outputs as follows.

$ xrandr

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) 344mm x 194mm
   1920x1080    300.01*+  60.00 +  59.97    59.96    59.93  
   1680x1050    300.01    84.94    74.89    69.88    59.95    59.88  
   1600x1024     60.17  
   1400x1050     85.00    74.76    70.00    59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024    300.01    85.02    75.02    60.02  
   1440x900     300.01    59.89  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1360x768      59.80    59.96  
   1280x800     300.01    59.99    59.97    59.81    59.91  
   1152x864     100.00    85.06    85.00    75.00    75.00    70.00    60.00  
   1280x720     300.01    60.00    59.99    59.86    59.74  
   1024x768     300.01    85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600      300.01    85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       85.02    74.96    69.88    60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       85.08    74.76    70.06    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480      300.01    85.09    60.00    85.01    72.81    75.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98    85.08  
   576x432      100.11    85.15    85.09    75.00    75.00    70.00    60.06  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27  
HDMI-1 disconnected (normal left inverted right x axis y axis)
$ uname -r 
5.12.17-051217-generic

There are related questions here, here, here, especially here, and here (specifically to Asus) but it doesn't solve my problem.

Notes:

  1. This works on Windows and Mac, so this must be an isolated Linux problem.
  2. Ubuntu 21.04 also does not work.

Updates:

  1. Upgrade to Ubuntu 21.04, it's much more friendly than Ubuntu 20.04 with Wayland enabled.

lsusb with the dock:

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 003 Device 002: ID 046d:c318 Logitech, Inc. Illuminated Keyboard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 002 Device 005: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 002 Device 003: ID 05e3:0620 Genesys Logic, Inc. USB3.0 Hub
Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc. USB3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
Bus 001 Device 003: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 001 Device 007: ID 1e4e:0898 Cubeternet Billboard Device
Bus 001 Device 006: ID 0572:1703 Conexant Systems (Rockwell), Inc. ASUS USB Audio
Bus 001 Device 004: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb without the dock:

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 003 Device 002: ID 046d:c318 Logitech, Inc. Illuminated Keyboard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
Bus 001 Device 003: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
galexite avatar
pk flag
Is this dock a Thunderbolt dock?
br flag
@galexite It seems to be, I got it from [here](https://www.amazon.com/gp/product/B08B3NV1BY/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1). I'm sure I have a USB 3.2 Gen 2 Type C to match, according to the specs [here](https://www.amazon.com/gp/product/B093TZMNFR/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1).
galexite avatar
pk flag
That is not a Thunderbolt dock, it is just a normal USB Type-C dock.
galexite avatar
pk flag
Ubuntu doesn't seem to support the chipset used in your dock for display output. You might have more luck with a newer Linux kernel.
galexite avatar
pk flag
Does it work on a Ubuntu 21.04, or the Ubuntu 21.10 beta live system (i.e. on a USB or DVD, in the Try Ubuntu mode)?
br flag
I have not tried 21.04, but it's probably worth a try. My kernel is `5.12.17-051217-generic` (I added to the original question). Out of curiosity, how do you know whether a chipset in a dock is supported or not? And how do you know the chipset spec?
mondotofu avatar
cn flag
According to the link you posted "This USB-C Docking Station With three high-definition video output ports: HDMI+HDMI+DP, but only the Windows system supports the Triple display, "
br flag
@mondotofu Thanks for pointing it out. They also said "Supported Systems: Windows 10, 8, 7, Vista, XP, Mac OS X 10.6 or later, Linux 2.6.14 or Later", which is why I bought it to give it a try. And to my surprise, I was able to configure a Mac with triple displays using 2 different USB-Cs (one with this dock, and another one to HDMI to another monitor)...
mondotofu avatar
cn flag
It's surprising to me how well Mac OS/X handles these USB-C Docking stations. Ubuntu is a little slower to respond to switching to multiple displays. I've had good luck with DisplayLink Software on both Mac & Linux. Have you tried installing it?
mondotofu avatar
cn flag
Are you using Wayland **ps -ef | grep wayland** That is the future of display architecture in Ubuntu. You may have to log out and log back in using that cog icon on the bottom right to pick Wayland.
br flag
@mondotofu Wayland is being used in 21.04, and probably 22 LTS as well. 20.04 doesn't have Wayland just yet, unfortunately. I will try to give 21.04 a shot.
br flag
Confirmed 21.04 does not work. It can recognize the second monitor, but not the third one.
br flag
@mondotofu I found a guide on how to enable Wayland [here](https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-20-04-desktop), but isn't Wayland an advanced version of Xorg? As far as I understand, Wayland is a display manager, whereas Nvidia is a graphic driver. Are they compatible and working well with each other?
mondotofu avatar
cn flag
Wayland is an architecture for communicating the signals to the displays. It gets X.org, which is really old and has memory leaks, out of the way.
Score:0
br flag

My answer may not be absolutely helpful for everyone, but I was able to succeed. I bought another dock.

  1. Uninstall Ubuntu 20.04, install 21.04 (thanks to a comment of @galexite and @mondotofu -- see above)
  2. Enable Wayland.
  3. Install nvidia drivers (a lot of people will say not to, but I did it because I have tried many options, they just don't work for my case). nvidia-470 was my choice.
  4. Install Displaylink (yes, even though as of this moment the release is for 20.04)
sudo apt update
sudo apt install dkms
sudo apt install libdrm-dev
sudo ./displaylink-driver-5.3.0.xx.run
  1. Enable thunderbolt (I don't have Thunderbolt -- you're lucky if you have one): I don't know why but my dock (through USB-C Type C Gen 3.2) suddenly works after this.

p/s: I did run sudo update-initramfs -u several times. Overall, my impression is to have the light form of Ubuntu 21.04, and enable Wayland, and then install Display, and then Nvidia. Then things will just click by themselves.

  1. Do not use lightdm (?)
  2. Install nvidia-driver-470
sudo prime-select query
nvidia
$ sudo grep nvidia /etc/modprobe.d/* /lib/modprobe.d/* 
/etc/modprobe.d/blacklist-framebuffer.conf:blacklist nvidiafb
/lib/modprobe.d/nvidia-kms.conf:# This file was generated by nvidia-prime
/lib/modprobe.d/nvidia-kms.conf:options nvidia-drm modeset=1
$ cat /etc/gdm3/custom.conf
# GDM configuration storage
#
# See /usr/share/gdm/gdm.schemas for a list of available options.

[daemon]
AutomaticLoginEnable=true
AutomaticLogin=anhvt89

# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false

# Enabling automatic login

# Enabling timed login
#  TimedLoginEnable = true
#  TimedLogin = user1
#  TimedLoginDelay = 10

[security]

[xdmcp]

[chooser]

[debug]
# Uncomment the line below to turn on debugging
# More verbose logs
# Additionally lets the X server dump core if it crashes
#Enable=true
  1. ~~Note: /etc/X11/xorg.conf does not exist before and still work just fine.~~ Do NOT save to /etc/X11/xorg.conf. This breaks the display config (don't know why but absolutely certain this is the culprit).
$ cat /etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 470.57.01

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL U2414H"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce RTX 3050 Ti Laptop GPU"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0.2"
    Option         "metamodes" "nvidia-auto-select +3840+0 {rotation=left}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Some helpful references along the way:

here -- important

here here here here here here here here

Proof

graphic drivers

echo $XDG_SESSION_TYPE 
x11

p/s:

  1. I was able to configure 3 screens with 5.11.0-37-generic kernel, but when it updated to 5.11.0-38-generic then the problem return again.
  2. There is a potential opportunity to update nvidia after updating the kernel, as described here. For my case, it would be
dpkg-reconfigure nvidia-driver-470 > /var/log/dpkg-reconfigure-nvidia.log 2>&1
  1. Perhaps will have to manually update DKMS modules, as described here.
  2. In order to not unnecessarily break the system, I decide to fix an older kernel as default instead of keeping updates. How to do it is explained here

sudo cp /etc/default/grub /etc/default/grub.bak

then edit /etc/default/grub as

# GRUB_DEFAULT=0
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.11.0-37-generic"

then sudo update-grub

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.