X-сервер, блокировка клавиатуры и мыши с поврежденным дисплеем

У моего компьютера (у которого есть карта NVIDIA) есть проблема с рендерингом, которая очень раздражает.

Иногда X-сервер «блокируется» после замораживания (или что-то там происходит, потому что музыкальные петли VLC в текущем пакете тогда) в течение ~ 1 секунды, указатель становится невидимым, клавиатура и мышь не работают, и я получаю экран это выглядит так:

X-сервер заблокирован

за исключением того, что цвета разные. Я включил клавиши ctrl-alt-backspace и alt-sysrq- [rk], и даже те, которые не имеют эффекта, для восстановления я должен выполнить холодную перезагрузку.

Иногда вместо получения вышеуказанного экрана я получаю консоль, полную ошибок ядра, таких как nouveau: не удалось пропустить канал XXX . Затем через несколько секунд все программы будут убиты (в то время как в tty). Это может быть X-сервер, потому что мои настройки xgamma (которые сбрасываются при каждом выходе из системы) даже тогда остаются в силе.

И тогда даже сама консоль исчезает, нет экрана входа, просто черный (и единственный выход – это также холодная перезагрузка).

Самая странная часть заключается в том, что KTorrent (который загружал файл, когда это произошло) все еще передавал данные во время блокировки, согласно моему модемному светодиоду. Все программы убиты, могут воспроизводиться с VLC, играя музыку.

В частности, я не могу запускать какие-либо программы JavaFX 8 (даже не самую простую, которая создает пустое окно), потому что, когда я запускаю java -jar my.jar , появляется окно, но в режиме вырожденного / рендеринга формы и либо a) экран блокируется через несколько секунд после b) после нескольких (un) максимизации / изменения размера вышеизложенного. Также случается иногда, когда я использую firefox или даже когда нет открытых окон.

wmctrl -l показывает, что экран блокировки не является окном. Кроме того, как сказано выше, окна / программы все еще открыты, поэтому все процессы графического интерфейса не будут убиты. Это очень запутанно, и у меня нет идей.

Кстати: alt-sysrq- [rk] здесь не поможет – на самом деле он убивает все программы и помещает вас в этот консольный сценарий. Однако это не проблема. В двух словах, это нуво.

Из того, что вы говорите, X-сервер все еще функционирует, но графическое «соединение» похоже отключено от вашего дисплея.

Поскольку драйвер nouveau для карт NVIDIA, java, firefox и другие ваши программы пытаются использовать карту, думая, что она доступна. Это называется видео (ака. Аппаратное) ускорение.

Экран «блокировка» происходит не от X-сервера, а от нехватки аппаратных возможностей в нуво для вашей карты (3D-рендеринг, декодирование видео и т. Д.), Поэтому, когда программа пытается использовать одну из них, она сбой nouveau ,

Рассмотрим имена кодов GPU и видеомониторы для карт NVIDIA. Предполагая, что у вас есть карта серии GeForce 6/7, она попадает в семейство NV40 (Curie), которая, в свою очередь, использует видеомониторы VPE1, VPE2 и VP1, ни одна из которых не поддерживает ускорение видео (аппаратное) (кроме XvMC от VPE2) , Вот что делает ваш X-сервер «неудачным». (Будьте осторожны, проприетарный драйвер NVIDIA в этом случае не поможет из-за недостающих возможностей.)

Решение состоит в том, чтобы полностью отключить аппаратное ускорение и просто придерживаться программной рендеринга, пока не получите поддерживаемую карту. В java 8 вы можете сделать это: java -Dprism.order=sw -jar my.jar , отлично работает в моей системе. И у Firefox есть опция в своих дополнительных настройках, чтобы включить аппаратное ускорение (если оно доступно, что ошибочно, но я не знаю почему), убедитесь, что он не установлен.

Обновление: в нуво никогда не было хорошего использования аппаратного обеспечения NVIDIA, поэтому, если вы используете один и ваш дистрибутив (например, RHEL 7), это затрудняет получение проприетарных драйверов. Я рекомендую вам заменить карту на Radeon / Intel, чья открытая -source драйверы лучше поддерживаются.