更新日期:2/23/18
该问题源于 Freedesktop radeon 驱动程序 7.10 版本。
解决该问题的方法是将驱动程序降级到 7.9 版本。调查和解决方法步骤的详细信息如下。
该问题的主要症状是 Xorg.0.log 中出现连续不断的警告消息,并且数量不断增加。
警告信息如下:
[ 4800.851] (WW) RADEON(0): flip queue failed: Invalid argument
[ 4800.851] (WW) RADEON(0): Page flip failed: Invalid argument
历史
我于 2018 年 2 月 15 日通过 16.04LTS 中的软件管理器进行了正常升级。
它升级了以下库(/var/log/dpkg.log [pkg][old ver][new ver]
):
libegl1-mesa-dev:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libwayland-egl1-mesa:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-ubuntu0~16.04.1
libwayland-egl1-mesa:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libegl1-mesa:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libegl1-mesa:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgbm1:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgbm1:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libosmesa6:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libosmesa6:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgles2-mesa:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgl1-mesa-glx:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgl1-mesa-glx:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libglapi-mesa:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libglapi-mesa:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgl1-mesa-dri:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libgl1-mesa-dri:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
libxatracker2:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
linux-firmware:all 1.157.15 1.157.16
mesa-vdpau-drivers:i386 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
mesa-vdpau-drivers:amd64 17.2.4-0ubuntu1~16.04.4 17.2.8-0ubuntu0~16.04.1
xserver-xorg-video-radeon-hwe-16.04:amd64 1:7.9.0-0ubuntu1~16.04.1 1:7.10.0-1~16.04.1
xserver-xorg-video-ati-hwe-16.04:amd64 1:7.9.0-0ubuntu1~16.04.1 1:7.10.0-1~16.04.1
我应该指出,这是不是compiz/unity 更新包列表。这是 mesa 驱动程序。
重新启动后,当显示管理器启动时,我开始看到一个只有鼠标指针的空白屏幕。
我按++CTRL进入控制台,然后我可以在中找到以下内容:ALTF1Xorg.0.log
[ 4800.851] (WW) RADEON(0): flip queue failed: Invalid argument
[ 4800.851] (WW) RADEON(0): Page flip failed: Invalid argument
这些警告信息不断地流入日志文件,它不断增长。在库更新之前不存在这个。
我的笔记本电脑上的视频硬件:
*-display
description: VGA compatible controller
product: RV516/M64-S [Mobility Radeon X2300]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
configuration: driver=radeon latency=0
resources: irq:16 memory:d0000000-d3ffffff ioport:4000(size=256) memory:d8300000-d830ffff memory:c0000-dffff
modinfo 输出的第一行:
filename: /lib/modules/4.13.0-26-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
license: GPL and additional rights
description: ATI Radeon
我真的需要一些帮助......提前感谢您!
更新日期:2/16/18:
我似乎启动到了错误的 VT 显示器。上述所有症状都是真实的;但是,如果我在启动时执行 + CTRL+ ALT(F1最多F6),然后立即执行CTRL+ ALT+ F7(切换 VT),我就会进入正常桌面,就像它已正确启动一样。 CTRL+ ALT+F7而不先进入控制台不会执行任何操作。因此,这在某种程度上简化了事情,因为它现在看起来是一个配置问题。Lightdm 似乎在错误的显示器上启动了 Xorg。我在 linux 内核命令行上尝试了 vt.handoff=7,但这没有帮助。
w
以下是按下CTRL++ALT并F7进入正常桌面后立即的输出:
09:38:01 up 44 min, 1 user, load average: 0.60, 0.67, 0.82
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 tty7 :0 08:53 44:14 6:16 0.29s /sbin/upstart -
该显示列表看起来很正常。
我应该注意到 compiz 和 unity 似乎仍能正常工作。当我切换到 tty7 时,桌面完全可用并且已加载。
更新日期:2/19/18:
我不认为这是 compiz/unity 问题的重复。我观察到的问题是由 2018 年 2 月 15 日上午的 radeon 驱动程序更新 (7.9->7.10) 引起的。compiz/unity 更新尚未应用于我的系统。事实上,还有一篇帖子看起来与我看到的问题相同,它是:/var/log/Xorg.0.log 文件快速增长
在以下驱动程序中发现了 ,Xorg.0.log
中的警告字符串:flip queue failed
/usr/lib/xorg/modules/drivers/radeon_drv.so
在包中找到:
xserver-xorg-video-radeon-hwe-16.04
具体来说,源文件:
./src/drmmode_display.c: xf86DrvMsg(scrn->scrnIndex, X_WARNING, "flip queue failed: %s\n",
源代码中的第 3093 行drmmode_display.c
:
flip_error:
xf86DrvMsg(scrn->scrnIndex, X_WARNING, "flip queue failed: %s\n",
strerror(errno));
error:
if (drm_queue_seq)
radeon_drm_abort_entry(drm_queue_seq);
else if (crtc)
drmmode_flip_abort(crtc, flipdata);
else {
abort(NULL, data);
drmmode_fb_reference(pRADEONEnt->fd, &flipdata->fb, NULL);
free(flipdata);
}
xf86DrvMsg(scrn->scrnIndex, X_WARNING, "Page flip failed: %s\n",
strerror(errno));
我将其记录为:[Bug 1750393] Blank screen with only mouse pointer after mesa driver update; display does not switch to tty7 upon lightdm start; Xorg.0.log quickly grows
在 Launchpad 上。
答案1
请通过发出以下命令来验证您正在使用 7.10 radeon 驱动程序:
lshw -c video
modinfo radeon | more
如果您在 lshw/modinfo 输出中看到以下内容,则表示您正在使用 radeon 驱动程序:
lshw 第一行的示例:
*-display
description: VGA compatible controller
product: RV516/M64-S [Mobility Radeon X2300] **or some other radeon card**
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list rom
configuration: driver=radeon latency=0
modinfo 的示例第一行(内核版本可能不同):
filename: /lib/modules/4.13.0-26-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
license: GPL and additional rights
description: ATI Radeon
验证您正在使用 radeon 驱动程序。
xserver-xorg-video-radeon-hwe-16.04
如果是,请验证您使用的版本。执行:
sudo apt list --installed | grep radeon-hwe
应显示以下内容:
xserver-xorg-video-radeon-hwe-16.04/xenial-updates,now 1:7.10.0-0ubuntu1~16.04.1 amd64 [installed]
这是 7.10 radeon 驱动程序。
如果以上所有情况都适用于您的机器,那么此问题有一个解决方法:
从以下位置下载 7.9 版 radeon 驱动程序 Ubuntu 包 ( xserver-xorg-video-radeon-hwe-16.04_7.9.0-0ubuntu1~16.04.1_amd64.deb
):
对下载的.deb 文件执行以下命令:
sudo dpkg -i xserver-xorg-video-radeon-hwe-16.04_7.9.0-0ubuntu1_16.04.1_amd64.deb
sudo apt-get -f install
sudo apt-mark hold xserver-xorg-video-radeon-hwe-16.04
这会将 radeon 驱动程序包降级至版本 7.9,修复依赖关系,并阻止驱动程序包进行进一步更新。
重新启动后,问题就解决了。
已向 Freedesktop 报告了一个错误:
https://bugs.freedesktop.org/show_bug.cgi?id=105217
7.9 版 Radeon 驱动程序将需要保留,直到问题得到解决:
xserver-xorg-video-radeon-hwe-16.04