Ubuntu 22.04 中通过外接显示器出现视频和音频问题

Ubuntu 22.04 中通过外接显示器出现视频和音频问题

我有一个相当棘手的设置,在其中我遇到了各种各样的问题。

设置:

  • 配备 NVIDIA GeForce RTX 3050 笔记本 GPU 的戴尔 Inspiron 16 7610 笔记本电脑
  • 戴尔 WD19TBS 扩展坞
  • 屏幕 1:华为 MateView HSN-CBA 28 英寸 4k(内置音响系统)
  • 屏幕2:三星U28E590D 4k

我面临的问题:

  1. 当显示屏关闭时,锁屏始终为黑色并且无法恢复。
  2. 工作一段时间后,华为闪烁,变黑一秒钟,显示器上的声音消失
  3. 连接第二台显示器后,其中一台不工作
  4. 登录屏幕位于内置显示器上

答案1

我总共花了大约 50 个小时,因为在修复一个问题时,另一个问题又出现了。

我将逐步描述我为解决所有这些问题所做的工作,并希望我的知识可以为其他人节省一些时间。

注意:我们每完成一步都会重新启动。我强烈建议您这样做,否则某些设置可能会发生冲突。

  1. 禁用 Wayland

    • sudo vim /etc/gdm3/custom.conf
    • WaylandEnable=false
    • 重启
  2. 将 NVIDIA 驱动程序更新至520.56.06

    • 你可以找到很多教程来教你如何操作
    • 重启
  3. 修改 grub

    • sudo vim /etc/default/grub
    • 更新/附加GRUB_CMDLINE_LINUXGRUB_CMDLINE_LINUX="intel_iommu=off nouveau.modeset=0 nouveau.blacklist=1"
    • sudo update-grub
    • 重启
  4. 接下来,解决其中一个屏幕保持黑屏且无法打开的问题。但这也可能会影响音频。

    对我来说,解决方法是为华为屏幕添加自定义频率。默认情况下,它只有 60hz,但我认为当你有两个 4k 显示器时,可能没有足够的带宽来传递这样的频率。

    调整

     vim ~/.xprofile 
    

    设置以下内容:

     #!/bin/sh
     xrandr --newmode "3840x2560_30.00"  406.50  3840 4112 4520 5200  2560 2563 2573 2606 -hsync +vsync
     xrandr --addmode DP-1-2 3840x2560_30.00
    

    如何设置自定义分辨率?

  5. 然后

    • 将三星屏幕设置为 1280x1024
    • 禁用内置屏幕
    • 将华为设置为相同的低分辨率。想法是将两个屏幕都设置为低分辨率。
    • 应用更改
    • 将华为设置为新增加的分辨率(3840x2560 30Hz)。
    • 应用更改。
    • 然后将三星的分辨率提高到 4k
    • 应用更改
  6. 一个小问题,你的登录屏幕仍然在内置显示器上

     sudo cp ~/.config/monitors.xml ~gdm/.config/monitors.xml
     sudo chown gdm:gdm ~gdm/.config/monitors.xml
    

    在 18.04 中是否可以使登录屏幕出现在外部显示器上?

  7. 最后,刷新你的pulseaudio。 (如果未安装,请通过 进行安装sudo apt install pulseaudio

    • mv ~/.config/pulse ~/.config/old_pulse
    • 重启

PS:万一接线也起作用。我通过 DisplayPort 电缆将两个屏幕连接到底座。华为在 HDMI 方面表现非常糟糕。底座通过 Thunderbolt 4 连接到笔记本电脑。
笔记本电脑的电源也通过底座供电。

PPS:如果仍然有黑屏问题,请尝试删除 nvidia 服务并重新启动。

sudo systemctl stop nvidia-suspend.service
sudo systemctl stop nvidia-hibernate.service
sudo systemctl stop nvidia-resume.service

sudo systemctl disable nvidia-suspend.service
sudo systemctl disable nvidia-hibernate.service
sudo systemctl disable nvidia-resume.service

sudo rm /lib/systemd/system-sleep/nvidia
  

相关内容