Após atualizar do Ubuntu 15.10 para 16.04.1, ambos de 64 bits, fiquei preso em um loop de login infinito - toda vez que eu fazia login lightdm
, após o login a tela ficava preta e depois voltava para a tela de login. O login tty0
funcionou bem. Eu tenho um laptop Del Latitude 3350 com Core i5 5200U e Nvidia GeForce 830M. A atualização decidiu que eu precisava dos nvidia-361
drivers antes de usar o nvidia-352
. Muitas das instruções que encontrei anteriormente mencionavam a inicialização segura no meu UEFI BIOS, mas ela já estava desativada (não me lembro se desliguei assim que comprei o laptop ou se foi enviado dessa forma pela Dell) . A reinstalação e/ou reconfiguração lightdm
não ajudou. Eles pelo menos me indicaram a desinstalação dos drivers da Nvidia, mas isso é apenas uma solução parcial. Esta não é uma duplicata de outras perguntas que vi no askubuntu, pois as etapas que funcionaram para outras pessoas não funcionaram para mim. Possivelmente o guia mais próximo sejaComo instalar drivers gráficos sensatos para hardware Nvidia Optimus no * Ubuntu 16.04?. No entanto, isso não torna a GPU Nvidia utilizável para mim, tive que instalar o Bumblebee. Além disso, esse guia tem links para [Bumblebee em um Lenovo T440p [NVidia GT 730M] com XUbuntu/Ubuntu 16.04 LTS]{http://lenovolinux.blogspot.co.za/2016/05/bumblebee-on-lenovo-t440p-nvidia-gt.html?m=1} exceto que seguir essas instruções também me deixou sem um Bumblebee funcionando.
Depois de muito pesquisar no Google, descobri que a solução parcial era desinstalar os drivers da Nvidia. Eu finalmente encontreiessesinstruções que me levaram ao ponto de conseguir fazer login.
Uma observação importante antes de continuar: parece que você precisa instalar os intel-microcode
drivers usando a guia Drivers Adicionais nas Configurações do Sistema. Eu já os tinha instalados (provavelmente do Ubuntu 15.10 dias), então nunca testei o que acontece se eles não estiverem instalados.
Usei os seguintes comandos para remover o Bumblebee e os drivers da Nvidia, seguido de reinstalar os drivers da Nvidia. Observe que você precisa adicionar o repositório de drivers gráficos para obter os drivers Nvidia mais recentes:
sudo apt-get purge .*nvidia.* bumblebee.* .*primus.*
sudo apt-get --purge autoremove
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install nvidia-367 nvidia-prime nvidia-settings
Isso resultou na instalação dos seguintes pacotes:
bbswitch-dkms libcuda1-367 libjansson4 nvidia-367 nvidia-opencl-icd-367 nvidia-prime nvidia-settings screen-resolution-extra
Então eu fiz rm .nvidia-settings-rc
.
Neste ponto, as instruções dizem para executar alguns programas que usam a GPU. Se eu executar clinfo
(eu uso a GPU para desenvolvimento OpenCL), tudo funcionará bem. Outros programas OpenCL também funcionam bem. No entanto, se eu executar, glxinfo
recebo a seguinte saída:
name of display: :0
Error: couldn't find RGB GLX visual or fbconfig
Continuei com as instruções para poder fazer o Bumblebee funcionar. sudo prime-select intel
foi necessário porque, caso contrário, após a reinicialização, voltarei ao loop infinito de login. Após a reinicialização, fiz sudo apt install bumblebee
a edição /etc/bumblebee/bumblebee.conf
para alterar todas as instâncias de nvidia-current
para nvidia-367
. Também editei /etc/modprobe.d/bumblebee.conf
para incluir a linha blacklist nvidia-367
. Como não há nvidia-367-updates
nenhum nvidia-experimental-367
pacote para eu instalar, não os coloquei na lista negra.
Após a reinicialização, posso executar primusrun clinfo
e imprimir a plataforma Nvidia. A execução de programas OpenCL na GPU Nvidia também funciona ao usar arquivos primusrun
. No entanto, primusrun glxinfo
me dá um erro:
primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
Usar optirun
para qualquer coisa me dá um erro semelhante, por exemplo, optirun clinfo
e optirun glxinfo
ambos dão:
[ 462.796690] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
[ 462.796725] [ERROR]Aborting because fallback start is disabled.
Tentei mudar a linha Bridge=
para Bridge=primus
e a linha PMMethod=auto
para PMMethod=bbswitch
in /etc/bumblebee/bumblebee.conf
. Isso não ajudou.
Como faço para que os drivers do Bumblebee e da Nvidia funcionem aqui? Parece que nenhum conjunto de instruções funciona? Bônus: como faço para que os drivers da Nvidia funcionem totalmente ao usar prime-select nvidia
o Bumblebee?
Responder1
As soluções que encontrei até agora fazem o Bumblebee funcionar (principalmente) e fornecem um meio de desligar manualmente a GPU Nvidia quando não estiver em uso. Ainda não comecei glxinfo
a trabalhar ao usar prime-select nvidia
em vez de optirun
.
comecei a seguiressesinstruções. Eu adicionei i915
e bbswitch
para /etc/modules
. Eu corri sudo gpasswd -a $USER bumblebee
e sudo systemctl enable bumblebeed
. Esses dois comandos parecem ter sido concluídos com sucesso. Após a reinicialização, o problema permanece o mesmo. Se eu sudo prime-select nvidia
seguir, glxinfo
ainda recebo o erro couldn't find RGB GLS visual or fbconfig
.
Nesse ponto, decidi instalar bumblebee-nvidia
- as instruções vinculadas na minha pergunta diziam que não, mas o link acima o incluía. Surpreendentemente, isso resolveu principalmente meus problemas. Agora, faça optirun glxinfo
ou primusrun glxinfo
imprima as informações da GPU Nvidia. optirun glxgears
e optirun glxheads
(e também usando primusrun
) funciona bem. Uma palavra de cautela, em uma iteração anterior ao tentar corrigir esse problema, instalando bumblebee-nvidia
o optirun
/ primusrun
.
A única coisa que não funciona é prime-select nvidia
seguida por glxinfo
. Ainda recebo o erro sobre falha ao carregar o módulo "mouse". Além disso, se eu executar, cat /proc/acpi/bbswitch
continuo recebendo 0000:04:00.0 ON
, o que acredito indicar que minha GPU Nvidia ainda está ligada. A execução lspci | grep NVIDIA
retorna 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2)
que confirma o endereço PCIe da minha GPU Nvidia.
O problema de energia, com base no dmesg | grep bbswitch
, era que o nvidia
módulo estava impedindo o desligamento da GPU. É possível desligar manualmente a GPU Nvidia executando sudo rmmod nvidia_drm
, sudo rmmod nvidia_uvm
, sudo rmmod nvidia_modeset
e sudo rmmod nvidia
, seguido por sudo tee /proc/acpi/bbswitch <<<OFF
. Não é ótimo, então procurei um método automático para fazer isso funcionar.
Para resolver o problema de o Bumblebee não desligar minha GPU Nvidia, tentei as instruçõesdo projeto abelhamas sem sucesso. Especificamente, my /etc/modprobe.d/bbswitch.conf
contains options bbswitch load_state=0
e eu adicionei bbswitch load_state=0
ao final de /etc/modules
. Eu executei sudo update-initramfs -u
, seguido de reinicialização, mas cat /proc/acpi/bbswitch
ainda mostra que a GPU está LIGADA. No momento, estou resolvendo isso usando um script com rmmod
comandos para desligar a GPU Nvidia. Executar qualquer programa optirun
ou primusrun
recarregar automaticamente esses drivers.