Como manejar gráficos híbridos en Debian Wheezy

Hace unos días publiqué una entrada en la que explicaba como manejar gráficos intercambiables en Linux. Ahora veremos como trabajar con gráficos híbridos en Debian Wheezy. Para ello, vamos a utilizar el mecanismo ‘vga_switcheroo’, pero en el caso de Debian se deben realizar una serie de pasos adicionales antes de poder hacerlo funcionar.

Si intentas realizar el proceso descrito en aquel post en Debian Wheezy, lo más seguro es que en el momento de comprobar si existe el fichero ‘sys/kernel/debug/vgaswitcheroo/switch’, el sistema te indique que no existe, lo que equivale a que no podrás utilizar ninguno de los comandos de la herramienta ‘vga_switcheroo’ para conmutar de gráficos o apagar una de las GPU.

Como hacer funcionar el mecanismo ‘vga_switcheroo’ en Debian Wheezy

Para empezar, es importante remarcar que ‘vga_switcheroo’ solo funciona con los drivers libres que se incluyen por defecto en el kernel Linux, y en ningún caso te funcionará si has instalado drivers privativos. Si has hecho esto con anterioridad, deberías asegurarte de desinstalarlo completamente de tu sistema antes que nada.

Es posible que no haya un único método para ello, pero en este caso voy a centrarme en lo que mi me funcionó. A continuación vamos a ver cuales son los pasos a seguir para que se genere el archivo necesario para el funcionamiento de ‘vga_switcheroo’.

  • El primer paso es loguearte como usuario administrador o root. Para ello, en Debian tan solo basta con teclear ‘su’ en la linea de comandos.
$ su

 

  • A continuación, es necesario habilitar el repositorio para firmware privativo, e instalar el paquete ‘firmware-linux-nonfree’. 
# aptitude install firmware-linux-nonfree

 

  • Una vez instalado el paquete, es necesario montar el depurador ‘debugfs’. Para ello, tan solo debes teclear el siguiente comando en la terminal:
# mountpoint -q /sys/kernel/debug
# mount -t debugfs none /sys/kernel/debug

 

  • Llegados a este punto, deberías asegurarte que el kernel está compilado con la opción ‘modeset=1’ en el arranque del sistema.
# grep -i switcheroo /boot/config-*

 

  • Una vez hecho eso, solo queda comprobar si el fichero ‘/sys/kernel/debug/vgaswitcheroo/switch’ ya se encuentra en nuestro sistema. Para ello puedes valerte del comando ‘ls’.
# ls -l /sys/kernel/debug/vgaswitcheroo/switch

 

  • El último paso consiste en dar permisos de ejecución al archivo mencionado, que en este caso es un archivo del sistema, y por defecto solo tiene permisos de lectura y escritura.
# chown -R nombredeusuario:nombredeusuario /sys/kernel/debug
# chown nombredeusuario:nombredeusuario /sys/kernel/debug/vgaswitcheroo/switch

Este se trata de un paso un poco delicado, ya que estamos dando permisos de ejecución en un archivo del sistema. Personalmente, tengo que decir que NO he realizado este paso, ya que mi objetivo era solamente apagar la GPU que no está trabajando, y para ello no se necesita que el archivo tenga permisos de ejecución. Esto solamente es necesario en caso de que quieras conmutar de gráficos expresamente.

Con estos pasos, ya seras capaz de jugar con los diferentes comandos que te permite la herramienta ‘vga_switcheroo’, como apagar la GPU que está desactivada, conmutar de gráficos, etc.

Usos básicos del mecanismo ‘vga_switcheroo’

A continuación tienes un repaso rápido de los principales usos que nos permite ‘vga_switcheroo’ a la hora de manejar gráficos híbridos. A partir de aquí, los comandos son exactamente los mismos que usarías en cualquier otra distribución GNU/Linux.

  • Para ver el estado de los gráficos, puedes valerte del siguiente comando, el cual te mostrará si la gráfica está encendida o apagada (Pwr/Off), y si está activa o no (+/ ).
# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0

 

  • Para apagar la GPU que se encuentra desactivada, y de este modo ahorrar batería y reducir la temperatura del equipo, puedes usar esta orden:
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

 

  • Para encender la GPU que se encuentre apagada, al contrario que en el caso anterior, puedes utilizar la siguiente expresión:
# echo ON > /sys/kernel/debug/vgaswitcheroo/switch

 

  • Finalmente, en caso de que desees conmutar de gráficas, debes contar con las dos gráficas encendidas, y a continuación, jugar con estos comandos en función de tu preferencia.
# echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

En este caso, se activará la GPU integrada, pero seguirán las dos encendidas.

# echo DIS > /sys/kernel/debug/vgaswitcheroo/switch

En este otro caso, se activará la GPU discreta o dedicada.

Esto es todo lo que puedes hacer para manejar gráficos híbridos en Debian Wheezy. Al igual que en el resto de distribuciones GNU/Linux, el proceso de apagar o conmutar las gráficas se debe realizar de forma manual en cada inicio del sistema, aunque existe un script que permite automatizar el manejo de los gráficos.

Anuncios

10 comentarios en “Como manejar gráficos híbridos en Debian Wheezy

  1. hola ya intente con estos pasos pero me da error en el # ls -l /sys/kernel/debug/vgaswitcheroo/switch me sigue diciendo que no existe el fichero.

    Me gusta

    • Hola.
      Debe ser por lo de montar debugfs.
      Si el comando que he publicado en el post no te sirve, puedes probar de usar este otro:

      $ su
      # mountpoint -q /sys/kernel/debug || mount -t debugfs none /sys/kernel/debug

      Básicamente viene a hacer lo mismo, es posible que con este te sirve.
      Espero que tengas suerte, si no dime algo.

      Saludos.

      Me gusta

      • Gracias amigo ya lo solucione. Pero lo que pasa es que cada inicio de sesion lo tengo que montar.
        Se puede que esto se aga de manera permanente.
        porque cada inicio de sesion tengo que montar y despues apagar la targeta grafica.
        Solo lo de montar quiero aserlo permanente.
        Gracias por tu ayuda

        Me gusta

        • Hola Abimael,
          ya te entiendo, a mi me paso lo mismo, y al final tuve que ir haciéndolo cada vez antes de usar vga_switcheroo.
          No se si existe algún otro comando que te haga el montaje permanente.
          De todos modos miraré si puedo encontrar alguna solución, ya que en Ubuntu debe estar montado por defecto y de forma permanente.
          Entre hoy y mañana te comentaré por aquí si se de algo.
          Saludos.

          Me gusta

        • Hola Abimel,
          creo que hay algo que te puede servir.
          No lo he podido probar porqué ahora mismo no estoy con Debian Wheezy.
          Para que debugfs te quede montado de forma automática en cada inicio, deberías editar el fichero de configuración y añadir una linea de texto.
          El proceso sería:

          # gedit /etc/fstab

          Añadir la siguiente linea:

          debugfs /sys/kernel/debug debugfs 0 0

          Te dejo el enlace donde he encontrado esto por si quieres informarte más:

          http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch09s07.html

          Espero que te sirva, sino dime algo.
          Saludos:)

          Me gusta

        • Gracias amigo si me funciono. pero ahora tengo un gran problema.

          Active compiz y opengl pero al reiniciar el equipo despues del grub se quedaba la pantalla bloqueada en negro.

          solo inicia con nomodeset y de esta manera no puedo ni activar 3d ni apagra la grafica externa.

          si me puedes ayudar con esto te lo agradeceria mucho.

          Me gusta

        • Hola, que tal.
          Si, con la opción ‘nomodeset’ el método ‘vga_swticheroo’ no funciona, y por eso no te deja apagar la gráfica.
          Por lo que tengo entendido ‘vga_switcheroo’ opera a nivel de kernel, de modo que si quieres mantener la opción del kernel ‘nomodeset’, seguramente deberías mirar de controlar las GPU con drivers propietarios.

          De entrada, tengo que decir que no soy muy experto en el tema, pero si me dices que pc y que gráficos usas, miraré de buscar si te puedo dar una solución. Hay un chico que en los comentarios comentó una solución basada en drivers propietarios que quizá también te puede servir a ti.

          De todos modos, antes que eso puedes probar de resetear compiz haber si notas algún cambio.

          # dconf reset -f /org/compiz
          Reiniciar

          Esperare tu respuesta.
          Saludos.

          Me gusta

        • Hola Abimael,
          Gracias por el comentario, te agradezco la información.
          Ya he mirado por encima el enlace, y como pronto tengo pensado instalar Debian Wheezy pronto, seguro que me sirve.
          Me alegro que ahora te funcione todo ok.
          Si te interesa, ya te comentare que tal va con Debian cuando lo pruebe.
          Saludos:)

          Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s