Ubuntu 18.04 - Разрыв экрана только на внешнем мониторе

У меня установлен Ubuntu 18.04 на моем ноутбуке Acer Nitro 5, и я использую метапакет драйвера NVIDIA nvidia-driver-450. Я наблюдаю много разрывов экрана на моем внешнем мониторе, подключенном к ноутбуку через кабель HDMI. Я могу наблюдать это на видео и когда перетаскиваю окна. Однако на мониторе ноутбука нет разрывов экрана, только на внешнем.

Я уже пробовал решение options nvidia-drm modeset = 1 , оно решило разрыв экрана только для ноутбука монитор, но не внешний.

Я также пробовал установить «Force Composition Pipeline» в настройках сервера NVIDIA X, это решает проблему, но когда я перезапускаю систему, монитор ноутбука перестает распознаваться (экран черный , и он не указан в xrandr). Похоже, это связано с тем, что монитор ноутбука является дисплеем PRIME, как показано в приведенной ниже ссылке, и он не может работать с файлом конфигурации X, который генерирует X-сервер.

Изображение настроек NVIDIA X Server

Может кто-нибудь Помогите мне? Единственное, что я еще не пробовал, это использовать сервер X X.Org (xserver-xorg-video-nouveau), но я не хотел его использовать, потому что у меня GTX 1650, и я понимаю, что Nouveau не т это хорошо.

0
задан 16 November 2020 в 21:39

2 ответа

Я позволил nvidia-settings сгенерировать файл conf. Этот файл был скопирован в: /etc/X11/xorg.conf.d/90-dual.conf .

Возможно, вам придется настроить оба монитора в вашей конфигурации. См. Пример здесь . Обратите внимание, что я настроил

параметр «Xinerama» «0»

в разделе «ServerLayout»

. Следующее содержимое может не относиться к вашему монитору, но оно может дать представление о том, как оно должно выглядеть. После копирования этого файла необходимо перезагрузить компьютер ...

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

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

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

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "<your monitor here>"
    HorizSync       30.0 - 83.0
    VertRefresh     55.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce <your version here>"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DVI-D-0: nvidia-auto-select +1920+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
0
ответ дан 3 January 2021 в 22:49

Итак, с помощью этого , этого и этого поста я смог найти обходной путь. Поскольку использование «Force Composition Pipeline» в NVIDIA X Server останавливает разрыв экрана, но заставляет монитор ноутбука перестать распознаваться, обходной путь - запускать команду Force Composition Pipeline после каждого запуска.

Я только что добавил команду bash -c "sleep 10 && nvidia-settings --assign CurrentMetaMode = \" $ (xrandr | sed -nr '/ (\ S +) connected (primary)? ([0-9] + x [0-9] +) (\ + \ S +). * / {S // \ 1: \ 3 \ 4 {ForceCompositionPipeline = On}, /; H}; $ {g; s / \ n // g; s /, $ //; p} ') \ "" (найдено в этой публикации ) в командах запуска, и теперь у второго монитора нет разрывов экрана, и у меня нет проблем после выключения ноутбука.

0
ответ дан 3 January 2021 в 22:49

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

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