jueves, 7 de febrero de 2013

opensuse12.2: instalación de bumblebee 3.0.1 + drivers de nvidia. Para tarjetas Nvidia con tecnología optimus

Hola a todos!
La semana pasada me instalé opensuse en mi portátil. Intenté instalar bumblebee para dar soporte a la tecnología optimus pero... Tuve que leer mucha documentación y mirar en demasiados sitios. Es curioso: la documentación que en ubuntu se encuentra en miles de blogs, en opensuse escasea. Se nota que somos menos usuarios los de opensuse. Pero bastantes menos, diría yo.

El motivo que me ha llevado a publicar esta entrada es que la mayoría de los posts que he visto en foros dedicados a opensuse están desactualizados: hablan de paquetes que ya ni existen y casi siempre, los repositorios que proporcionan para instalar bumblebee es para la versión 2.4 del mismo. Esto puede crear confusiones e incluso instalaciones fallidas por no existir ya paquetes esenciales para esas versiones viejas de bumblebee.
Por otro lado, bumblebee 3.0 ha sido programado en C y eso le da un mejor desempeño que versiones más viejas del mismo.

En mi caso, voy a utilizar los drivers de nvidia. El motivo es que con los de nouveau no me funcionó correctamente. Bumblebee arrancaba pero por alguna razón nouveau no gestionaba mi gráfica nvidia.

1º. Consideraciones generales:
  •  Si tu portátil es un lenovo, puede que ésta guia no te sirva. Deberías consultar también estos dos enlaces:
  • Parto desde una instalación limpia de opensuse12.2. Es decir, hasta ahora, sólo he ejecutado dos comandos:
    • $ sudo zypper refresh
    • $ sudo zypper update (fíjate que no he añadido ningún repositorio. Ni siquiera packman o libdvdcss).
  • Mi portátil es un ASUS N53S.
  • Mis tarjetas gráficas: la implementada por intel y una nvidia GT540M.

2º. Desinstala el driver de nouveau y por si acaso, lo añades a la blacklist:

  • Para añadir el driver nouveau a la blacklist:
    • $ gnomesu gedit /etc/modprobe.d/50-blacklist.conf
      Das tu clave de admin e introduces esta linea:
      blacklikst nouveau
      (guarda los cambios y te sales de gedit)
     
  • Elimina el driver de nouveau y reinicia:
    •  $ sudo zypper rm xorg-x11-driver-video-nouveau && sudo /sbin/reboot
 3º. Añade los repositorios de nvidia e instala paquetes:
  • Añade el repositorio de nvidia latest opensuse-factory, refresca e instala:
    • $ sudo zypper ar -f http://download.opensuse.org/repositories/home:/Bumblebee-Project:/nVidia:/latest/openSUSE_Factory/ repo-nvidia-latest
    • $ sudo zypper refresh
    • $ sudo zypper in dkms
    • $sudo zypper in nvidia-compute x11-video-nvidia (Te dirá que va a instalar automáticamente estos paquetes: dkms-nvidia  nvidia-compute x11-video-nvidia x11-video-nvidia-devel ; acepta las dependencias).
    • Llegados a este punto, es posible que veas durante la instalación de los drivers un mensaje de error al final:
      cannot stat 'libXvMCNVIDIA.a': No such file or directory
      Ignora éste mensaje, es normal. A mí también me ha pasado y me funciona.
    • $ sudo /usr/sbin/dkms autoinstall -k `uname -a | awk -F" " '{ print $3 }'`
     
  • Reinicia $ sudo /sbin/reboot

Te llamará la atención que si haces lsmod, no verás nvidia ni nouveau por ningún lado, es decir que sólo ha cargado el driver i915. Es normal:



 Si usas gnome 3 y has perdido la aceleración gráfica o ahora estás en gnome clásico, es que algo has hecho mal. Deberías seguir teniendo aceleración gráfica proporcionada por la gráfica de intel.


4º. Añade el repositorio para bumblebee, lo instalas y sigue todos los pasos necesarios:
  •  Para añadir el repositorio de bumblebee de overman79:
    $ sudo zypper ar -f http://download.opensuse.org/repositories/home:/Overman79/openSUSE_12.2/ repo-bumblebee
  • $ sudo zypper refresh
  • $ sudo zypper in VirtualGL bbswitch-kmp-desktop dkms-bbswitch bumblebee
    (los paquetes VirtualGL bbswitch-kmp-desktop son absolutamente imprescindibles para que bumblebee 3.0.1 funcione, así que no olvides incluirlos en la linea de más arriba).
  • A continuación te logueas como root con el comando su
  • Crea el grupo bumblebee: # groupadd bumblebee
  • Añade a tu usuario al grupo bumblebee: # usermod -A bumblebee tu_usuario
  • Elimina cualquier pasword de acceso al grupo bumblebee:
    # gpasswd -r bumblebee
  • A continuación, si vas a utilizar los drivers de nouveau, edita el archivo /etc/bumblebee/bumblebee.conf. Si vas a utilizar los drivers de nvidia, entonces no toques nada en ese archivo.
  • Añade bumblebee a tu lista de demonios para que arranque al inicio:
    # systemctl enable bumblebeed.service
  • Arranca el demonio bumblebee:# systemctl start bumblebeed.service
  • Reinicia: # reboot


 La instalación ha finalizado. Ahora, vamos a ver si funciona o no:

En el lado de intel:

 $ glxgears



En el lado de nvidia:
$ optirun glxgears




$ optirun glxspheres




Si te ha gustado el artículo, los "me gusta" y los +1 siempre son bien recibidos ;)