Bumblebee com HDMI na Nvidia - Torne usável com / sem monitor conectado

3

Eu uso um laptop da Asus com o Optimus. A saída VGA está conectada à placa Intel, enquanto a saída HDMI está conectada à placa Nvidia.

Eu não estou usando PRIME ou nouveau, mas prefiro uma configuração de abelha (a única utilização real da minha placa Nvidia é rodar jogos a vapor, na verdade). O PRIME deu bugs realmente estranhos em relação ao bloqueio de tela do cursor do mouse, etc., e o nouveau faz o 'desempenho' da minha nvidia parecido com o da minha placa Intel, o que anula o propósito.

No zangão, posso fazer com que o monitor HDMI externo funcione usando intel-virtual-output . o monitor aparece sem problemas em xrandr e pode ser usado como um clone / tela estendida usando as ferramentas normais xrandr . No entanto, isso requer que eu comente a opção "UseDisplayDevice" em /etc/bumblebee/xorg.conf.nvidia

O problema de fazer isso é que quando eu não tenho um monitor conectado ao HDMI (sempre que eu estou longe do escritório), o primusrun reclama que nenhum monitor está conectado, e eu tenho que ter a seguinte linha descomentada.

Option "UseDisplayDevice" "none"

na seção de dispositivos de /etc/bumblebee/xorg.conf.nvidia

Esta configuração é o resultado de ajustes e googling por um tempo, e o único 'problema' com isso é a necessidade repetida de editar o nvidia xorg.conf dependendo se eu tenho um monitor ou não. Existe alguma maneira de contornar isso?

    
por Ng Oon-Ee 31.05.2016 / 05:21

1 resposta

2

Eu tive um problema semelhante no meu laptop Optimus - Eu tenho um monitor HDMI funcionando via intel-virtual-output , mas quando ele foi desconectado, optirun falhou.

O que parece funcionar para mim é o seguinte /etc/bumblebee/xorg.conf.nvidia (eu uso o driver proprietário da Nvidia):

Section "ServerLayout"
    Identifier  "Layout0"
    #Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run 'lspci | egrep 'VGA|3D'' and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
#   BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    #Option "UseEDID" "false"
    #Option "UseDisplayDevice" "none"
    Option "AllowEmptyInitialConfiguration"
    #BusID "PCI:1:0:0"
EndSection

O bit importante é a linha

Option "AllowEmptyInitialConfiguration"

Depois de adicioná-lo, as configurações de único e de vários monitores começaram a funcionar automaticamente, embora tenha encontrado problemas em que gdm.service seria interrompido quando iniciado ao mesmo tempo que bumblebeed.service - não tenho certeza se isso está relacionado, mas provavelmente é.

    
por 26.08.2016 / 22:30