Como instalar drivers nVidia com o Bumblebee no Ubuntu 14.04

10

Como título, como posso configurar corretamente a tecnologia nvidia-optimus no Ubuntu?

    
por tigerjack89 15.11.2014 / 12:01

1 resposta

26

NB: este post é o resultado de muitos dias em que leu vários conteúdos na Web, por isso, tome-o por sua conta e risco. Foi testado no Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (todos os 64 bits) com a placa gráfica nVidia GT650M. Sinta-se à vontade para adicionar comentários e sugestões

Instale a nVidia e o bumblebee

1. Primeiro de tudo, temos que excluir todos os drivers de vídeo no computador:

sudo apt-get remove --purge nvidia*

Em seguida, bumblebee no caso, se você tiver instalado anteriormente:

sudo apt-get remove --purge bumblebee*

Também temos que excluir todo o driver nouveau com:

sudo apt-get --purge remove xserver-xorg-video-nouveau

Para ter certeza de ter excluído todo o material, tente digitar dpkg -l | grep nvidia e dpkg -l | grep bumblebee : ele não deve retornar nada. Para dpkg -l | grep nouveau , é provável que retorne algumas linhas dizendo libdrm-nouveauXXXXX ; por enquanto, apenas ignore-os.

2. Então, temos que garantir que todos os cabeçalhos digitem:

sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)

3. A próxima coisa a fazer é colocar na lista negra os drivers nouveau restantes e alguns outros pacotes que podem causar problemas:

sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
 sudo gedit /etc/modprobe.d/blacklist.conf

Adicionando as seguintes linhas no final do arquivo:

# Necessary to install nvidia drivers
blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current
blacklist nvidia-173-updates
blacklist nvidia-96-updates
alias nvidia nvidia_current_updates
alias nouveau off
alias lbm-nouveau off
options nouveau modeset=0

Basta salvar e sair.

4. Agora, execute os melhores comandos do ubuntu

sudo apt-get update && sudo apt-get dist-upgrade -y

5. A partir de agora, trabalhamos no tty. Abra o console tty1 com CTRL + ALT + F1 e faça o login com seu nome de usuário e senha. Então execute:

sudo service lightdm stop

Agora vamos instalar os drivers. Execute:

sudo apt-get install nvidia-XXX-updates nvidia-settings

em que XXX são os drivers mais recentes estáveis. Estou usando os 331 drivers, mas li em algum lugar que os 343 estão disponíveis para download (não sei se são estáveis).

N.B: Com as versões mais recentes do driver, também instala nvidia-prime por padrão. Esta tecnologia destina-se a alternar automaticamente entre a placa gráfica Intel e nVidia sem intervenção do usuário. Para fazer isso, deixa as duas cartas ativadas. O Optimus, por outro lado, liga a placa gráfica da nVidia apenas com pedido explícito do usuário; isso significa um consumo de energia significativamente menor em relação ao prime.

Pessoalmente prefiro optimus over prime, mas se você não se incomodar com o enorme desperdício de energia, pare aqui. Caso contrário, você tem duas opções:

  • delete completamente o primo ( sudo apt-get remove --purge nvidia-prime );

  • deixe o primeiro lá; na seção "Prime com otimus", vamos ver como fazer optirun trabalhe também com prime install

6. Agora, temos que instalar o bumblebee e os pacotes do virtualgl com

sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386

Em seguida, temos que adicionar nosso usuário ao grupo de abelhões com:

sudo usermod -a -G bumblebee $USER

E, em seguida, reinicie o computador.

7. Entre na sua conta de usuário, abra uma nova janela de terminal e digite:

cd /etc/bumblebee
ls -Al

Entre os vários arquivos listados, deve haver dois em particular: bumblebee.conf e xorg.nvidia.conf . Vamos fazer uma cópia de backup de ambos com:

sudo cp FILE_NAME FILE_NAME.bak

Você deve substituir FILE_NAME pelo nome real do arquivo. Então, vamos modificar o primeiro arquivo com sudo gedit bumblebee.conf , adicionando (tudo sem aspas)

    Seção
  • [bumblebeed]: após "Driver=" insira "nvidia"
  • Seção
  • [nvidia-driver]: após "KernelDriver=" inserir "nvidia-XXX-updates"
  • Seção
  • [nvidia-driver]: após "LibraryPath=" inserir "/ usr / lib / nvidia-XXX-updates, / usr / lib / nvidia-331-updates: / usr / lib32 / nvidia-XXX-updates"
  • Seção
  • [nvidia-driver]: após "XorgModulePath=" inserir "/ usr / lib / nvidia-XXX-updates / xorg, / usr / lib / xorg / modules"

Assegure-se de que o "XorgConfFile" sob [nvidia-driver] seja igual a "/etc/bumblebee/xorg.conf.nvidia" (novamente, sem aspas), depois salve e feche o gedit.

Agora temos que editar o outro arquivo com sudo gedit xorg.conf.nvidia (neste caso, temos que inserir as aspas também !!). Substituir Option "ConnectedMonitor" "DFP" com Option "UseDisplayDevice" "none" , salve e saia.

8. Execute gedit /etc/modprobe.d/bumblebee.conf e certifique-se de que todas as linhas que contêm blacklist <something> não sejam comentadas (por exemplo, elas não começam com # ).

9. Neste ponto, execute o seguinte comando

sudo service bumblebeed start

Se retornar um erro, tente executar novamente o comando com restart, em vez de start. Se você ainda tem erros, algo como:

restart: Unknown job: bumblebeed

Provavelmente há algo errado no arquivo bumblebee.conf; então, volte a verificar o passo 7.

Se, em vez disso, o resultado for semelhante a:

bumblebeed start/running, process XXXXX

Você logo acaba de configurar o zangão!

10. Agora podemos simplesmente executar optirun glxspheres ou optirun glxspheres64 . Se tudo funcionar como esperado, você tem uma saída como esta:

$ optirun glxspheres64
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
182.253407 frames/sec - 203.394802 Mpixels/sec
182.940725 frames/sec - 204.161849 Mpixels/sec
....

Para verificar novamente se estamos realmente usando drivers nvidia, abra outro terminal enquanto optirun <application> estiver em execução e digite sudo lshw -c display | grep driver . O resultado deve ser algo assim.

configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0

Se, por outro lado, você fechar todo o aplicativo iniciado com optirun , ele deverá mostrar apenas o driver intel. É isso aí!

Instalar o Bumblebee UI

Graças a essa resposta do Pavak Paul, aqui estão as instruções para adicionar a interface do usuário do bumblebee no Ubuntu 14.04 para gerenciar aplicativos a serem abertos usando a nVidia.

1. Instalar o indicador do aplicativo Python:

sudo apt-get install python-appindicator

2. Instalar o Git:

sudo apt-get install git

3. Crie um diretório para git:

mkdir git && cd git

4. Confira o repositório:

git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL

5.Vá para Startup Applications e adicione bumblebee-indicator [clique em Add, então insira o Name e o comentário que você quer; insira bumblebee-indicator na caixa de comando e clique em Adicionar).

6. Reinicie.

Prime com optimus

Se você quiser ter a opção de usar também nvidia-prime , tente seguir as instruções abaixo.

1. Para evitar que bumblebeed inicie na inicialização, execute:

echo "manual" | sudo tee /etc/init/bumblebeed.override

2. Este ponto é o mais problemático; ele impede que o bumblebee bloqueie os drivers da nVidia e deve resultar no congelamento da sessão gráfica. Experimente por sua conta e risco! Executar:

sudo gedit /etc/modprobe.d/bumblebee.conf

E comente a linha que contém seus drivers da nVidia XXX. Isso deve resultar em algo assim.

# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX

3. Reinicialize o sistema e inicie nvidia-settings . A situação final é esta:

Se você selecionar "Intel (Economia de energia)" nas configurações da nvidia, terá apenas a placa gráfica Intel ativada por padrão. Você ainda precisa executar um aplicativo com optirun para usar a placa gráfica nVidia

sudo service bumblebeed start
optirun <application>

Se, em vez disso, você quiser usar o perfil "Nvidia (Performance)", selecione-o na nvidia-settings, depois faça login / logout e tudo funcionará automaticamente. A única coisa é que você não precisa lançar o bumblebeed daemon com este perfil selecionado, pois isso pode causar problemas.

Caso você tenha problemas:

1. Se você quiser usar apenas nvidia-prime :

sudo apt-get --purge remove bumblebee*

Em seguida, reinicie.

2. Se você quiser usar apenas otimus sem remover nvidia-prime, edite novamente o arquivo anterior:

sudo gedit /etc/modprobe.d/bumblebee.conf

Descomentando (removendo o caractere #) das linhas modificadas anteriormente:

# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX

E reiniciando. Nesse caso, você pode deixar o bumblebeed sendo executado no momento da inicialização:

sudo rm /etc/init/bumbebeed.override
    
por tigerjack89 15.11.2014 / 12:01