Lenovo Thinkpad T15p with GTX 1650 and latest Nvidia drivers installed (xG05 , version 470.129.06). External monitor is not recognized in: xrandr --listproviders
Provider 0: id: 0x1f3; cap: 0x1 (Source Output); crtcs: 0; outputs: 0; associated providers: 1; name: NVIDIA-0
Provider 1: id: 0x49; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 4; outputs: 6; associated providers: 1; name: modesetting
Also “lspci | grep VGA” gives:
00:02.0 VGA compatible controller: Intel Corporation TigerLake-H GT1 [UHD Graphics] (rev 01)
Nvidia bug report attached:
nvidia-bug-report.log.gz (1.8 MB)
Also no indication in nvidia-settings. Any help/hint would be greatly appreciated.
In fact no entry for HDMI appears in xrandr.
Please check for a bios update first.
Please post the output of
sudo cat /sys/module/nvidia_drm/parameters/modeset
thanks for the response. Not sure what u mean by bios update or at least i don’t see such an option in my bios menu. The output of “sudo cat /sys/module/nvidia_drm/parameters/modeset” is simply: Y
Please remove
Option “UseDisplayDevice” “none”
from your xorg.conf, it disables all outputs of the nvidia gpu.
Done (as also the bios update - i figured it out in the meantime). No changes in behavior however. I attach the new Nvidia bug report.
nvidia-bug-report.log.gz (1.8 MB)
Your config is slightly messy, having two xorg configs. Please delete both
/etc/X11/xorg.conf
/etc/X11/xorg.conf.d/90-nvidia.conf
and instead create /etc/X11/xorg.conf.d/10-nvidia-primary.conf
Section "OutputClass"
Identifier "Nvidia Prime"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "Yes"
EndSection
Thanks. Apart from shrinking the fonts in the main login screen it had no discernible effect (updated
nvidia-bug-report.log.gz (1.8 MB)
You had 96 dpi set, now it’s using default 75dpi.
Option “DPI” “96 x 96”
You can add that to nvidia-primary file inside the output class to get the previous font size.
Please run
grep nvidia /etc/modprobe.d/* /lib/modprobe.d/*
to find a file containing
options nvidia-drm modeset=1
and change 1 to 0
then run
sudo dracut -f
and reboot. Then check if the hdmi gets available.
thanks for the quick response. Unfortunately still nothing. Here is the confirmation of the update of nvidia-drm:
/etc/modprobe.d/09-nvidia-modprobe-pm-G05.conf:options nvidia NVreg_DynamicPowerManagement=0x01
/etc/modprobe.d/50-blacklist.conf:blacklist nvidiafb
/etc/modprobe.d/50-nvidia-default.conf:options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=484 NVreg_DeviceFileMode=0660
/etc/modprobe.d/50-nvidia-default.conf:options nvidia-drm modeset=0
/etc/modprobe.d/50-nvidia-default.conf:install nvidia PATH=$PATH:/bin:/usr/bin; if /sbin/modprobe --ignore-install nvidia; then if /sbin/modprobe nvidia_uvm; then if [ ! -c /dev/nvidia-uvm ]; then mknod -m 660 /dev/nvidia-uvm c $(cat /proc/devices | while read major device; do if [ "$device" == "nvidia-uvm" ]; then echo $major; break; fi ; done) 0; chown :video /dev/nvidia-uvm; fi; if [ ! -c /dev/nvidia-uvm-tools ]; then mknod -m 660 /dev/nvidia-uvm-tools c $(cat /proc/devices | while read major device; do if [ "$device" == "nvidia-uvm" ]; then echo $major; break; fi ; done) 1; chown :video /dev/nvidia-uvm-tools; fi; fi; if [ ! -c /dev/nvidiactl ]; then mknod -m 660 /dev/nvidiactl c 195 255; chown :video /dev/nvidiactl; fi; devid=-1; for dev in $(ls -d /sys/bus/pci/devices/*); do vendorid=$(cat $dev/vendor); if [ "$vendorid" == "0x10de" ]; then class=$(cat $dev/class); classid=${class%%00}; if [ "$classid" == "0x0300" -o "$classid" == "0x0302" ]; then devid=$((devid+1)); if [ ! -c /dev/nvidia${devid} ]; then mknod -m 660 /dev/nvidia${devid} c 195 ${devid}; chown :video /dev/nvidia${devid}; fi; fi; fi; done; /sbin/modprobe nvidia_drm; if [ ! -c /dev/nvidia-modeset ]; then mknod -m 660 /dev/nvidia-modeset c 195 254; chown :video /dev/nvidia-modeset; fi; fi
grep: /lib/modprobe.d/*: No such file or directory
nvidia-bug-report.log.gz (1.8 MB)
I’m beginning to suspect the nvidia gpu doesn’t have any outputs. Does it work with nouveau?
I have never tried it as I went directly to the nvidia drivers. Is there an easy way to test this without uninstalling/re-installing? Thanks
You could remove the blacklist for nouveau and instead create one for the nvidia module, runninf dracut -f afterwards.
could not get it to work with blacklisting and took the hard way. Long story short, no HDMI with nouveau either (assuming I installed it properly). Upon re-installation of nvidia I notice a difference in " sudo cat /sys/module/nvidia_drm/parameters/modeset" which now gives: N
nvidia-bug-report.log.gz (1.8 MB)
Then I guess the hdmi port is not connected to the nvidia gpu and/or broken. Did you check if it works with Windows?
yes, it worked fine with Windows (i cannot re-test as i’ve completely removed windows now). It is definitely a Linux+Nvidia problem.
Not necessarily, without knowing which gpu the hdmi port is connected to. Might also be a Linux+Intel or a Lenovo/Bios/Linux issue.
No it’s my fault. Despite horrible experiences with nvidia drivers in linux 3 years ago, I decided to give it a go again. Things have not changed. Poor software which even when you manage to make it work has the worst power management imaginable.
Notebooks are different, sometimes work like a charm, sometimes not at all, unrelated to the price tag sticking on it.
What concerns me the most is that even nouveau doesn’t detect the hdmi port at all.
If you’re willing to spend some more time on this, you could provide a trace from nouveau:
Switch to nouveau, then add kernel parameter
nouveau.debug=debug,VBIOS=trace
Reboot with X disabled by running
sudo systemctl set-default multi-user.target
(or setting the kernel cmdline systemd.unit=multi-user.target
)
Afterwards, log in on text console, and create the log
sudo dmesg >dmesg.txt
re-enable X:
sudo systemctl set-default graphical.target
sudo systemctl start display-manager (or reboot)
and upload dmesg.txt