Sample Header Ad - 728x90

built-in monitor recognized when using nvidia driver, but not when using i915?

1 vote
3 answers
360 views
**TL;DR: I'm using Pop 20.10. I'm on a Dell G5 5590 w/ RTX 2070mq (working well) and an i7-9750H. I have a 144hz built-in screen. It works when using nvidia proprietary drivers, but does not work (nor even appear in xrandr) when the nvidia card is disabled (i.e., using i915/integrated intel gpu instead).** In windows, I see the screen is 144hz when using nvidia, can be manually set to 64hz if desired. If i disabled the nvidia card, I see the screen running at 64hz automatically. In Pop, it auto-defaults to using the nvidia drivers for my machine. This works perfectly, but has poor battery life characteristics. In this mode, xrandr shows only a 144hz setting for the built in screen, which matches what I see in windows in the nvidia control panel: when booted with nvidia When I try to switch to 'integrated' and reboot, I can only get video through my external monitors connected via usb-c. DP-0, which xrandr shows as the internal screen when using nvidia, doesn't even show up in xrandr when the nvidia is disabled. xrandr with nvidia disabled: when booted with integrated I've [filed an issue with i915](https://gitlab.freedesktop.org/drm/intel/-/issues/3307) , but have seen no response. I've tried a number of things, [all documented](https://github.com/pop-os/system76-power/issues/221) , including 1915.modeset=0 and attempts at xorg.conf files, but nothing seems successful--all shots in the dark for me, though, as this isn't an area I am terribly knowledgeable in. My guess is that the EDID (or perhaps the DisplayPort Configuration Data/DPCD?) is 'incorrect', similar to the issue referenced [here](https://bbs.archlinux.org/viewtopic.php?id=230541&p=2) . But I'm pretty over my head trying to debug this on my own, and I'm a bit at a loss of where to go next. I would also guess, and have in the past, that the iGPU just can't handle the 144hz. But: 1) if that's the case, wouldn't I still see it in xrandr? 2) 144hz of 1080p should be well within the range of what the iGPU is capable of, in theory, but if it won't do that in windows, maybe this is a wrong assumption In any case, what can I try to get my internal monitor working (perferably at 60~hz, I'd like to maximize battery life) with my intel UHD 630 iGPU? I would guess that I could add /usr/share/X11/xorg.conf.d/20-intel.conf with a 60hz modeline, but that hasn't seemed to work for me. I've tried many variations, but I just don't see my monitor. (You can see me giving an example of what conf file I have tried [here](https://github.com/pop-os/system76-power/issues/221#issuecomment-787119673)) . What logs should I look at here? Here's my boot logs for an 'integrated' boot, grepped for modeset: https://pastebin.ubuntu.com/p/zXsjcpMdMY/ . No mention of DP-0 whatsoever... However, when I grep through a an nvidia boot, I also see that modeset doesn't ever mention a DP-0 then, either; instead, in an nvidia boot only, I see this line:
Apr 07 16:29:28 pop-os /usr/libexec/gdm-x-session: (II) NVIDIA(0): Setting mode "DP-0: nvidia-auto-select @1920x1080 +2160+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}"
Based on what I'm reading [here](https://download.nvidia.com/XFree86/Linux-x86_64/100.14.23/README/chapter-19.html#:~:text=The%20NVIDIA%2DAuto%2DSelect%20Mode&text=The%20%22nvidia%2Dauto%2Dselect%22%20mode%20is%20intended%20to,detailed%20timings%20from%20the%20EDID.) when I look up nvidia-auto-select, it seems the nvidia driver is told to manage DP-0, and then does, successfully. However, since I don't see DP-0 mentioned at all in xrandr when not booting with nvidia, I'm unable to debug that issue further than this without figuring out _where_ knowledge of DP-0 comes from in the system, _how_ it gets to be told to use nvidia-auto-select, etc., so that I could instead start telling DP-0 to get utilized when the nvidia card/driver are not active. I think the parent process running is [this code](https://gitlab.gnome.org/GNOME/gdm/blob/master/daemon/gdm-x-session.c) , but I'm not able to get much value from that, as I'm just not a C developer and don't know much about how this kind of project is organized. If some other logs would be helpful, let me know.
Asked by Kyle Baker (189 rep)
Apr 7, 2021, 01:16 PM
Last activity: Apr 10, 2023, 07:54 PM