[TUTORIAL] Resolver Problema de Placas Hibridas (Intel / Nvidia) em Distros Derivadas do Ubuntu

Atenção:

Obs. 1 : Este Procedimento foi testando somente com KDE Neon User Edition e elementary OS 15 Juno e Driver Nvidia 418, entretanto deve funcionar em outras distros derivadas como o Linux Mint e outras versões do Driver Nvidia.

Obs. 2 : Este Procedimento irá alterar alguns arquivos que são críticos no funcionamento de seu S.O. portanto prossiga por sua conta e risco.

Ferramentas Utilizadas:

  • Powertop : Para verificar se o procedimento está funcionando, instale-o com :
    sudo apt install powertop . Para usa-lo utilize sudo powertop no terminal
  • Editor de Texto qualquer. Neste tutorial será usado o nano via terminal.

Passo a Passo:

1 - Identificando o Problema

Abra o powertop e, utilizando a tecla TAB vá até a ultima aba chamada de “ajustáveis” e procure por sua placa de vídeo. Ela deve estar com o marcador “Ruim”. Este tutorial só foi testado para estes casos.

2 - Teste da Solução

Obs : Nesta parte iremos testar para garantir que a solução irá funcionar, sem alterar arquivos críticos de forma permanente, desde modo, evitando problemas maiores no caso de não funcionar. Caso não queira realizar o teste, pode pular para o passo 3.

Tendo Identificado o problema certifique-se de estar com o perfil de video Intel no Nvidia X Server Settings ativado e rodando. Após, Abra o terminal, ou editor de texto de sua preferência, e crie um arquivo em /etc/modprobe.d/ chamado blacklist-nvidia.conf, você pode escolher qualquer nome, e abra o arquivo como sudo, no terminal será sudo nano /etc/modprobe.d/blacklist-nvidia.conf .

Dentro do arquivo insira o seguinte texto:

alias nvidia-drm off
alias nvidia-modeset off

Salve e reinicie o seu computador, logo após abra o powertop na aba de ajustáveis e verifique o marcador da placa de video, ele deverá estar com “Bom” antes do nome, caso não esteja, infelizmente este tutorial não funcionará para você.

Ao trocar para o perfil de video para Nvidia e retornar para Intel este arquivo é sobrescrito e o problema volta a aparecer, entretanto, existe uma maneira de escrever essas informações no arquivo automaticamente na troca de perfil.

Explciação : Não sou nenhum expert, então posso estar errado na explicação, mas até onde sei, essa duas linhas fazem com que o kernel não carregue o Driver proprietário da Nvidia, evitando assim que o chip seja energizado e consuma bateria, por este motivo que o arquivo deve ser sobreescrito ao se mudar o perfil de vídeo para o da Nvidia.

3 - Implementando

Com a certeza de que o procedimento irá funcionar, iremos automatizar a escrita do arquivo. Ainda com o perfil de vídeo da Intel selecionado, abra o arquivo /usr/bin/prime-select como sudo. No terminal sudo nano /usr/bin/prime-select, mas recomendo utilizar um editor de texto com contagem de linhas, para facilitar.

Este é o script que realiza a mudança de perfil de vídeo, portanto prossiga com cautela.

Vá até a linha 165, ou procure por blacklist_fd.close() que está dentro da função _blacklist_nvidia(self) .

Logo abaixo de blacklist_fd.close() digite ou cole o seguinte trecho de código

blacklist_text_old = '''alias nvidia-drm off
alias nvidia-modeset off'''

        blacklist_fd_old = open(self._old_blacklist_file)
        blacklist_fd_old.write(blacklist_fd_old)
        blacklist_fd_old.close()

O trecho todo deve ficar assim:

Tutorial

Feito isso, salve o arquivo editado e pronto, a partir de agora o arquivo será sobreescrito toda vez que realizar a mudança de perfil de vídeo.

4 - Conclusão

Para testar a solução, troque para o perfil de vídeo da Nvidia e reinicie, tudo deve funcionar normalmente, após, troque para o perfil de vídeo da Intel e reinicie novamente, ao iniciar, abra o powertop novamente na aba de “ajusáveis” e verifique a placa de vídeo, ela deve estar com o marcador “Bom”. Caso isso aconteça a solução estará totalmente inplementada, Aproveite :slight_smile: . Caso não, Provavelmente houve algum erro em algum passo, ou simplesmente a versão do Driver Nvidia que está utilizando pode ter quebrado esta solução.

Eu mesmo que descobri essa solução e tentei trazer um tutorial bem explicado sobre essa solução, portanto, se tiver algo a acrescentar, ou uma critica construtiva sobre os procedimentos acima, ou sobre o tutorial, sinta-se a vontade para escrever aqui em baixo :slight_smile: !!!

4 Curtidas