电脑显示问题

#电脑医院#教程 共 592 字 约 2 分钟

个人情况描述

电脑显卡HDMI连接显示器正常,但是通过主板的VGA连接到显示器,呈现黑屏。使用sudo dmidecode -t baseboard查看主板信息为超微X11SPA-T。

用VGA显示的利与弊

利:不接在显卡上不会占用显卡资源,完全避免在训练的过程中出现modeset争抢问题。

弊:最高为1080P。

问题解决

  1. 重启按Delete进入BIOS界面,Advanced -> PCIe/PCI/PnP Configuration -> VGA Priority,设置为Onboard(优先主板自带VGA口输出)
  2. 断开HDMI线,接好VGA线。
  3. 经过一段时间的自动调整后顺利进入登录界面,登录账号。
  4. 登录后只剩下光标,其余全部黑屏,这时按Ctrl + Alt +F3进入TTY界面,输入账号和密码。
    1. 然后需要确认使用X11而不是Wayland显示。loginctl list-sessions看下面有没有c开头的,如图下图。图中是c2所以用loginctl show-session c2 -p Type确认,如果是会输出Type=x11确认X11

    2. 一般主页黑屏是因为硬件加速,尝试临时禁用(重启之后还是需要这样做一次):

Windows CMD
UTF-8|6 Lines|
# 创建GNOME环境配置,关闭硬件渲染
mkdir -p ~/.config/environment.d
echo "MUTTER_NO_HARDWARE_ACCEL=1" | tee ~/.config/environment.d/99-no-gpu-accel.conf

# 重启图形管理器
sudo systemctl restart gdm3
  1. 成功进入之后可以调节一下分辨率。使用xrandr查看支持的分辨率,我支持1920x1080 60.00(60.00是帧数),那就到Ubuntu设置里面调成该分辨率。

静态显示内容右侧有拖影

大概率是VGA线的问题,可能抗干扰不行(太细,没磁环等等)。

  1. 非常不幸,7.24训练中开屏幕出Bug,报错内容为:nvidia-modeset: ERROR: GPU:0 ERROR while waiting for GPU progress: 0x00000c67d:0。说明单纯改用VGA并没有完全配置对。让我们再试试豆包的解决方案(先这么做了,暂时不知道效果)。
  • 先改nvidia-gdm-fix.conf
Bash
UTF-8|1 Line|
sudo vi /etc/modprobe.d/nvidia-gdm-fix.conf
plaintext
UTF-8|4 Lines|
blacklist nouveau
options nouveau modeset=0
options nvidia-drm modeset=1 fbdev=0
options nvidia NVreg_GspPowerManagement=0

执行刷新:

Bash
UTF-8|1 Line|
sudo update-initramfs -u
  • GRUB只改一行,关闭PCIe省电(根治GPU休眠超时)
Bash
UTF-8|1 Line|
sudo nano /etc/default/grub
ini
UTF-8|1 Line|
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1 pci_aspm=off"

刷新grub

Bash
UTF-8|1 Line|
sudo update-grub
  • GDM强制Xorg,关闭Wayland
Bash
UTF-8|1 Line|
sudo nano /etc/gdm3/daemon.conf
ini
UTF-8|2 Lines|
[security]
WaylandEnable=false
  • 两行命令永久锁死GPU不休眠+常驻驱动
Bash
UTF-8|6 Lines|
# 强制显卡PCIe永不省电
echo 'ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de",ATTR{class}=="0x030000",ATTR{power/control}="on"' | sudo tee /etc/udev/rules.d/99-nosleep.rules
sudo udevadm control --reload-rules
# 显卡驱动常驻内存,不会临时休眠唤醒
sudo systemctl enable --now nvidia-persistenced
sudo nvidia-smi -pm 1
  • 全部做完重启sudo reboot