Вы здесь

[Решено] hd4870 + X Server 1.13.1 + xf86-video-ati, чёрный экран

Доброго дня!

С того времени как поддержку моей видяхи у брали из проприетарных дров решил, что откатывать иксы и прочее не буду, а таки настрою открытые драйвера. И, собственно. тем и занялся. Первые попытки привели к работаю щим иксам, но без 3Д. Но после недавнего обновления Х вообще не работают.

Симптомы: запускаю иксы из консоли, экран один раз мигает, и всё, отзывов нет. Если запустить через xdm, за мышу можно повозёкать курсором. Но клавиатура не работает.

Как настроено:
- xorg.conf выкинут
- firmware указан и он загружается.
- В видео модулях только radeon (make.conf)

Что насторожило:
После запуска иксов в сообщениях светится:

Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: GPU lockup CP stall for more than 10000msec
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: GPU lockup (waiting for 0x0000000000000004 last fence id 0x0000000000000001)
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: Saved 121 dwords of commands on ring 0.
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: GPU softreset 
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008010_GRBM_STATUS=0xA0003028
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008014_GRBM_STATUS2=0x00000002
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_000E50_SRBM_STATUS=0x200202C0
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_00867C_CP_BUSY_STAT     = 0x00000800
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008680_CP_STAT          = 0x800000E3
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: Wait for MC idle timedout !
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008020_GRBM_SOFT_RESET=0x00007FEE
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: R_008020_GRBM_SOFT_RESET=0x00000001
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008010_GRBM_STATUS=0x00003028
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008014_GRBM_STATUS2=0x00000002
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_000E50_SRBM_STATUS=0x200202C0
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008674_CP_STALLED_STAT1 = 0x00000000
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008678_CP_STALLED_STAT2 = 0x00000000
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_00867C_CP_BUSY_STAT     = 0x00000000
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0:   R_008680_CP_STAT          = 0x00000000
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: GPU reset succeeded, trying to resume
Feb  5 05:25:31 WildBeast kernel: [drm] probing gen 2 caps for device 8086:3c04 = 3/e
Feb  5 05:25:31 WildBeast kernel: [drm] enabling PCIE gen 2 link speeds, disable with radeon.pcie_gen2=0
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: Wait for MC idle timedout !
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: Wait for MC idle timedout !
Feb  5 05:25:31 WildBeast kernel: [drm] PCIE GART of 512M enabled (table at 0x0000000000040000).
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: WB enabled
Feb  5 05:25:31 WildBeast kernel: radeon 0000:02:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xffff88044dff0c00
Feb  5 05:25:32 WildBeast kernel: [drm:r600_ring_test] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD)
Feb  5 05:25:32 WildBeast kernel: [drm:rv770_resume] *ERROR* r600 startup failed on resume 

Лог Х
Сообщения
Конфиг ядра

Есть какие-то предположения из-за чего это?

убери из комстрочки ядра

vga=0x31a video=vesafb:yrap,1280x1024-32@75

По логу видно, что сейчас у тебя ядро 3.7.4, а иксы собраны на 3.6.11. Убедись, что ссылка /usr/src/linux выставлена на 3,7,4, и выполни

emerge -av1t libdrm mesa xorg-server $(qlist -IC x11-drivers/)

Ну и желательно, чтоб вышеуказанные пакеты были, как-минимум, их тестовой ветки.

Кроме того, строчки

Feb  5 05:25:32 WildBeast kernel: [drm:r600_ring_test] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD)
Feb  5 05:25:32 WildBeast kernel: [drm:rv770_resume] *ERROR* r600 startup failed on resume 

говорят, что проблемы, в первую очередь, в ядре. Может быть имеет смысл попробовать git-sources, ну и на ядерную багзилу отрапортовать.

Цитата:
Если запустить через xdm, за мышу можно повозёкать курсором. Но клавиатура не работает.

На нумлок реагирует? Если нажать Alt+SysRq+R и затем Ctrl+Alt+F1, в консоль возвращается?

Спасибо.
Комстрочку вечерком ковырну, тоже сюда подумал. Ещё есть мысль выкинуть вообще все модули для framebuffer-а из ядра, там как минимум ВЕСА болтается.

ядро 3.7.4 для пробы собрал, штатно сейчас 3.6.11 стоит. Где-то вычитал, что [drm:r600_ring_test] *ERROR* radeon исправлено в 3.7, решил проверить, но без изменений.
Для начала попробую откатиться обратно на 3.6.11.

Самое, что странное первый ринг тест нормально проходит (по логу видно). Есть мнение, что что-то происходит, что-то отваливается и эта ошибка появляется из-за невозможности восстановиться. Потому как до ошибки идут слова про softreset, а он просто так не должен быть.

На нум-лок не реагирует (ctrl+alt+f1 тоже). Такое сочетание вечерком тоже опробую.

Убрал из парамтров ядра штуки про консольный режим, оставил только разршение и частоту, и всё заработало. В HowTo читал что радеоновский драфвер ФБ конфликтует, но что конфликтует вообще любой драйвер, кажется, что замечал как-то вскольз.

Поддержка есть в legacy версии драйвера, это ati-drivers-12.6_beta_pre897.ebuild и ati-drivers-13.1.ebuild.

Так что, если вам угодно использовать закрытый драйвер - можете использовать.

В первом надо иксы маскировать, потому как они не соберутся с новыми иксами, а во втором нет поддержки моего железа (hd5000+, а у меня 4870).

Ты читать умеешь, что тебе пишут или нет ? Тебе нужно ставить Legacy версию драйвера. На данный момент это версия 12.6 и 13.1, без разницы то, что они лежат в одном разделе с драйверами для серии 5000+, просто изначально не было разделения на legacy ветку для поддержки старых карт и основную ветку.

Вот ссылки по теме:
http://www.opennet.ru/opennews/art.shtml?num=35892
http://www2.ati.com/drivers/legacy/amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.zip
http://support.amd.com/us/gpudownload/linux/legacy/Pages/legacy-radeon_linux.aspx

Цитата:
надо иксы маскировать

Ставь версию 13.1, в ней добавили поддержку xorg-server`а версии 1.13 .

UPD: похоже я не совсем прав, ebuild версии 13.1 как раз для нормальной версии, поэтому тебе придётся создать копию ebuild`а версии 12.6_beta под именем 13.1_beta в локальный оверлей и указать в нём ссылку на архив с legacy версией драйвера 13.1, затем выполнить ebuild ati-drivers-13.1_beta.ebuild digest и можно ставить или просто отредактировать ebuild 12.6_beta в основном дереве, опять же выполнит digest и поставить пакет.

а , разве не легче подключить оверлей x11 и установить оттуда ati-drivers-13.1-r100 для карт <=hd4ххх предварительно замаскировав 1.13 иксы.
https://bugs.gentoo.org/show_bug.cgi?id=453538

А иксы зачем маскировать?

У меня карта из серии 5000+, поэтому мне нет необходимости ставить именно эту версию драйверов и я не искал оверлеи, где можно найти нужный ebuild, я просто в курсе, что есть эта версия и почему она вышла. Поэтому и указал на неё и на возможный способ её установки правкой ebuild`а, к тому же не знаю почему по вашей ссылке есть сообщение о том, что эта версия (13.1 legacy) не поддерживает xorg-server-1.13, ведь она поэтому и вышла, что бы добавить поддержку этой версии xorg-server`а (1.13), так что думаю на баг трэкере не корректные данные.

Теперь понял, спасибо. Если открытые не поднимутся, буду сюда копать.

вот еще HowTo по быстрому переключению драйверов http://wiki.gentoo.org/wiki/Fglrx_Quick_Switch

Всем спасибо за содействие!