环境信息

系统: manjaro-kde 6.6.12-1-MANJARO
显卡:Radeon RX 580 2048SP

问题描述

偶现开机黑屏,无法进入登录界面,无法进入 tty

检查 /var/log/Xorg.0.log 日志,可以发现以下异常信息:

AMDGPU(0): get vblank counter failed: Invalid argument

很有可能是 AMD 图形驱动模块 AMDGPU 获取垂直空白(vblank)计数器失败。

vblank 计数器用于同步显示器的刷新率,获取它的失败通常可以导致下面的问题:

  • 画面撕裂(tearing)
    由于 GPU 渲染的帧率和显示器刷新率不同步,会出现部分画面不连贯的情形。

  • 屏幕抖动或闪烁
    显示输出不稳定,时断时续。

  • 性能下降
    未能成功同步垂直同步会对性能产生影响。

  • 启动失败
    严重时可能导致 X 服务器或图形环境启动失败。

解决方法

以下方法适用于基于 Xorg 显示服务器的系统,可以通过 echo $XDG_SESSION_TYPE 命令查看当前使用的是 Wayland 还是 Xorg。

  1. 安装 AMDGPU 驱动

    sudo pacman -S xf86-video-amdgp
    
  2. 禁用 Wayland

    编辑 /etc/sddm.conf 文件,在 [Wayland] 下配置 Enable=false 来确保禁用 Wayland.

  3. 增加配置/etc/X11/xorg.conf.d/20-amdgpu.conf (20 是用于控制解析顺序)

    Section "Device"
    		Identifier "AMD"
    		Driver "amdgpu"
    		Option "TearFree" "true"
    EndSection
    
  4. 编辑 /etc/mkinitcpio.conf 文件,修改 MODULES 配置项:

    MODULES=(amdgpu)
    
  5. 重新生成 initramfs 镜像

    # 查看有哪些内核版本
    /etc/mkinitcpio.d
    
    sudo mkinitcpio -p linux61 # linux61 是内核版本,表示针对其内核版本去生成对应的 initramfs 镜像
    

    这一步可以确保 initramfs 包含了最新的模块和配置,配合新的内核版本使用。在修改了相关配置、更新了驱动后,都建议重新生成一次 initramfs。

posted on 2024-02-13 20:35  y1j2x34  阅读(158)  评论(0编辑  收藏  举报