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.