12.10. Квантовые проблемы с отображением при использовании nvidiaXineramaInfoOverride.

После обновления до 12.10 сегодня мой xorg.conf, похоже, не соблюдается Quantal. Не уверен, является ли это "ошибкой" или это просто настройка, которую я должен сделать из-за изменений в ОС.

При входе в систему кажется, что Ubuntu теперь распознает только один экран 3840x1080 с именем "Matrox", и окна с максимальным увеличением охватывают их на обоих экранах. В 12.04 этот файл конфигурации успешно позволил мне переопределить данные, предоставленные моим TripleHead2Go, и развернуть окна на один монитор.

Любые идеи или с чего начать при попытке отладки этого?

После небольшого поиска я попытался внести изменения в соответствии с обновлением здесь: http://www.phoronix.com/scan.php?page=news_item&px=MTEyMDk

Вот где сейчас находится файл конфигурации:

Section "ServerLayout"
  Identifier     "Layout0"
  Screen      0  "Screen0" 0 0
  InputDevice    "Keyboard0" "CoreKeyboard"
  InputDevice    "Mouse0" "CorePointer"
  Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
  Identifier     "Mouse0"
  Driver         "mouse"
  Option         "Protocol" "auto"
  Option         "Device" "/dev/psaux"
  Option         "Emulate3Buttons" "no"
  Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"      
  Identifier     "Keyboard0"
  Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Matrox"
    HorizSync       31.5 - 80.0
    VertRefresh     59.9 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 260M"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "nvidiaXineramaInfo" "true"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    #Option         "metamodes" "CRT: nvidia-auto-select +0+0"
    Option         "nvidiaXineramaInfoOverride" "1920x1080 +0+0, 1920x1080 +1920+0"
    Option         "Stereo" "0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

2 ответа

Решение

В последних версиях графического драйвера NVIDIA Linux - включая версию nvidia-current в Quantal 12.10, 304.51 - появилась поддержка RandR 1.2+, улучшающая интеграцию между графической картой и оконным менеджером (GNOME, KDE и т. Д.).) с обработкой разрешения экрана, поворотом и т. д. из инструментов менеджера окон в дополнение к nvidia-settings, Однако кажется, что TwinViewXineramaInfoOverridexorg.conf опция конфигурации (которая теперь была переименована в nvidiaXineramaInfoOverride) не работает должным образом.

Чтобы следить за прогрессом NVIDIA в этой области, смотрите:

http://www.nvnews.net/vbulletin/showthread.php?p=2578805
http://www.nvnews.net/vbulletin/showthread.php?t=184814

Возможное решение - использовать поддельную Xinerama http://home.kde.org/~seli/fakexinerama/ которая, как было доказано, работает также с Xorg 7.7 (версия Xorg на квантовой версии 12.10). Чтобы следовать процедуре, описанной в связанном документе, вам нужно:

  • Перед процедурой sudo apt-get install libxinerama-dev
  • После процедуры перезагрузите систему

Вы можете использовать следующий контент для ~/.fakexinerama:

2
0 0 1920 1080
1920 0 1920 1080

Чтобы включить fakexinerama только при наличии Matrox DualHead2Go, вы также можете добавить этот код в /etc/init/lightdm.conf перед exec lightdm:

if lsusb | grep -q 18ea:0003; then
        echo "Matrox DualHead2Go Detected"
        cp /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-fake /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
else
        echo "Matrox DualHead2Go NOT Detected"
        cp /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-orig /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0
fi

Используйте следующие правила, чтобы этот код работал:

  • В любом случае используйте /usr/lib/i386-linux-gnu вместо /usr/lib/x86_64-linux-gnu если не на 64 бит
  • Сделайте резервную копию оригинала /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0 в /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-orig
  • Скопируйте измененную версию, полученную в результате сборки fakexinerama, в /usr/lib/x86_64-linux-gnu/libXinerama.so.1.0.0-fake
  • замещать 18ea:0003 с идентификатором продукта вашего устройства, если отличается (используйте lsusb найти правильное значение).

Перезагрузите систему каждый раз, когда вам нужно переключиться из режима Matrox DualHead2Go в исходный режим.

ПРИМЕЧАНИЕ: после работы вы сможете развернуть окна на каждом отдельном экране, но любое действие, использующее информацию RandR вместо Xinerama, не позаботится о поддельной информации Xinerama (например, обоях, полноэкранном режиме Adobe Flash - включая YouTube и т. Д.)..).

Хорошо, частичное исправление:

  1. Установите пакет compizconfig-settings-manager, если у вас его еще нет.
  2. Запустите его и перейдите в Общие параметры> Настройки экрана
  3. Добавьте выходы по желанию (в моем случае с двумя DVI-соединениями у меня это 1920x1080+0+0 и 1920x1080+1920+0)
  4. Снимите флажок "Определить выходы" над списком выходов

Предостережение:

  • Это НЕ решит проблему с панелью, охватывающей несколько рабочих столов, только с развернутыми окнами, охватывающими оба экрана.

Я полностью забыл о способности compizconfig сделать это.

Любой вход на разделение панели на выход, используя это?

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