Dell XPS 9570 with TB16 dock issues

I’m running a Dell XPS 9570 and have had very few issues thus far with Zorin. I purchased a Dell TB16 Dock to connect my laptop to a display and a bunch of devices with a single cable.

I have it all hooked up, and everything (LAN, USB, Audio) seems to be working but the display will appear and disappear for a few seconds, and then the secondary display will just turn off. If I close the lid of the laptop, the display will work, but with issues. Devices will randomly stop working (like my mouse) and the screen will randomly flicker.

I’m wondering if this is an issue caused by my install including the Nvidia drivers, or something else? Running just one display, or the other, and not both in ‘joined’ mode seems to work best, but the issues persist apparently at random when the external display is set as a single display.

I’m running Zorin OS 15.3. I have the Thunderbolt Security disabled in my BIOS. I have the 1080p model, and am connecting to an ASUS ROG 27" display.

I wonder if something like this would help? I’m not very familiar with modifying files like these.

This would be the first culprit I would check. You can try the Nouvea Drivers instead of the Nvidia Proprietary drivers or switch to a different set of Nvidia Drivers.
Check against your Nvidia card for the correct drivers, then avoid the Nvidia site and add them from the ppa, instead.

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

Where you replace (NUMBER) with the Driver Number you referenced based on your Graphics card model:

sudo apt install nvidia-driver-(NUMBER)

Thanks for the help! For the driver number, if the website recommends driver version 460.39, would my command look like

sudo apt install nvidia-driver-460.39

?

Try

sudo apt install nvidia-driver-460

I did this and rebooted but I’m still getting the intermittent flickering on the external display. I’ll try the Nouvea Drivers.

Okay, the issues persist even with the Nouvea Drivers.

I did some further testing, and when the external display is my only display, I get intermittent flickering. I tried increasing the refresh rate to 144hz and 120hz, and both just result in a loss of signal. It flickers, but works at 59.95hz. I’ve reduced it, just for the sake of troubleshooting to 23.97hz and there haven’t been any flickers.

I’m starting to think this might be some kind of bandwidth issue with the Thunderbolt port, and perhaps a BIOS update would help resolve the issues. However, thanks to Dell, the only way that I can seem to find to update the BIOS firmware on this laptop is through their software which is only available on Windows.

You want to keep it at 59.95hz.
The next thing I would check would be your Xorg drivers.

In terminal you can run

sudo nano /etc/default/grub

Tab down to the line that says "GRUB_CMDLINE_LINUX_DEFAULT=" and change it to reflect

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_psr=0"

Then hit ctrl+x to exit, hit the Y key to say yes and hit the enter key to save the current file as is. This is to disable the Panel Self Refresh.

The terminal will revert to normal - run

sudo apt-get install --reinstall xserver-xorg

Then reboot and test.

It's not just Dell that is a real pain about the BIOS updates, sadly...

I followed your suggestions, restarted, and upped the refresh rate back to 59.95hz and the flickering immediately returned.

I hate your Dell computer.

Can you paste the output of

uname -a

here?

One thing I forgot, in Settings, you can also adjust “dither” to see if that helps.

Linux XPS-15 5.4.0-65-generic #73~18.04.1-Ubuntu SMP Tue Jan 19 09:02:24 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

I can't seem to find a 'dither' setting in the screen display settings. Where do I find this?

Thanks on the kernel version print: You have the 5.4.0-65 kernel, so really, that is unlikely to be the issue- though it MAY be worthwhile to try a different kernel to find out for sure.

Disabling or enabling dither is usually done from within the Graphics Settings of your device. For example of using GEForce, from opening "Nvidia-Settings". I cannot be more specific, sorry, as I Never use Nvidia.
A method I found on a search is:

Quoting the original poster "Levell" from that thread below:

This is what worked on my Ubuntu 20.04 system with an Nvidia Quadro K2000M card and the recommended 390 driver:

sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf

Paste in the following:

Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection

Add Option "TripleBuffer" "TRUE"

sudo nano /usr/share/X11/xorg.conf.d/10-nvidia.conf

Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "TripleBuffer" "TRUE"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection

This may not be a Nvidia issue at all. I opened the only app on this system with Nvidia in the title, “Nvidia X Server Settings” and it allows me to swap between the integrated graphics and the dedicated GPU. I swapped to the Intel option (and restarted), and it seems somewhat stable at 59.95hz (only flickered once briefly after changing the refresh rate). I attempted a higher refresh rate (120hz) and the flickering returned.

Screenshot from 2021-02-22 21-23-11

I’m starting to think this is entirely Thunderbolt/Dock related, and that I’m going to have to reinstall a copy of Windows to attempt to update the BIOS firmware.

You might try it with Automatic Brightness turned off and see what happens.

I see some Screen Brightness and Dim Screen When Inactive options in the Power Settings, but I don’t see any Automatic Brightness settings. I don’t see anything in the Screen Display settings either. Am I looking in the wrong place?

I had another flickering event just now, and it resulted in the loss of my external mouse and keyboard, both of which are connected via the dock. They came back after a restart, but I have to conclude that the likelihood of this being a graphic/driver issue as opposed to a Thunderbolt/Dock issue is very slim.

From your Activities Overview, settings > Power > Dim Screen when inactive- switch to OFF.

Loss of external mouse and keyboard- These are partially governed by Xorg-input-all.
Which actually puts me back to Drivers. More specifically, xrandr HiDPI scaling.

Let's try following the assumption that xorg is involved, given this new Mouse and Keyboard clue.
Can you boot the machine while holding down the Left Shift Key to boot to Recovery Menu.
With the Recovery Menu up, tab down to "Drop to Prompt"
Hit Enter to start, then put in:

X -configure

cp /root/xorg.conf.new /etc/X11/xorg.conf

Exit and boot up normally.
Once booted, Open a terminal and run

sudo nano /etc/X11/xorg.conf.d/20-intel.conf

Paste the following into the new file

Section "Device"
Identifier "Intel Graphics"
Driver "intel"
EndSection

I’ll give this a shot. Is there any chance I can do this with the Nvidia drivers? I’ll try it first as you’ve stated, but ideally (for performance) it’d be nice to have access to the horsepower of the 1050ti.

It appears I cannot. Attempted multiple times to get to the Recovery Menu by holding Left Shift. Even tried while disconnected from the dock on the laptop itself.

EDIT: This now reminds me, that while attempting to boot to Windows on this machine after having installed Zorin, I had changed the Boot Sequence. The BIOS on this laptop is pretty strange (Dell Proprietary?) and to add a new Boot Option to the sequence, I have to manually point to a .efi file. I did this after blundering my boot sequence (and not even successfully accessing Windows, even via Dell's Boot Recovery and Factory Install, another issue entirely. Also two separate physical SSD's that I was swapping).

I pointed to the /EFI/ubuntu/grubx64.efi and that's how I'm currently booting to Zorin. If there's a different file (there are many here, which I'll list) I should be booting from, let me know.

  • /EFI/ubuntu/grubx64.efi
  • /EFI/ubuntu/shimx64.efi
  • /EFI/ubuntu/mmx64.efi
  • /EFI/BOOT/BOOTX64.efi
  • /EFI/BOOT/fbx64.efi