Como instalar drivers da Nvidia no laptop Dell Latitude - Ubuntu 16.04

1

Após a atualização 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 no lightdm , depois de fazer o login, a tela ficava preta e depois voltava para o tela de login. O login em tty0 funcionou bem. Eu tenho um laptop Del Latitude 3350 com um Core i5 5200U e uma Nvidia GeForce 830M. A atualização decidiu que eu precisava dos drivers nvidia-361 , antes de usar nvidia-352 . Muitas das instruções que encontrei anteriormente mencionaram o Secure Boot em meu UEFI BIOS, mas que já estava desativado (não me lembro se o desliguei assim que obtive o laptop ou se ele foi fornecido dessa forma pela Dell) . Reinstalar e / ou reconfigurar lightdm não ajudou. Eles pelo menos me apontaram a direção de desinstalar os drivers da Nvidia, mas isso é apenas uma solução parcial. Esta não é uma duplicata de outras questões que vi no askubuntu, já que as etapas que funcionaram para os outros não funcionaram para mim. Possivelmente, o guia mais próximo é Como instalar drivers gráficos sane para hardware Nvidia Optimus no * Ubuntu 16.04? . No entanto, isso não faz a GPU Nvidia utilizável para mim, eu tive que instalar o Bumblebee. Além disso, esse guia vincula-se a [Bumblebee em um Lenovo T440p [NVidia GT 730M] com o XUbuntu / Ubuntu 16.04 LTS] { link } exceto que seguir essas instruções realmente me deixou sem um Bumblebee em funcionamento também.

Depois de pesquisar muito, descobri que a solução parcial era desinstalar os drivers da Nvidia. Eu finalmente encontrei estes instruções que me levaram ao ponto de logar.

Uma observação importante antes de continuar, parece que você precisa ter os drivers intel-microcode instalados usando a guia Drivers adicionais em Configurações do sistema. Eu já os tinha instalado (provavelmente do Ubuntu 15.10 dias), então nunca testei o que acontece se eles não estiverem instalados.

Eu usei os seguintes comandos para remover os drivers Bumblebee e Nvidia, seguido pela reinstalação dos drivers da Nvidia. Note que você precisa adicionar o repositório de drivers gráficos para obter os drivers mais recentes da Nvidia:

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 o desenvolvimento OpenCL), então tudo funciona 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

Eu continuei com as instruções para que eu pudesse fazer o Bumblebee funcionar. sudo prime-select intel foi necessário porque, do contrário, após a reinicialização, eu volto ao loop de login infinito. Após a reinicialização, executei sudo apt install bumblebee , depois editei /etc/bumblebee/bumblebee.conf para alterar todas as instâncias de nvidia-current para nvidia-367 . Eu também editei /etc/modprobe.d/bumblebee.conf para incluir a linha blacklist nvidia-367 . Como não há pacotes nvidia-367-updates ou nvidia-experimental-367 para eu instalar, eu 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 da Nvidia também funciona ao usar 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.

Eu tentei alterar a linha Bridge= para Bridge=primus e a linha PMMethod=auto para PMMethod=bbswitch em /etc/bumblebee/bumblebee.conf . Isso não ajudou.

Como faço para que os drivers da Bumblebee e da Nvidia funcionem aqui, parece que nenhum conjunto único de instruções funciona? Bônus: Como faço para que os drivers da Nvidia funcionem plenamente ao usar prime-select nvidia em vez de Bumblebee?

    
por chippies 04.09.2016 / 09:14

1 resposta

1

As soluções que encontrei até agora fazem o Bumblebee funcionar (principalmente) e fornecem um meio de desligar manualmente a GPU da Nvidia quando não estão em uso. Ainda não consegui glxinfo trabalhar quando usei prime-select nvidia em vez de optirun .

Comecei a seguir estes instruções. Eu adicionei i915 e bbswitch a /etc/modules . Eu corri sudo gpasswd -a $USER bumblebee e sudo systemctl enable bumblebeed . Esses dois comandos parecem ter terminado com sucesso. Após a reinicialização, o problema permanece o mesmo. Se eu fizer sudo prime-select nvidia seguido por glxinfo , ainda receberei o erro couldn't find RGB GLS visual or fbconfig .

Neste ponto, decidi instalar o bumblebee-nvidia - as instruções que eu criei na minha pergunta não, o link acima incluiu no entanto. Surpreendentemente, isso resolveu meus problemas principalmente. Agora, fazendo optirun glxinfo ou primusrun glxinfo imprime 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 tentando corrigir esse problema, instalando bumblebee-nvidia broke optirun / primusrun .

A única coisa que não funciona é prime-select nvidia seguido por glxinfo . Então eu ainda recebo o erro sobre a 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, indica que minha GPU da Nvidia ainda está ativa. Executando lspci | grep NVIDIA retorna 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2) , o que confirma o endereço PCIe da minha GPU da Nvidia.

O problema de energia, baseado em dmesg | grep bbswitch , era que o módulo nvidia estava impedindo a GPU de desligar. A desativação manual da GPU da Nvidia é possível 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 fui procurar um método automático para fazer isso funcionar.

Para resolver Bumblebee não desligar minha GPU Nvidia, eu tentei as instruções do projeto bumblebee mas sem sucesso. Especificamente, meu /etc/modprobe.d/bbswitch.conf contém options bbswitch load_state=0 e eu adicionei bbswitch load_state=0 ao final de /etc/modules . Eu corri sudo update-initramfs -u , seguido pela reinicialização, mas cat /proc/acpi/bbswitch ainda mostra que a GPU está ativada. No momento, estou trabalhando em torno disso usando um script com os comandos rmmod para desligar a GPU da Nvidia. Executar qualquer programa com optirun ou primusrun recarrega automaticamente esses drivers.

    
por chippies 04.09.2016 / 09:14