Aqui está minha correção / solução alternativa para o bug:
Se você quiser usar o bumblebee em vez do nvidia-prime, dê uma olhada na resposta fornecida por @ whizzzkid abaixo.
Testado com o Kubuntu 16.10 64-bit usando o KDE Plasma Version.7.5 e o KDE Frameworks Versão 5.26.0. As etapas a seguir funcionam para mim. Espero que eles trabalhem para você também, mas não posso garantir isso e não me responsabilizo se não o fizerem. Mas estou feliz em ajudá-lo se você deixar um comentário.
No meu caso, o problema era que a alternativa de atualização / usr / lib / nvidia-XYZ-prime / não funcionava. Ele deveria redirecionar as chamadas para o driver da intel-mesa, mas por alguma razão isso não aconteceu. Então, é provavelmente, afinal, um bug em update-alternatives? Ainda não encontrei um lugar para relatar um bug para as alternativas de atualização. Por favor, comente se você puder me ajudar.
Eu basicamente modifiquei nvidia-prime um pouco para alterar as update-alternatives diretamente para o driver intel-mesa em vez de / usr / lib / nvidia-XYZ-prime /.
Importante:
Antes de aplicar qualquer uma dessas etapas, saiba como acessar o modo de recuperação no seu PC. Se você não puder mais inicializar devido a este guia, ainda poderá desfazer as alterações no modo de recuperação com os comandos da última seção deste guia. Veja este website sobre como acessar o modo de recuperação para obter mais informações.
Se você usa um sistema operacional 32-bit , você deve deixar de fora todos os comandos que contêm x86_64 na Etapa 4 e na seção Como desfazer todas essas modificações .
Etapa 1:
Instale meu patch usando um método fácil fornecido por @whizzzkid em sua resposta abaixo:
cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select
Etapa 2:
Aplique meu segundo patch para reduzir o consumo de energia no modo intel:
Verifique qual versão do driver nvidia você possui. Por exemplo, com o seguinte comando:
$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 378.13 Tue Feb 7 20:10:06 PST 2017
GCC version: gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12)
Neste caso, o nvidia-XYZ é o nvidia-378. Veja este Stackoverflow thread .
Crie um arquivo bash contendo o seguinte conteúdo nomeado por exemplo poweroff.sh
#!/bin/bash
line=$(</etc/prime-discrete)
if [ "$line" == "off" ]
then
rmmod nvidia-drm
rmmod nvidia-modeset
rmmod nvidia
bash -c 'echo OFF > /proc/acpi/bbswitch'
fi
Crie um segundo arquivo bash contendo o seguinte conteúdo nomeado por exemplo poweron.sh e substitua XYZ pelo seu número de versão do driver nvidia.
#!/bin/bash
modprobe nvidia-XYZ
modprobe nvidia-XYZ-modeset
modprobe nvidia-XYZ-drm
modprobe nvidia-XYZ-uvm
echo ON > /proc/acpi/bbswitch
No modo Intel, você precisa executar o primeiro script após o login com o sudo e o segundo antes do efetuar logout com o sudo (caso contrário, o seu laptop provavelmente falhará, como no meu caso). Eu apenas os executo com sudo bash FILENAME
.
Até agora, não consegui inicializar automaticamente esses scripts como root no login e antes do logout. No entanto, pode ser possível com o upstart, como @ Fiximan apontou. Eu posso atualizar esta resposta novamente em algum momento no futuro, se eu conseguir fazê-lo.
(provavelmente) erros específicos do KDE Plasma:
Ainda há um bug que não consegui corrigir no KDE Plasma: Sempre que eu mudo da Nvidia para a Intel depois que iniciei o PC no modo nvidia, o ksmserver trava e o PC é renderizado inutilizável, eu tenho que desligá-lo pressionando o botão de energia por cerca de 5-10 segundos. Isso às vezes resulta na atualização de alternativas sendo alteradas para nvidia-prime em vez de intel-mesa, o que leva a uma tela preta na inicialização .
Se acontecer de você ser afetado pelo bug ksmserver, por favor, contribua para o relatório de erros oficial em bugs.kde.org .
No entanto, o problema que o PC não encerra pode ser evitado sempre selecionando o modo Intel antes do desligamento , mesmo quando você usa o modo nvidia. Se você fizer isso, tudo funcionará como deveria e não será necessário desligar o PC pressionando longamente o botão liga / desliga, exceto depois de aplicar este guia no modo nvidia.
Uma solução simples para o tela preta ao reiniciar o bug é apenas remover completamente as alternativas de atualização que não funcionam:
Etapa 1:
Você pode acessar seu PC novamente após entrar no modo de recuperação, selecionar o shell de comando root e executar os 2 comandos a seguir:
mount -o remount,rw /
prime-select nvidia
Etapa 2:
Execute os seguintes comandos:
sudo update-alternatives --remove i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf
Como desfazer todas essas modificações
Basta executar os seguintes comandos:
sudo rm /usr/bin/prime-select
sudo mv /home/YOUR-USERNAME/prime-select.backup /usr/bin/prime-select
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_GL.conf i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603