Optimus Prime com Bumblebee no Arch Linux

Publicado por Gabriel Moreira em 19/12/2017

[ Hits: 8.352 ]

 


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

Ubuntu mais rápido

Exibindo comandos em apresentações através do Screenkey

Arch Linux - Configurando Wi-Fi com wifi-menu

Restaurando o painel do Xubuntu 10.04

Adicionando o repositório Medibuntu no Ubuntu Linux

  

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