Nvidia Optimus Oficial Driver sin Bumblebee (Debian 8)

nvidia_img

Hoy aprenderemos a instalar el driver oficial de Nvidia para Optimus.

Requisitos previos:
– conocimientos básicos de linux
– Xorg >= 1.13.4
– xrandr >= 1.3.5
– kernel >= 3.9

Lo primero que yo hago es irme a un tty externo (normalmente uso el tty2):
Ctrl + Alt + F2

Para los que entran en pánico al ver un terminal este no es el tutorial o sistema adecuado para ellos.
De todos modos que sepáis que en el tty6 o en el tty7 o en el tty8 dependiendo de la distro que uses, esta el entorno gráfico. Por lo tanto Ctrl + Alt + F7 volveríamos al entorno gráfico.

Ahora vamos a des-instalar instalaciones previas (se puede hacer a mano o incluso con purge si se quisiera):

sudo dpkg -l | grep -i nvidia | cut -d " " -f 3 | xargs echo | xargs sudo apt-get remove

Le estoy preguntando la lista de paquetes filtrando por la palabra nvidia y filtrando la salida para quedarme solo con los nombres de los paquetes para posteriormente concatenarlos en horizontal con el echo y pasárselos al comando
sudo apt-get remove resultado del filtrado.

Agregamos el contrib and non-free en los repos si no los tenemos:

# Debian 8 "Jessie"
deb http://http.debian.net/debian/ jessie main contrib non-free
sudo aptitude update
sudo aptitude --with-recommends install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms

Detenemos el entorno gráfico:
servide lightdm stop
Si usas gdm seria lo mismo pero con gdm, sino el dm que utilices yo en debian 8 tengo lightdm.

Si tenemos un xorg.conf previo:

sudo mv /etc/X11/xorg.conf /etc/X11/backup_xorg_preoptimus.bk

Si no lo tenemos o si ya hicimos el backup haremos lo siguiente:

sudo wget http://ge.tt/api/1/files/55SIoDt/1/blob?download -O /etc/X11/xorg.conf

Ahora pondremos lo siguiente:

startx

Y me voy a otro tty en este caso al tty3:
Ctrl + Alt + F3

Y ponemos:

xrandr -d :0 --listproviders

Nos mostrará algo parecido a esto:

Provider 0: id: 0x2cb cap: 0x1, Source Output crtcs: 0 outputs: 0 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x46 cap: 0x2, Sink Output crtcs: 3 outputs: 4 associated providers: 1 name:modesetting

Donde 0x2cb es el chip de NVIDIA y el 0x46 es el de intel.
Ahora crearemos el .xsessionrc en nuestro home:

touch .xsessionrc
chmod +x .xsessionrc

Y dentro le pondremos esto:

xrandr --setprovideroutputsource 0x46 0x2cb
xrandr --auto

Con esto ya podríamos arrancar pero el login gráfico saldrá negro y no se vera para poder logearnos bien. Lo siguiente será configurar bien el login gráfico.

Crearemos un script llamado .script_xsessionrc.sh en tu home.

touch .script_xsessionrc.sh
chmod +x .script_xsessionrc.sh

Y dentro ponemos:

#!/bin/sh
xrandr --setprovideroutputsource 0x46 0x2cb
xrandr --auto

Si usas lightdm puedes editar el archivo /etc/lightdm/lightdm.conf y descomentar la linea display-setup-script (que esta alrededor de la linea 111).
Y lo dejamos así:

display-setup-script=/home/tu_usuario/.script_xsessionrc.sh

Cerramos y guardamos.
Con esto ya debería de funcionar todo, hacemos sudo reboot y listo.

referencias:
https://wiki.debian.org/NvidiaGraphicsDrivers#Version_340.65
http://tuxilero.blogspot.com.es/2014/02/linux-how-to-official-nvidia-drivers.html

Deja un comentario