Como título, como posso configurar corretamente a tecnologia nvidia-optimus no Ubuntu?
Como título, como posso configurar corretamente a tecnologia nvidia-optimus no Ubuntu?
Respostas:
NB: este post é o resultado de muitos dias passados lendo vários materiais na web, portanto, tome-o por sua conta e risco. Foi testado no Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (todos de 64 bits) com placa gráfica nVidia GT650M. Sinta-se livre para adicionar comentários e sugestões
1. Primeiro, precisamos excluir todos os drivers de vídeo no computador:
sudo apt-get remove --purge nvidia*
Em seguida, o zangão, caso você o tenha instalado anteriormente:
sudo apt-get remove --purge bumblebee*
Também temos que excluir todo o driver do 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. Pois dpkg -l | grep nouveau
é provável que ele 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 restantes do nouveau 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
Apenas salve e saia.
4. Agora, execute os comandos ubuntu mais conhecidos
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. Em seguida, execute:
sudo service lightdm stop
Agora vamos instalar os drivers. Executar:
sudo apt-get install nvidia-XXX-updates nvidia-settings
onde XXX são os drivers estáveis mais recentes. Estou usando os drivers 331, mas li em algum lugar que os 343 estão disponíveis para download (não sei se são estáveis).
Nota: com as versões mais recentes do driver, ele também é instalado 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 os dois cartões ligados. A Optimus, por outro lado, liga a placa gráfica nVidia apenas com solicitação explícita do usuário; traduz em significativamente menos consumo de energia em relação ao prime.
Pessoalmente, prefiro o otimus do que o 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:
excluir completamente prime ( sudo apt-get remove --purge nvidia-prime
);
deixe o prime lá; na seção "Prime with optimus", veremos como fazer o optirun funcionar também com o prime instalado
6. Agora, temos que instalar os pacotes bumblebee e virtualgl com
sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
Em seguida, precisamos adicionar nosso usuário no grupo de abelhas com:
sudo usermod -a -G bumblebee $USER
E depois reinicie o PC.
7. Faça login na sua conta de usuário, abra uma nova janela do 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)
Assegure-se de que o "XorgConfFile" em [nvidia-driver] seja igual a "/etc/bumblebee/xorg.conf.nvidia" (novamente, sem aspas), 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 !!). Substitua
Option "ConnectedMonitor" "DFP"
por Option "UseDisplayDevice" "none"
, salve e saia.
8. Execute gedit /etc/modprobe.d/bumblebee.conf
e verifique se todas as linhas que contêm blacklist <something>
não são comentadas (ou seja, elas não começam com #
).
9. Neste ponto, execute o seguinte comando
sudo service bumblebeed start
Se retornar um erro, tente executar o comando novamente com reiniciar, em vez de iniciar. Se você ainda tiver erros, algo como:
restart: Unknown job: bumblebeed
Provavelmente há algo errado no arquivo bumblebee.conf; então, verifique novamente a etapa 7.
Se, em vez disso, o resultado for semelhante a:
bumblebeed start/running, process XXXXX
Você está pronto para configurar o zangão!
10. Agora podemos simplesmente correr optirun glxspheres
ou optirun glxspheres64
. Se tudo funcionar como esperado, você terá 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 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 optirun
, deve mostrar apenas o driver intel. É isso aí!!
Graças a esta resposta de Pavak Paul, aqui estão as instruções para adicionar a interface de usuário do zangão no Ubuntu 14.04 para gerenciar aplicativos a serem abertos usando o nVidia.
1. Instale o Indicador de aplicativo Python:
sudo apt-get install python-appindicator
2. Instale o Git:
sudo apt-get install git
3. Crie um diretório para o 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 Aplicativos de inicialização e adicione o indicador de zangão [clique em Adicionar, insira o nome e o comentário que deseja; insira bumblebee-indicator
na caixa de comando e clique em Adicionar).
6. Reinicialize.
Se você quiser ter a opção de também usar nvidia-prime
algumas vezes, tente seguir as instruções abaixo.
1. Para impedir bumblebeed
a inicialização no momento da inicialização, execute:
echo "manual" | sudo tee /etc/init/bumblebeed.override
2. Este ponto é o mais problemático; evita que o zangão coloque na lista negra os drivers da nVidia e deve resultar em congelamento da sessão gráfica. Experimente por sua conta e risco! Corre:
sudo gedit /etc/modprobe.d/bumblebee.conf
E comente a linha que contém os drivers XXX da nVidia. 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, você terá apenas a placa gráfica Intel ativada por padrão. Você ainda precisa executar um aplicativo optirun
para usar a placa gráfica nVidia
sudo service bumblebeed start
optirun <application>
Se você deseja usar o perfil "Nvidia (Performance)", selecione-o em nvidia-settings e faça login / logout, e todos deverão funcionar automaticamente. A única coisa é que você não precisa iniciar o bumblebeed
daemon com esse perfil selecionado, pois isso pode causar problemas.
1. Se você deseja usar apenas nvidia-prime
:
sudo apt-get --purge remove bumblebee*
Então reinicie.
2. Se você deseja usar apenas o optimus sem remover o nvidia-prime, edite novamente o arquivo anterior:
sudo gedit /etc/modprobe.d/bumblebee.conf
Não comentando (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 executado no momento da inicialização:
sudo rm /etc/init/bumbebeed.override
vblank_mode=0 primusrun ./glxgears
ou podemos usar vblank_mode=0 optirun -b primus ./glxgears
. Obrigado :)