fglrx зависает при закрытии экрана блокировки или крышки при выборе iGPU

В моей системе есть гибридная (и я считаю, что без мультиплексирования, т. Е. На самом деле только встроенная карта подключена к дисплею) графика. Первая карта - это Intel HD 4400, а вторая карта - AMD Radeon HD 8670M (серия Солнечной системы, а не ОЛАНД). Таким образом, в настоящее время драйвер radeon с открытым исходным кодом не поддерживает карту, и я вынужден использовать проприетарный драйвер fglrx.

Почему бы просто не выключить карту dGPU без fglrx?

Мне не нужна причудливая графика, и я был бы рад просто отключить дискретную карту ATI, пока она был правильно выключен и не перегревался / не ел батарею. Варианты сделать это без fglrx и pxpress казались мне ограниченными: у меня нет переключателя vgaswitcheroo (даже до того, как fglrx когда-либо был установлен), и я могу сделать вывод, что это только потому, что драйвер radeon не пока поддерживает мою карту / пока не загружает ее должным образом, см. мой вопрос здесь , чтобы узнать больше об этом и о том, что я пробовал. Другие методы, такие как acpi_call, были объявлены в лучшем случае «доказательством концепции», а в худшем опасными, поэтому я бы не стал рисковать их использовать. Более надежные проекты, такие как bumbleebee, являются только нивидиями.

Просто оставьте карту AMD без драйвера

Полагаясь только на драйвер i915, Intel работает без сбоев, ошибок и проблем нет, однако карта AMD остается НЕЗАВИСИМОЙ и может привести к перегреву / разряду батареи, поэтому я не очень рад этому.

Ubuntu 12.04 LTS с fglrx

Я начал здесь и столкнулся с ошибкой, когда был выбран iGPU. Эта ошибка проявляется всякий раз, когда экран заблокирован, крышка ноутбука закрыта, или даже когда компьютер остается неактивным, если вместо него установлено что-то вроде xscreensaver без включенного экрана блокировки. Это вызывает черный экран только с подвижным курсором; переключение tty и обратно не восстанавливается, и требуется перезапуск с tty. Это не происходит каждый раз, но происходит довольно регулярно, по крайней мере, один или два раза в день. Вся сохраненная работа потеряна.

Я попробовал как fglrx в репозиториях, так и последние 13.10 с сайта AMD. Без изменений.

Когда вместо этого выбран dGPU (из центра управления AMD Catalyst или, в конечном счете, с помощью pxpress), эта ошибка не возникает, но у меня была другая ошибка, в которую я не буду вмешиваться.

Ubuntu 13.10 с fglrx

Очень похожая ошибка здесь, но не настолько серьезная. Точно такие же условия, а именно: блокировка экрана, закрытие крышки, неактивность (если используется xscreensaver). На этот раз замороженный экран не черный, а картинка вашего рабочего стола в момент остановки, опять же с подвижным курсором. Здесь я только попробовал последние драйверы AMD fglrx 13.10.

Опять нет проблем только с драйвером i915 (нет fglrx) и опять нет проблем с выбранным dGPU.

Некоторые вещи, которые я пробовал:

1) Отключение vsync. Я попробовал это как в диспетчере настроек compiz, так и в aticonfig --sync-vsync=off с последующей перезагрузкой. Без изменений .

2) Отключение DPMS. Option "DPMS" "false" в разделе xorg.conf монитора. (Конечно, я также изменил настройки гнома «Ничего не делать / не приостанавливать» для батареи и переменного тока). Без изменений .

3) Option "AIGLX" "off" в флагах сервера xorg.conf. Без изменений .

4) Изменение atieventsd, чтобы оно работало должным образом для Ubuntu, см. Мой пост здесь . А также, работает без него. Без изменений .

5) Загрузка с опциями

Option      "Capabilities" "0x00000800"
Option      "KernelModuleParm" "locked-userpages=0"
Option      "NoAccel" "True"

в разделе xorg.conf Device. Без изменений .

6) Загрузка с nomodeset в качестве параметра ядра. Без изменений .

7) Отключение acpi взаимодействия из aticonfig:

--acpi-services=off
--acpi-display-switch=off

Без изменений .

Почему он работает только с Intel?

Одна вещь, которую я не понимаю, это то, почему он работает только с драйвером Intel i915. Я думал, что pxpress просто передаст управление этому драйверу при загрузке, поэтому, если бы он работал только с i915, я бы ожидал, что он будет работать с выбором pxpress igpu.

Я знаю, fglrx также устанавливает свою собственную реализацию libGl, но она переключается на старую стандартную реализацию MESA libGL, когда выбрана карта intel (см. /usr/lib/fglrx/switchlibGL скрипт python).

Итак, когда выбрано igpu, оно должно быть в точности эквивалентно жизни до fglrx после перезагрузки?

2
задан 13 April 2017 в 15:24

1 ответ

После долгого изучения этого я пришел к выводу ключевого момента: когда fglrx / pxpress загружает драйвер Intel, он делает это с помощью метода ускорения UXA, тогда как по умолчанию (в системе Haswell, работающей 13.10, перед установкой fglrx) драйвер Intel загружается с использованием метода ускорения SNA.

Я протестировал загрузку с xorg.conf, который выглядел следующим образом:

Section "Device"
        Identifier      "Intel Graphics"
        Driver          "intel"
        Option          "AccelMethod"  "UXA" # (fglrx uses this) I can see the bug
        #Option          "AccelMethod"  "SNA" #(default) no bug!
EndSection

Section "Monitor"
           Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection

Теперь даже этот Intel xorg.conf выдал ошибку замораживания после закрытия крышки или двух. Тем не менее, загружаясь с точно таким же файлом конфигурации, только с

Option          "AccelMethod"  "SNA" 

я не получил никакой ошибки, независимо от того, сколько крышек закрывается / блокировки экрана (в любом случае это метод по умолчанию для драйвера, и именно поэтому Я был озадачен, потому что это дурачило меня, когда я думал, что все хорошо с драйвером Intel, а fglrx портит вещи).

1121 Теперь, когда я понял, что это проблема с драйверами Intel, некоторые поиски привели меня в порядок. Создайте файл ~/.drirc для настройки параметров DRI, содержащий

<device screen="0" driver="dri2">
        <application name="Default">
                <option name="vblank_mode" value="0"/>
        </application>
</device>

Это отключает vsync (параметр, который заставляет вашу карту GFX синхронизироваться с частотой обновления экрана, а не ускоряться при ее собственном частота кадров, чтобы избежать разрывов). Примечание: нет смысла отключать vsync с помощью aticonfig, как в моем OP, так как это просто отключит его для dGPU, а не для карты Intel. Я не уверен, почему моя попытка выключить его с помощью Compiz Settings Manager не сработала.

Даже при использовании метода UXA отключение vsync таким образом останавливало сбой даже для fglrx xorg.conf.

Еще лучше было бы как-то настроить pxpress для загрузки драйвера Intel с опциями SNA, см. Мой пост здесь

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: