NVIDIA Optimus (bumblebee) no Fedora – Notebooks

Olá,

Neste HOW-to pretendo demonstrar e explanar um pouco sobre a tecnologia NVIDIA Optimus utilizada em alguns notebooks/ultrabooks com 2 GPU’s.

Muitos dos laptops atuais têm sistemas híbridos de processamento 3D que permitem ter ao mesmo tempo uma placa de vídeo poderosa e um sistema leve para gastar pouca bateria.

No caso dos laptops com placas de vídeo nVidia, este sistema híbrido chama-se Optimus e basicamente funciona desta maneira: a placa nVidia está sempre desligada e a placa Intel (menos potente mas que gasta menos bateria) faz o processamento; quando usuário quiser fazer uso da placa nVidia, para jogar por exemplo, o sistema liga-a automaticamente e usa-a para processar o jogo ou outra aplicação que requer de mais “poder” gráfico.

Como funciona o Bumblebee:

Basicamente o funcionamento é o seguinte: Depois de você instalar o Bumblebee, a placa da nVidia ficará sempre desligada até ser necessário. Quando o usuário quiser fazer uso da placa da nVidia, deverá executar os programas através do programa do Bumblebee chamado “optirun” ou “primusrun”.
Algumas considerações antes de instalar o Bumblebee:
Você precisa ter em mente que devido ao driver ser proprietário, 99% do necessário para que ele funcione corretamente depende da desenvolvedora, no caso, a NVIDIA. De cara, você precisa também verificar e realizar, se necessário, alterações em seu equipamento para que, mais adiante, não venha a ter problemas. Basicamente, o mínimo é:
a) Em um cenário ideal, se no setup estiver configurado UEFI, altere para MBR e instale o Fedora. Se isso não for possível por algum motivo, tudo bem, pode manter.
b) Este é importantissimo: Desabilitar o secure boot, Isso porque drivers não assinados no kernel não irão ter seus módulos carregados no boot, juntamente como o mesmo, então o driver não irá funcionar.
Verificando se o seu laptop tem suporte ao NVIDIA® Optimus:
$ lspci -vnn | grep '\''[030[02]\]'

Se o resultado por positivo, a saída será basicamente como esta:

00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 520 [8086:1916] (rev 07) (prog-if 00 [VGA controller])
01:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 930M] [10de:1346] (rev ff) (prog-if ff)

Como instalar o Bumblebee no Fedora:

a) adicionando o repositório do RPM Fusion, Fedora Workstation e instalando o driver nvidia:

# dnf install fedora-workstation-repositories
# dnf config-manager rpmfusion-nonfree-nvidia-driver --set-enabled
# dnf install akmod-nvidia acpi

b) Adicionando o repositório COPR:

# dnf copr enable chenxiaolong/bumblebee

c) Instalando os pacotes (driver bbswitch, bumblebee e o primus):

# dnf install akmod-bbswitch bumblebee primus

d) Para que o primusrun e o optirun funcionem, é necessário adicionar o seu usuário ao grupo bumblebee, trocando a variável $USER pelo seu usuário, evidentemente:

# gpasswd -a $USER bumblebee

e) Ative o serviço bumblebeed e desative o serviço nvidia-fallback. este ultimo, carrega o driver nouveau caso o driver proprietário falhe ao ser iniciado no boot. Com o bumblebee, ele se torna desnecessário:

# systemctl enable bumblebeed
# systemctl disable nvidia-fallback

Reinicie seu computador e, na melhor das hipóteses, o Bumblebee estará pronto para usar

Exemplos de como utilizar o bumblebee:

Para abrir o utilitário nvidia-settings:

$ optirun -b none nvidia-settings -c :8

Para executar um aplicativo via wine:

$ optirun wine application.exe

Para uma lista completa das sintaxes possíveis com o optirun use:

$ man optirun

Além do optirun, existe um outro script que promete dar maior desempenho na execução de programas através da GPU discreta (Nvidia). Este é o Primus. O seu script é chamado primusrun

Uma ultima dica é utilizar o Bumblebee para executar jogos via Steam. Para isso, clique sobre o game com o botão direito do mouse > propriedades > opções de inicialização… e configure como abaixo:

a) Usando Primus

b) Usando Optirun, que por vezes pode ser mais performático:

Problemas podem acontecer, nunca se sabe. Caso ocorram problemas, minha recomendação é verificar a sessão Troubleshooting da documentação oficial, onde aborda com detalhes vários problemas comuns e dicas de resolução.

Para remover o bumblebee, segue:

a) Removendo os pacotes principais e restaurando o nvidia-fallback

# dnf remove akmod-bbswitch bumblebee primus
# systemctl preset nvidia-fallback

b) Removendo o repositório do Bumblebee

# dnf copr remove chenxiaolong/bumblebee

c) Para remover os drivers Nvidia®

# dnf remove akmod-nvidia xorg-x11-drv-nvidia\*

d) Desativando o repositório do driver Nvidia®

# dnf config-manager rpmfusion-nonfree-nvidia-driver --set-disabled

UPDATE 17/05/2019 – Alterados os procedimentos para instalação do bumblebee

Referências:

http://www.nvidia.com.br/object/optimus_technology_br.html

https://en.wikipedia.org/wiki/Nvidia_Optimus

https://docs.fedoraproject.org/en-US/quick-docs/bumblebee/index.html