Optimus Prime com Bumblebee no Arch Linux

Publicado por Gabriel Moreira em 19/12/2017

[ Hits: 8.665 ]

 


Optimus Prime com Bumblebee no Arch Linux



Este tutorial demonstra os passos básicos para a instalação e uso da ferramenta Bumblebee no Arch Linux em notebooks com placa de vídeo híbrida, sendo uma placa principal Intel integrada à CPU trabalhando em conjunto com uma placa secundária dedicada da Nvidia.

Os procedimentos e comandos foram totalmente baseados na wiki.archlinux.org e realizados no meu próprio equipamento, cujas especificações são: Notebook Lenovo Ideapad 310, Intel Core i5-6200U @ 4x 2.8GHz, Intel® HD Graphics 520 (Skylake GT2), Nvidia GeForce 920M, 8 GB RAM, 1 TB HDD. A distribuição é o Arch Linux prontamente atualizado, com kernel padrão da distro e com interface Gnome Shell logado sobre o Xorg.

Para informações detalhadas sobre o Bumblebee no contexto do Arch Linux, esclarecimento de dúvidas e resolução de eventuais problemas, recomendo fortemente a leitura do artigo relacionado ao mesmo na ArchWiki:

INSTALAÇÃO

1. Caso ainda não tenha atualizado o sistema, faça-o primeiramente:

# pacman -Syu

2. Determine a versão correta do driver a ser instalado de acordo com o modelo de sua placa Nvidia. Para isso acesse o site oficial da Nvidia e selecione as opções correspondentes ao seu hardware, como no exemplo abaixo:
Clique no botão “Search”; na próxima página constará a informação acerca da versão correta do seu driver conforme exemplo abaixo:
No meu caso a versão do driver é a 384.98, que é a mais recente, e por correspondência de acordo com a ArchWiki o pacote a ser instalado é o nvidia. Para placas/drivers mais antigos há também os pacotes nvidia-340xx ou nvidia-304xx - acesse https://wiki.archlinux.org/index.php/NVIDIA#Installation para obter mais detalhes se for o seu caso).

ATENÇÃO: não é necessário baixar o driver no site da Nvidia uma vez que será instalado o pacote diretamente do repositório pacman, o que permitirá que o mesmo seja sempre atualizado junto com o restante do sistema.

3. Instale os pacotes necessários (adapte os pacotes de acordo com o driver correto de sua placa):

# pacman -S bumblebee mesa mesa-demos nvidia lib32-virtualgl lib32-nvidia-utils nvidia-settings xf86video-intel

4. Adicione seu usuário ao grupo Bumblebee:

# gpasswd -a [seu-usuário] bumblebee

5. Configure o serviço para inicialização automática junto ao sistema:

# systemctl enable bumblebeed.service

6. Reinicie o notebook.

7. Se tudo correu sem erros, nesse ponto você já tem o básico para utilizar suas duas placas de vídeo em conjunto. Faça um teste pra verificar se a placa dedicada está trabalhando corretamente. Abra um terminal e rode o comando abaixo:

optirun glxspheres64

Uma animação deverá ser executada na sua tela (observe na screenshot abaixo os níveis de FPS na janela do terminal):
Para testar também o funcionamento com aplicações 32-bit, repita o mesmo procedimento agora com o comando abaixo:

optirun glxspheres32

Se as animações rodarem em ambos os testes, significa que o Bumblebee está funcionando corretamente.

UTILIZAÇÃO

OPTIRUN

O funcionamento básico do sistema Optimus com o Bumblebee consiste em manter o uso da placa integrada como padrão e só recorrer à placa dedicada sob demanda, quando o usuário desejar obter um melhor rendimento gráfico ao rodar um aplicativo específico.

O comando básico para utilização do Bumblebee segue o modelo:

optirun [opções] aplicativo [parâmetros do aplicativo]

Por exemplo, para rodar o navegador Firefox com a placa dedicada:

optirun firefox

Para rodar o painel de configurações da Nvidia:

optirun -b none nvidia-settings -c :8

Para ver a lista completa de opções do comando optirun:

man optirun

PRIMUSRUN

Alternativamente ao comando optirun, pode ser utilizado também o primusrun, que consome menos energia e pode entregar uma melhor performance em alguns casos.

Para instalar o primusrun:

# pacman -S primus lib32-primus

Para usar (teste):

primusrun glxspheres64

$ primusrun glxspheres32


primusrun firefox

OPTIRUN + PRIMUSRUN

Para melhorar o entendimento deste tópico é necessário compreender o funcionamento da tecnologia Optimus Prime através do Bumblebee nos sistemas Linux.

Basicamente, quando a placa de vídeo dedicada é invocada pelo comando optirun ela faz o trabalho de renderização do aplicativo em um servidor X à parte e invisível para o usuário, e transmite os dados para a placa integrada que por sua vez faz a exibição gráfica propriamente dita no servidor X visível que está rodando a sessão do usuário.

Para realizar essa "transmissão" dos dados as placas usam uma ponte entre si que por padrão é o VirtualGL. Portanto, quando você roda o comando "optirun firefox", significa que está usando a placa dedicada para renderizar o Firefox, compactar os dados e transmisti-los à placa integrada via VirtualGL para que esta faça a exibição do programa na tela do seu notebook.

Considerando que por um lado o optirun permite customizar as opções de execução e por outro o primusrun permite uma melhor eficiência energética, existe a possibilidade de utilizar o comando optirun com substituição do VirtualGL pelo primusrun como ponte para a transmissão de dados entre as duas placas. Por exemplo, para rodar o Firefox sob tais condições:

optirun -b primus firefox

Se quiser configurar o primusrun como ponte padrão para o optirun, faça:

# nano /etc/bumblebee/bumblebee.conf

Localize e defina o parâmetro "Bridge" para que fique como:

Bridge=primus

Salve as alterações e feche o arquivo.

CONTROLE DE ENERGIA

Para que o notebook não apresente um demasiado aumento no consumo de energia em decorrência da ativação e uso simultâneo das duas placas gráficas, esta configuração possibilita que a placa dedicada seja desligada sempre que não estiver sendo usada sob demanda, mantendo ativa apenas a placa integrada.

Para que funcione, basta apenas instalar o pacote Bbswitch, não sendo necessário nenhum outro tipo de procedimento, pois o mesmo será automaticamente detectado e entrará em ação assim que o Bumblebee for ativado. Portanto basta fazer:

# pacman -S bbswitch

CONSIDERAÇÕES FINAIS

Essa dica foi feita para auxiliar o usuário mais novo (ou mesmo o experiente) que deseja usufruir dos recursos do seu hardware assim como eu e acaba esbarrando em eventuais dúvidas na hora de colocar tudo em prática.

Ressalto que, conforme a própria ArchWiki informa, a tecnologia Optimus Prime não foi desenvolvida para funcionar em sistemas baseados em Linux e o Bumblebee não é uma ferramenta oficial da equipe da Optimus, mas é o resultado do trabalho de uma comunidade de usuários que dispõem de seu tempo e esforço para adaptar um meio de se utilizar essa tecnologia em um ambiente para o qual ela não foi criada.

Recomendo novamente a leitura completa do artigo que trata do Bumblebee na ArchWiki:
que apesar de estar em Inglês, contém absolutamente todas as informações necessárias acerca desse tema.

Espero ter alcançado o objetivo com essa dica e que outros usuários possam aproveitá-la de acordo com suas necessidades.

Outras dicas deste autor

Módulo de Segurança Warsaw da Caixa no Arch Linux

Leitura recomendada

Entenda o relacionamento entre sudo, sudoers e sudoers.d

Repositórios para Slapt-get (Slackware Linux)

Invertendo os botões do touchpad no Slackware 14

Recuperando o GRUB depois de uma instalação do Windows

Aumentando compatibilidade do wireless Realtek 8187B (Itautec W7655) no Slackware (13.1 ou superior)

  

Comentários
[1] Comentário enviado por fabiiogomez em 08/08/2018 - 21:48h

quando eu rodo o "optirun glxspheres32" meu KDE fecha e reinicia, e quando tento rodar novamente da o seguinte erro

[ 283.620490] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA: Failed to initialize the NVIDIA kernel module. Please see the

[ 283.620576] [ERROR]Aborting because fallback start is disabled.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts