DisplayPort no longer functional (on ANY Linux)

Ladies, Gentleman, Others, I have seen Hell. I have been fighting with this system for two months, and I have done absolutely everything I can think of. I have never had this level of problems, and I’ve used Linux exclusively for a decade. Here’s… just everything I can think of.

The current situation: My Displayport monitor does not function, and my Nvidia graphics card is stuck drawing only 45W of power. These issues are not present on Windows. They are present on Endeavour (w/ and w/o nvidia drivers), Nobera-Live, Endeavour-Live (w/ and w/o nvidia drivers), and only the Displayport issue is present on PopOS-Live.

Attempting to connect the DP monitor results in constant connect/disconnect/reconnect issues, rendering the system unusable. When disabled the system correctly detects that the DP monitor is a copy of the HDMI monitor (1080p resolution on both). Connecting limits the output to 1024x768, but no video ever shows on the screen regardless of resolution set.

Output of

inxi -FAZ --no-host | eos-sendlog

https://0x0.st/Hg-E.txt

Issue initially presented as only being the inability to draw more than 45W of power. A brief summary of previous troubleshooting for that:

  • Installed and tested every major version of nvidia-dkms, and nvidia-open-dkms, respectively.
  • Installed and tested every major kernel release in conjunction with the above, no resolution.
  • Installed Windows. (Eewww.) Confirmed issue is present on Windows.
  • Dell provided a motherboard replacement. Temporarily resolved issue.
  • Dell provided a battery replacement. Resolved issue on Windows, but introduced overheating issue.
  • Dell provided a heatsink replacement. Resolved issue on Windows. Initially also resolved on Linux… sort of.

Following this Linux worked correctly, seemingly at random. Multiple reboots would be necessary, but eventually the system would boot up and everything would be completely functional. This lasted ~3 days. Now, my system is again stuck at 45W of power (as detailed by nvidia-smi). Additionally, my displayport external monitor no longer functions. I have been completely unable to fix this on Linux. Windows works perfectly, and the motherboard, heatsink and battery have all been replaced… so I’m utterly baffled.

Current TS:

  • Reinstalled and tested the following kernel/nvidia driver combinations:
  1. 6.1.67.1-lts/nvidia-dkms 545.29.06 *** Previously working configuration
  2. 6.6.6/nvidia-dkms 545.29.06
  3. 6.6.7/nvidia-dkms 545.29.06
  4. 6.6.7/nvidia-dkms 525.85.05
  5. 6.6.6/nvidia-dkms 525.85.05
  6. 6.1.67.1-lts/nvidia-dkms 525.85.05
  7. 6.3.67.1-lts/nouveau
    Kernels installed via AKM. Nvidia packages via:
sudo downgrade nvidia-dkms nvidia-utils nvidia-settings lib32-nvidia-utils libxnvctrl nvidia-prime

The journal has errors, the most relevant looking ones appearing to be: (Possible I’m missing something, I’m no expert)

Dec 19 04:56:27 zeta-gehenna kernel: i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful

and

Dec 19 04:53:05 zeta-gehenna (udev-worker)[642]: nvidia: Process '/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidiactl c $(grep nvidia-frontend /proc/devices | cut -d \  -f 1) 255'' failed with exit code 1.
Dec 19 04:53:05 zeta-gehenna (udev-worker)[639]: nvidia_modeset: Process '/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-modeset c $(grep nvidia-frontend /proc/devices | cut -d \  -f 1) 254'' failed with exit code 1.
Dec 19 04:53:05 zeta-gehenna (udev-worker)[642]: nvidia: Process '/usr/bin/bash -c 'for i in $(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \  -f 4); do /usr/bin/mknod -Z -m 666 /dev/nvidia${i} c $(grep nvidia-frontend /proc/devices | cut -d \  -f 1) ${i}; done'' failed with exit code 1.

Output of uname -r:

[zeta@zeta-gehenna ~]$ uname -r
6.1.67-1-lts

Output of nvidia-smi:

Tue Dec 19 06:01:48 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06              Driver Version: 545.29.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3070 ...    On  | 00000000:01:00.0  On |                  N/A |
| N/A   39C    P8              15W /  45W |     35MiB /  8192MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      4246      G   /usr/lib/Xorg                                14MiB |
+---------------------------------------------------------------------------------------+

Output of xrandr (w/ DP connected):

Screen 0: minimum 16 x 16, current 5504 x 1600, maximum 32767 x 32767
HDMI-A-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
   1920x1080     59.96*+
   1440x1080     59.99  
   1400x1050     59.98  
   1280x1024     59.89  
   1280x960      59.94  
   1152x864      59.96  
   1024x768      59.92  
   800x600       59.86  
   640x480       59.38  
   320x240       59.52  
   1680x1050     59.95  
   1440x900      59.89  
   1280x800      59.81  
   1152x720      59.97  
   960x600       59.63  
   928x580       59.88  
   800x500       59.50  
   768x480       59.90  
   720x480       59.71  
   640x400       59.95  
   320x200       58.96  
   1600x900      59.95  
   1368x768      59.88  
   1280x720      59.86  
   1024x576      59.90  
   864x486       59.92  
   720x400       59.55  
   640x350       59.77  
eDP-2 connected 2560x1600+1920+0 (normal left inverted right x axis y axis) 340mm x 220mm
   2560x1600    164.97*+
   2048x1536    164.95  
   1920x1440    164.87  
   1600x1200    164.88  
   1440x1080    164.85  
   1400x1050    164.77  
   1280x1024    164.81  
   1280x960     164.80  
   1152x864     164.77  
   1024x768     164.99  
   800x600      164.72  
   640x480      164.26  
   320x240      163.69  
   1920x1200    164.87  
   1680x1050    164.82  
   1440x900     164.74  
   1280x800     164.81  
   1152x720     164.77  
   960x600      164.72  
   928x580      164.51  
   800x500      164.66  
   768x480      164.47  
   720x480      164.67  
   640x400      164.67  
   320x200      161.83  
   2560x1440    164.90  
   2048x1152    164.90  
   1920x1080    164.83  
   1600x900     164.77  
   1368x768     164.98  
   1280x720     164.71  
   1024x576     164.94  
   864x486      164.71  
   720x400      164.23  
   640x350      164.46  
DP-1 connected 1024x768+4480+0 (normal left inverted right x axis y axis) 600mm x 340mm
   1024x768      59.92*+
   800x600       59.86  
   640x480       59.38  
   320x240       59.52  
   960x600       59.63  
   928x580       59.88  
   800x500       59.50  
   768x480       59.90  
   720x480       59.71  
   640x400       59.95  
   320x200       58.96  
   1024x576      59.90  
   864x486       59.92  
   720x400       59.55  
   640x350       59.77  

Note: Internal monitor, which is also driven by the Intel GPU, works perfectly fine provided the DP Monitor is not connected.

The full (mostly unedited) journal from my most recent boot (the one I’m writing this on) can be found here: https://pastebin.com/XN1yqS5s

  • Attempted blacklisting i915 with i915.modeset=0 – fixes journal entry errors but screen remains unusable, and NvidiaGPU is still stuck at 45W.
  • Wayland/X11 doesn’t make a difference.
  • Confirmed that nvidia-powerd.service is enabled and running, no resolution.
  • Tried several different Live USBs (via Ventoy). None have resolution for DP port monitor, but PopOS actually gives me a correctly detected 115-140W of power to the NvidiaGPU.
  • Booted Windows again. (shudders in disgust). Windows works correctly on all fronts. DP Monitor works perfectly, Nvidia GPU correctly utilizes power.
  • Upgraded BIOS from 1.20.0 to 1.21.0, no resolution.
  • Downgraded BIOS from 1.21.0 to 1.14.0, no resolution. Fewer issues in journal though.
  • Removed all nvidia-related soft w/ ‘pacman -Rnsc’, reinstalled. No resolution.
  • Confirmed monitor in question does work correctly in Linux if connected via HDMI (Nvidia driven) port.
  • Removed docking station from mix, no effect on issue one way or another. (Docking station is not driving display any display, to be clear – it’s essentially a glorified USB hub.)
  • Googled absolutely everything I can think of, including ArchWiki, these forums, Arch Forums (they’re not as nice over there I’ve noticed), Reddit. Haven’t found anything that seems to fit.
  • Changed BIOS options to drive external displays with Nvidia GPU. No resolution. Does break things even harder though.
  • In conjunction with the above used
envycontrol -s nvidia
envycontrol --dm sddm

No resolution. Set back to Hybrid mode to get back to a bootable system.

I’ve… I’ve done literally everything I can think of to do. At this point I’d suspect another hardware issue, but the motherboard (and therefore the CPU/GPU, given how Dell replaces), heatsink and battery are all brand new. And Windows works perfectly. I don’t understand how I can suddenly just… start having issues. Only on Linux. If I wanted to go with Windows, I could have a working system, but I’ve been a Linux Only soul for a decade now, and frankly it just doesn’t make sense.

Any ideas or help would be appreciated. I’m fresh out. (Edit: Apologies for the edits. I keep remembering things I forgot to mention, and TS I’ve tried. It’s been a long two months.)

Have you tried the zen kernel?

3 Likes

Until you said that, no. I had never before used it and completely forgot it existed. So naturally I immediately installed it to test it out.

I am both elated and infuriated to report that after 6 hours troubleshooting this tonight, and over 200 troubleshooting the PC over the last two months, my system now appears to be just working. No rebooting three times to get everything functional. Nvidia has stably worked every single time I’ve rebooted (six times now) without reverting back to being limited to 45W. My DP monitor has worked every single time. My Wifi is even faster.

I didn’t even know I had a Wifi speed problem, but running speedtest to confirm basic functionality is now giving me 200mbps higher connection than I was getting previously. If this is Zen I’m considering Buddhism.

Thank you. Seriously. (Edit: …And now to go find where to donate to these lovely maintainers.)

3 Likes

So I spoke too soon. Being super paranoid, I wanted to test it one more time. So I ran ‘shutdown -h now’. Upon booting back up, I’m back to the exact same issues even on the Zen Kernel.

[zeta@zeta-gehenna ~]$ uname -r
6.6.6-zen1-1-zen

I’m… also even more confused. How can something work once, and on every reboot, only to stop when I do a soft shutdown?

Glad you got this sorted. Thank you for providing the detailed information. It is what allowed me to instruct you to try that kernel as your information shows you had only tried LTS and driver variations. As an aside it is always good practice to keep more than one kernel installed in case of a regression that may cause an issue. Personally I keep three. Linux, LTS, and ZEN. Your hardware is not that old and does not really need the LTS which is primarily geared toward older hardware. Enjoy your time here! lastly, don’t wait so long next time to ask for help. There are plenty of helpful folks around here.

DO a hard reboot after kernel installs. And whatever follow up procedure is necessary for how you are booting be it systemd or grub.

In the way of FIY, the current linux(-zen) kernel is 6.6.7.
Perhaps your mirror(s) is (are) out of sync?
You could update your mirrors and update your system.

Understood. Re-ran sudo reinstall-kernels and shutdown -h now, same issue still presenting. There was a rather lengthy traceback for something failing, but I didn’t grab my camera in time to document it, so I’ll do that on the next go around.

I didn’t realise that, thank you for pointing it out! I re-ran mirror syncing from the welcome app to make sure I didn’t mess a command, but I don’t seem to have anything I can update still – any chance I did something wrong?

################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################
# With:       reflector --verbose -c US --protocol https --sort rate --latest 20 --download-timeout 5 --threads 5
# When:       2023-12-19 13:43:48 UTC
# From:       https://archlinux.org/mirrors/status/json/
# Retrieved:  2023-12-19 13:43:27 UTC
# Last Check: 2023-12-19 13:34:01 UTC

## United States
Server = https://nocix.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://mnvoip.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://southfront.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch

## United States
Server = https://codingflyboy.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://nnenix.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://forksystems.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://coresite.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://mirror.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://ridgewireless.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch

## United States
Server = https://mirror.lty.me/archlinux/$repo/os/$arch

## United States
Server = https://irltoolkit.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://ziply.mm.fcix.net/archlinux/$repo/os/$arch

## United States
Server = https://mirrors.bjg.at/arch/$repo/os/$arch

## United States
Server = https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch

## United States
Server = https://america.mirror.pkgbuild.com/$repo/os/$arch

## United States
Server = https://mirror.zackmyers.io/archlinux/$repo/os/$arch

## United States
Server = https://archmirror1.octyl.net/$repo/os/$arch

## United States
Server = https://mirrors.vectair.net/archlinux/$repo/os/$arch
# Results of mirror ranking at (UTC) 12/19/2023 01:44:20 PM:
# The following fields are shown for each mirror:
#   mirror:          The mirror address
#   update-level:    Ordinal number of the latest update (larger is newer)
#   fetch-time:      Measures the speed of the mirror (smaller is faster)
#
# mirror                                                             update-level  fetch-time
# ~~~~~~                                                             ~~~~~~~~~~~~  ~~~~~~~~~~
# https://mirrors.gigenet.com/endeavouros/repo/$repo/$arch           2076          0.152962
# https://ca.gate.endeavouros.com/endeavouros/repo/$repo/$arch       2076          0.492667
# https://de.freedif.org/EndeavourOS/repo/$repo/$arch                2076          0.621248
# https://mirror.moson.org/endeavouros/repo/$repo/$arch              2076          0.623442
# https://mirror.alpix.eu/endeavouros/repo/$repo/$arch               2076          0.645780
# https://endeavour.remi.lu/repo/$repo/$arch                         2076          0.699510
# https://mirror.jingk.ai/endeavouros/repo/$repo/$arch               2076          0.785261
# https://mirrors.nxtgen.com/endeavouros-mirror/repo/$repo/$arch     2076          0.913674
# https://mirror.freedif.org/EndeavourOS/repo/$repo/$arch            2076          0.953661
# https://md.mirrors.hacktegic.com/endeavouros/repo/$repo/$arch      2076          1.013504
# https://ftp.belnet.be/mirror/endeavouros/repo/$repo/$arch          2076          1.099355
# https://mirror.archlinux.tw/EndeavourOS/repo/$repo/$arch           2076          1.119463
# https://ftp.acc.umu.se/mirror/endeavouros/repo/$repo/$arch         2076          1.148891
# https://mirror.funami.tech/endeavouros/repo/$repo/$arch            2076          1.191062
# https://mirror.albony.xyz/endeavouros/repo/$repo/$arch             2076          1.215690
# https://fosszone.csd.auth.gr/endeavouros/repo/$repo/$arch          2076          1.249062
# https://mirrors.jlu.edu.cn/endeavouros/repo/$repo/$arch            2076          1.417193
# https://mirrors.tuna.tsinghua.edu.cn/endeavouros/repo/$repo/$arch  2076          1.608369
# https://fastmirror.pp.ua/endeavouros/repo/$repo/$arch              2076          2.452675
# https://mirror.sjtu.edu.cn/endeavouros/repo/$repo/$arch            2076          4.488054

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# EndeavourOS mirrorlist, ranked by eos-rankmirrors at 12/19/2023 07:44:20 AM.
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Server = https://mirrors.gigenet.com/endeavouros/repo/$repo/$arch
Server = https://ca.gate.endeavouros.com/endeavouros/repo/$repo/$arch
Server = https://de.freedif.org/EndeavourOS/repo/$repo/$arch
Server = https://mirror.moson.org/endeavouros/repo/$repo/$arch
Server = https://mirror.alpix.eu/endeavouros/repo/$repo/$arch
Server = https://endeavour.remi.lu/repo/$repo/$arch
Server = https://mirror.jingk.ai/endeavouros/repo/$repo/$arch
Server = https://mirrors.nxtgen.com/endeavouros-mirror/repo/$repo/$arch
Server = https://mirror.freedif.org/EndeavourOS/repo/$repo/$arch
Server = https://md.mirrors.hacktegic.com/endeavouros/repo/$repo/$arch
Server = https://ftp.belnet.be/mirror/endeavouros/repo/$repo/$arch
Server = https://mirror.archlinux.tw/EndeavourOS/repo/$repo/$arch
Server = https://ftp.acc.umu.se/mirror/endeavouros/repo/$repo/$arch
Server = https://mirror.funami.tech/endeavouros/repo/$repo/$arch
Server = https://mirror.albony.xyz/endeavouros/repo/$repo/$arch
Server = https://fosszone.csd.auth.gr/endeavouros/repo/$repo/$arch
Server = https://mirrors.jlu.edu.cn/endeavouros/repo/$repo/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/endeavouros/repo/$repo/$arch
Server = https://fastmirror.pp.ua/endeavouros/repo/$repo/$arch
Server = https://mirror.sjtu.edu.cn/endeavouros/repo/$repo/$arch
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

==> Moving old EndeavourOS mirrorlist to /etc/pacman.d/endeavouros-mirrorlist.2023.12.19-07.44.20.
==> Writing new ranked EndeavourOS mirrorlist to /etc/pacman.d/endeavouros-mirrorlist.
Root Password: 
==> New mirrorlist saved.
[zeta@zeta-gehenna ~]$ sudo pacman -Syuu
[sudo] password for zeta: 
:: Synchronizing package databases...
 endeavouros is up to date
 core is up to date
 extra is up to date
 multilib is up to date
:: Starting full system upgrade...
 there is nothing to do

AKM also doesn’t have anything for me in that regard, sadly :frowning:.

No need to pass -u twice.

Run sudo pacman -Syu or at the most sudo pacman -Syyu.

-u, --sysupgrade

Upgrades all packages that are out-of-date. Each currently-installed package will be examined and upgraded if a newer package exists. A report of all packages to upgrade will be presented, and the operation will not proceed without user confirmation. Dependencies are automatically resolved at this level and will be installed/upgraded if necessary.

Pass this option twice to enable package downgrades; in this case, pacman will select sync packages whose versions do not match with the local versions. This can be useful when the user switches from a testing repository to a stable one.

-y, --refresh

Download a fresh copy of the master package database from the server(s) defined in pacman.conf(5). This should typically be used each time you use –sysupgrade or -u. Passing two –refresh or -y flags will force a refresh of all package databases, even if they appear to be up-to-date.

:eye: man pacman

nods ~ Got it! Still nothing, sadly :(. AKM also doesn’t list the zen kernel with 6.6.7. Do you think it’s worth a full wipe at this stage? I’m hesitant to do it again given it’d be my fourth time in two months, but definitely willing if you think it’d be helpful.

[zeta@zeta-gehenna ~]$ sudo pacman -Syyu
[sudo] password for zeta: 
:: Synchronizing package databases...
 endeavouros                   26.0 KiB   115 KiB/s 00:00 [-------------------------------] 100%
 core                         129.1 KiB   322 KiB/s 00:00 [-------------------------------] 100%
 extra                          8.3 MiB  9.38 MiB/s 00:01 [-------------------------------] 100%
 multilib                     140.0 KiB   396 KiB/s 00:00 [-------------------------------] 100%
:: Starting full system upgrade...
 there is nothing to do
[zeta@zeta-gehenna ~]$ 

Don’t do this. Either just use yay or sudo pacman -Syu

Regarding that crash/trackback on shutdown, took pictures of that as the system shut down. (Google informs me that Linux has no way of recording shutdown issues in the system journal, and I’ve never needed to check before tbh). I’m unsure if these would be helpful, but in case they are, they’re available here.

Normally I just use yay -u, but given that pebcak indicated that I should be seeing the zen 6.6.7 kernel, and that -Syyu would be the upper maximum, I’d hoped to make sure it wasn’t an issue with what I was doing.

Passing -yy should not be necessary as part of a “routine” upgrade command.

However, in rare cases, it can come in handy to make sure that the local package databases really match those on the mirrors specified in the mirrorlist.

No harm is being done, except that it generates a bit of extra traffic on the mirrors :blush:

So that output is not OS or kernel related. Looks like you are trying to do something with imgur and it is being denied which is halting your system.

Uh… I’m sorry, but I genuinely don’t understand what you’re talking about with that. I took pictures of what happens when I pass shutdown -h now and posted them to imgur manually. I don’t talk to Imgur on my system at all, barring literally this single time I posted the pictures.

lol sorry my end I have imgur blocked where i am.

Not sure what you mean…

BTW, you could do a test and add this line as first into your /etc/pacman.d/mirrorlist:

Server = https://mirror.moson.org/arch/$repo/os/$arch

and then update your system with

sudo pacman -Syyu

Needs more information:

Device-3: DisplayLink Dell D3100 Docking Station driver: N/A type: USB
  Display: wayland server: X.org v: 1.21.1.10 with: Xwayland v: 23.2.3
    compositor: kwin_wayland driver: X: loaded: modesetting,nvidia dri: iris
    gpu: i915,nvidia resolution: 1: 1920x1080 2: 2560x1600

Are you connecting the monitor to the pc via a dock connected via USB? If so you need drivers for the dock as it works as an extension of the graphics hardware. Also have you tried using not using wayland. Wayland and nvidia are not vey friendly i am afraid.

Also poke around similar threads such as this:
AUR (en) - displaylink (archlinux.org)

Little more digging…

Your BIOS is not up to date, the latest is tagged critical.

Type: Laptop System: Dell product: Dell G16 7620 v: N/A
   serial: <superuser required>
 Mobo: Dell model: 085T23 v: A02 serial: <superuser required> UEFI: Dell
   v: 1.14.0 date: 12/09/2022

There are several other updates you may have not made as well:

1 Like