
背景
我現在被迫使用開源專有驅動程式(radeon
內核模組),因為在上次升級後我得到了 Xorg 版本 7.7 並且fglrx
不支援它。
對於正常桌面使用而言,該驅動程式工作正常,甚至比 更好fglrx
,我甚至擁有高解析度幀緩衝控制台! ^_^
問題
但當實際使用 OpenGL 功能時,即使用 VLC 玩視訊遊戲甚至電影時,螢幕會凍結一段時間,並出現許多紅色或藍色像素。現在,如果我幸運的話,這種情況會持續幾秒鐘,然後顯示器就會失去訊號,突然一切都會恢復;如果不行我就得重啟了...
據我所知,崩潰前的表現還不錯。
dmesg
報告:
[34193.392048] radeon 0000:01:00.0: GPU lockup CP stall for more than 10000msec
[34193.392055] radeon 0000:01:00.0: GPU lockup (waiting for 0x000000000023e95b last fence id 0x000000000023e94d)
[34193.399059] radeon 0000:01:00.0: Saved 471 dwords of commands on ring 0.
[34193.399074] radeon 0000:01:00.0: GPU softreset: 0x00000009
[34193.399078] radeon 0000:01:00.0: GRBM_STATUS = 0xF5701828
[34193.399082] radeon 0000:01:00.0: GRBM_STATUS_SE0 = 0xFC000003
[34193.399086] radeon 0000:01:00.0: GRBM_STATUS_SE1 = 0x00000007
[34193.399089] radeon 0000:01:00.0: SRBM_STATUS = 0x200000C0
[34193.399092] radeon 0000:01:00.0: SRBM_STATUS2 = 0x00000000
[34193.399096] radeon 0000:01:00.0: R_008674_CP_STALLED_STAT1 = 0x00000000
[34193.399099] radeon 0000:01:00.0: R_008678_CP_STALLED_STAT2 = 0x40000000
[34193.399103] radeon 0000:01:00.0: R_00867C_CP_BUSY_STAT = 0x00008006
[34193.399106] radeon 0000:01:00.0: R_008680_CP_STAT = 0x80228647
[34193.399110] radeon 0000:01:00.0: R_00D034_DMA_STATUS_REG = 0x44C83D57
[34193.409161] radeon 0000:01:00.0: GRBM_SOFT_RESET=0x00007F6B
[34193.409216] radeon 0000:01:00.0: SRBM_SOFT_RESET=0x00000100
[34193.410364] radeon 0000:01:00.0: GRBM_STATUS = 0x00003828
[34193.410368] radeon 0000:01:00.0: GRBM_STATUS_SE0 = 0x00000007
[34193.410371] radeon 0000:01:00.0: GRBM_STATUS_SE1 = 0x00000007
[34193.410375] radeon 0000:01:00.0: SRBM_STATUS = 0x200000C0
[34193.410378] radeon 0000:01:00.0: SRBM_STATUS2 = 0x00000000
[34193.410382] radeon 0000:01:00.0: R_008674_CP_STALLED_STAT1 = 0x00000000
[34193.410385] radeon 0000:01:00.0: R_008678_CP_STALLED_STAT2 = 0x00000000
[34193.410388] radeon 0000:01:00.0: R_00867C_CP_BUSY_STAT = 0x00000000
[34193.410392] radeon 0000:01:00.0: R_008680_CP_STAT = 0x00000000
[34193.410395] radeon 0000:01:00.0: R_00D034_DMA_STATUS_REG = 0x44C83D57
[34193.410406] radeon 0000:01:00.0: GPU reset succeeded, trying to resume
[34193.430380] [drm] PCIE GART of 512M enabled (table at 0x0000000000273000).
[34193.430487] radeon 0000:01:00.0: WB enabled
[34193.430491] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00 and cpu addr 0xffff8800da8b4c00
[34193.430493] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c and cpu addr 0xffff8800da8b4c0c
[34193.431938] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0xffffc90002cb2118
[34193.448109] [drm] ring test on 0 succeeded in 2 usecs
[34193.448176] [drm] ring test on 3 succeeded in 1 usecs
[34193.623962] [drm] ring test on 5 succeeded in 1 usecs
[34193.623971] [drm] UVD initialized successfully.
[34193.678291] [drm] ib test on ring 0 succeeded in 0 usecs
[34193.678365] [drm] ib test on ring 3 succeeded in 1 usecs
[34193.828433] [drm:r600_uvd_ib_test] *ERROR* radeon: failed to get create msg (-22).
[34193.828446] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on ring 5 (-22).
系統資訊
發行版和內核:
$ cat /etc/issue
Debian GNU/Linux jessie/sid \n \l
$ uname -a
Linux andrea 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux
xorg.conf
(相關位):
Section "Device"
Identifier "something"
Driver "radeon"
Option "AccelMethod" "EXA"
Option "EXAVSync" "on"
EndSection
glxinfo
(相關位):
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
驅動版本:
$ apt-cache show xserver-xorg-video-radeon | grep Version
Version: 1:7.2.0-1+b2
答案1
我終於找到了解決方案這個論壇主題。
簡而言之,有一個啟動參數需要設定(radeon.dpm
),所以我透過編輯來修復/etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.dpm=1"
然後sudo update-grub
重新啟動。