Ubuntu 22.04.2 LTS搭配NVIDIA 525驱动的三显示器系统解锁后配置损坏问题求助
各位好,我最近被三显示器的配置问题折腾得够呛,想请教下有没有遇到过类似情况的朋友能给点思路。
我的系统是Ubuntu 22.04.2 LTS,显卡是NVIDIA GeForce RTX 3070 Ti,用的是NVIDIA 525闭源驱动包。现在的核心问题是:
- 当我离开电脑让显示器自动休眠黑屏后,按键盘解锁登录时,只有最小的那台显示器能正常工作,另外两台一直黑屏
- 登录进桌面后,桌面只显示在小显示器上,大的两台还是没反应;右键尝试恢复三屏配置完全没用,只能关机重启
- 重启后虽然三台显示器都亮了,但所有浏览器窗口都挤在小显示器上,我得手动把它们拖到大显示器上重新调整大小
另外还有个矛盾的点:截图显示“No proprietary drivers are in use”,但我确实装了闭源驱动。
之前我遇到过一个NVIDIA驱动和Ubuntu版本冲突的问题,修复之后这个黑屏问题的出现频率降低了,但还是会时不时发作。
还有个更奇怪的情况:有时候重启后登录界面三台显示器都正常,但登录进去后突然变成只有两台显示器;如果我尝试添加第三台显示器(显示1),点应用后并没有出现对应的三屏配置,反而还是只有两台,而且恢复后变成了另一种双屏配置。
折腾了快一周,重装Ubuntu好几次,现在系统能跑了,但完全不敢保证这个问题不会再出现,感觉最新的Ubuntu安装流程在我的硬件配置上肯定有什么严重的问题。
更新记录
更新#1
锁屏恢复后最常见的故障模式就是上述的双屏黑屏,但如果我关机再重启,似乎能恢复正常配置。
更新#2
现在我摸索出一个临时恢复方法:把黑屏的那台显示器的HDMI线拔下来再插回去,反复几次后情况会恢复,但我担心这么插拔会磨损接口,心里很纠结。
最头疼的是,我完全不知道该把bug报告提交给哪个环节,毕竟涉及的组件太多了。
更新#3
我怀疑这可能是三显示器系统初始化时出现的竞态条件。下面是一次成功激活第三台显示器时的syslog,我让GPT-4分析了一下,它的结论是:
日志条目显示系统正在进行一些GPU内部操作,看起来是在为不同的显示接口(DP-0、DP-1和HDMI-0)和分辨率(@1920x1080和@3840x2160)设置配置,这在多显示配置或需要特殊图形设置的系统中很常见。
日志还提供了一些设备信息(最大像素时钟、是否已连接等),还有RealtimeKit守护进程(rtkit-daemon)的条目,这是一个负责优先调度实时和对时间敏感进程的UNIX守护进程。
所以可以解释为:系统正在调整多台连接显示器的分辨率,而RealtimeKit守护进程正在以安全的方式帮助协调这些对时间敏感的操作。
相关syslog日志
Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (II) NVIDIA(0): Setting mode "DP-5: nvidia-auto-select @1920x1080 +3840+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}, DP-0: nvidia-auto-select @3840x2160 +3840+1080 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0}" Sep 10 11:03:32 jaboweryML rtkit-daemon[1699]: Supervising 5 threads of 3 processes of 1 users. Sep 10 11:03:32 jaboweryML rtkit-daemon[1699]: Successfully made thread 11777 of process 6294 owned by '1000' RT at priority 5. Sep 10 11:03:32 jaboweryML rtkit-daemon[1699]: Supervising 6 threads of 3 processes of 1 users. Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-0): connected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-0): Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-0): 600.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-1): connected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-1): Internal DisplayPort Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-1): 2670.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-2: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-2: Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-2: 165.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-3: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-3: Internal DisplayPort Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-3: 2670.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-4: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-4: Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-4: 165.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-5: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-5: Internal DisplayPort Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-5: 2670.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Tech Concepts 50S421 (DFP-6): connected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Tech Concepts 50S421 (DFP-6): Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Tech Concepts 50S421 (DFP-6): 165.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-0): connected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-0): Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-0): 600.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-1): connected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-1): Internal DisplayPort Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Philips PHL 276E8V (DFP-1): 2670.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-2: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-2: Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-2: 165.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-3: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-3: Internal DisplayPort Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-3: 2670.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-4: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-4: Internal TMDS Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-4: 165.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-5: disconnected Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-5: Internal DisplayPort Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): DFP-5: 2670.0 MHz maximum pixel clock Sep 10 11:03:32 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:33 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Tech Concepts 50S421 (DFP-6): connected Sep 10 11:03:33 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Tech Concepts 50S421 (DFP-6): Internal TMDS Sep 10 11:03:33 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Tech Concepts 50S421 (DFP-6): 165.0 MHz maximum pixel clock Sep 10 11:03:33 jaboweryML /usr/libexec/gdm-x-session[6371]: (--) NVIDIA(GPU-0): Sep 10 11:03:33 jaboweryML /usr/libexec/gdm-x-session[6371]: (II) NVIDIA(0): Setting mode "DP-5: nvidia-auto-select @1920x1080 +3840+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}, DP-0: nvidia-auto-select @3840x2160 +3840+1080 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0}, HDMI-0: nvidia-auto-select @

