0

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
kensaii
  • 206
  • 4
  • 14
  • Is this dock a Thunderbolt dock? – galexite Oct 07 '21 at 20:35
  • @galexite It seems to be, I got it from here. I'm sure I have a USB 3.2 Gen 2 Type C to match, according to the specs here. – kensaii Oct 07 '21 at 20:52
  • That is not a Thunderbolt dock, it is just a normal USB Type-C dock. – galexite Oct 07 '21 at 21:04
  • 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 Oct 07 '21 at 21:05
  • 1
    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)? – galexite Oct 07 '21 at 21:06
  • 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? – kensaii Oct 07 '21 at 21:17
  • 1
    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, " – mondotofu Oct 08 '21 at 00:58
  • @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)... – kensaii Oct 08 '21 at 02:51
  • 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 Oct 08 '21 at 02:58
  • 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. – mondotofu Oct 08 '21 at 03:00
  • @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. – kensaii Oct 08 '21 at 03:31
  • Confirmed 21.04 does not work. It can recognize the second monitor, but not the third one. – kensaii Oct 08 '21 at 03:59
  • @mondotofu I found a guide on how to enable Wayland here, 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? – kensaii Oct 08 '21 at 04:20
  • 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. – mondotofu Oct 08 '21 at 12:53

1 Answers1

1

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

kensaii
  • 206
  • 4
  • 14