Execute o Unity no monitor externo com o Bumblebee

4

Eu percebo que há muitas outras perguntas sobre isso, mas elas são sobre a configuração básica. Já passei a maior parte do caminho, mas tenho uma pergunta muito específica: quero executar o Unity completo no monitor externo (HDMI) e não me importo se a tela do laptop estiver inutilizável.

Eu tenho um Dell XPS 15 com a Nvidia GT 540M com Optimus. (DAMN OPTIMUS !!!!) Eu tenho o Bumblebee instalado. Eu sou capaz de executar o sistema na tela do laptop, e posso usar o optirun para executar programas como o glxspheres no modo de alto desempenho. Quando eu conecto o monitor externo, não vejo nada e xrandr não o detecta (" HDMI1 disconnected (normal left inverted right x axis y axis) ").

Aqui está o que eu fiz até agora (trabalhando na configuração de vários monitores do Bumblebee guia). Eu segui o conselho de "tela extra", então eu editei bumblebee.conf e xorg.conf.nvidia como instruído. Agora, se eu correr:

export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun glxspheres

Eu vejo a demo do glxspheres no monitor externo (sem nenhuma cobertura de janela). Woohoo!

Agora, o próximo passo é desligar o Unity na tela do laptop e testar se os glxspheres ainda funcionam. Então eu apertei Ctrl + Alt + F1 para ir para o terminal não-gráfico. Então:

sudo service lightdm stop
export DISPLAY=:8 LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
optirun glxspheres

Mais uma vez, vejo glxspheres no monitor externo.

Agora o guia Bumblebee diz para você fazer " optirun wmii& (ou outro tipo de startlxde)" mas eu não quero mudar para outro gerenciador de janelas. Como posso executar o Unity no monitor externo?

Eu tentei optirun unity e cheguei a maior parte do caminho até lá. Isso inicia o Unity no monitor externo. Eu posso ver a área de trabalho e o mouse funciona. Eu posso executar outros programas dentro do Unity. Existem apenas alguns problemas:

  1. Certas combinações de teclado não são detectadas pelo Unity - parece com qualquer coisa que envolva Ctrl, bem como a tecla Fn. (por exemplo: Ctrl + Alt + T não funcionou para obter um terminal; o Fn + F11 não funcionou para alterar o volume.)
  2. Os traços do teclado aparecem no terminal, bem como no Unity. Eu não quero isso, pois pode haver senhas sendo digitadas.
  3. Se eu alternar para outra tela (por exemplo, Ctrl + Alt + F8), o áudio deixará de funcionar, portanto, essa não é uma solução viável para o número 2.

Eu sinto que essas três questões estão relacionadas. Eu acho que o principal problema é que eu não deveria estar executando diretamente o Unity, mas sim executando o lightdm. Eu tentei optirun lightdm , mas não funciona de todo. Esperando que alguém saiba. Caso contrário, esperamos que pelo menos essa pergunta ajude as pessoas a executar quase o Unity em um monitor externo.

    
por mgiuca 09.02.2013 / 04:54

1 resposta

4

Pelo que entendi, o Unity não funciona com o optirun (parece ser um bug).

Isso é o que eu encontrei aqui :

O HDMI não funciona com chipsets gráficos híbridos Optimus no Linux para a maioria dos laptops, mesmo se você usar o Bumblebee, mas há uma maneira de fazer o HDMI funcionar: usando uma sessão separada.

Usando as instruções abaixo, você receberá uma sessão do LXDE (você pode usar o XFCE ou outros, mas as instruções abaixo são para o LXDE) para aparecer no monitor externo (que é conectado via HDMI), e nesta sessão , todos os aplicativos que você usa usam a placa gráfica Nvidia do seu laptop e você pode jogar, assistir a filmes, etc. A sessão LXDE é executada ao mesmo tempo que a sua sessão regular, portanto na tela do seu laptop você obtém sua sessão regular (principal). Além disso, o mouse e o teclado são compartilhados entre as duas sessões / monitores.

Veja como isso se parece:

A primeira imagem acima é da tela do meu laptop (Dell XPS L702X que vem com o Nvidia Optimus) enquanto a segunda imagem é a sessão separada do LXDE que também está sendo executada no meu laptop, mas é exibida em uma TV conectada via HDMI. Como você pode ver, o primeiro é usar o chip gráfico da Intel, enquanto o segundo usa a Nvidia.

No entanto, há algumas coisas a serem consideradas ao usar isso:

  • o som não funciona (se você souber como fazer isso funcionar, por favor, nós sabemos nos comentários!) através de HDMI, então você só vai conseguir som através dos alto-falantes do seu laptop
  • você não pode mover uma janela da sua área de trabalho atual para o monitor conectado via HDMI. A única maneira de executar aplicativos no dispositivo conectado via HDMI é executá-lo a partir de seu menu de sessão ou usando "export DISPLAY =: 8.0" (veja o final do post para mais informações sobre esta). O mouse, no entanto, é compartilhado entre os dois desktops.
  • ao carregar a sessão extra, você pode obter indicadores duplos / bandeja ícones na sua sessão atual (principal). Existe uma maneira de contornar isso embora (consulte a seção "dicas" no final do post)

Obtenha o HDMI para funcionar com laptops usando a tecnologia Optimus no Ubuntu usando o Bumblebee e o Synergy

  1. Instale o Bumblebee se você ainda não o fez.

  2. O Unity não funciona com o Bumblebee (e eu não tenho certeza se você pode executar duas sessões usando o mesmo gerenciador de janelas sem interferir de qualquer forma), então você precisará usar um ambiente / sessão de desktop diferente, como o LXDE. , XFCE e assim por diante - use o que você quiser. Eu usei o LXDE, então, usando as instruções abaixo, você terá uma sessão do LXDE no monitor conectado via HDMI.

    Para que o mouse e o teclado funcionem no monitor externo conectado via HDMI, usaremos o Synergy, uma ferramenta que permite compartilhar o mouse e o teclado entre vários computadores.

    Vamos instalar os pacotes necessários (LXDE e Synergy):

    sudo apt-get install synergy lxde lxde-common

  3. Para poder usar o Synergy, você precisará criar um arquivo de configuração. Você pode baixar o meu do AQUI - copie o arquivo para sua pasta pessoal e renomeie-o para ".synergy.conf" (observe o ponto na frente do nome do arquivo - isso torna o arquivo oculto).

    O arquivo que eu forneci acima deve ser suficiente, mas se você quiser alterá-lo, você pode ler sobre o arquivo de configuração do Synergy aqui .

  4. Para iniciar o LXDE no monitor externo conectado via HDMI, você pode usar um script que pode ser baixado em AQUI Extraia o arquivo, copie o script "hdmi" para sua pasta pessoal e torne-o executável usando o seguinte comando:

    chmod +x ~/hdmi

    Agora, para executar o script, use o seguinte comando:

    ~/hdmi

    O LXDE agora deve iniciar no monitor externo conectado via HDMI. Dê um tempo (cerca de 10 segundos) e mova o mouse para a esquerda da tela para que apareça no dispositivo HDMI.

    Veja o que o script faz (isso é apenas uma explicação, você não precisa executar esses comandos, apenas use o script acima):

    exporta o display para o que vamos usar para o monitor HDMI (8):

    export DISPLAY=:8.0

    executa o LXDE com o optirun (Bumblebee):

    optirun startlxde &

    executa o servidor Synergy em primeiro plano na tela principal (na sessão principal do seu laptop) com 127.0.0.1 como o endereço:

    synergys -f -a 127.0.0.1 --display :0 -n ubuntu &

    executa o cliente Synergy em primeiro plano no monitor HDMI e o conecta ao 127.0.0.1 endereço do servidor:

    synergyc -f -n hdmi --display :8 127.0.0.1 &

    E, finalmente, ele exporta a exibição de volta para a tela do seu laptop (principal):

    export DISPLAY=:0.0

    O script também usa alguns comandos "sleep" que adicionam um atraso para garantir que os comandos tenham tempo suficiente para serem executados antes de executar o próximo comando.

por titusjaka 01.03.2013 / 05:26