Vgaswitcheroo en distribuciones basadas en Debian

Como algunos de vosotros habรฉis podido leer en el foro, me habรญa propuesto instalar mis grรกficos hรญbridos (ATI/Intel) en alguna de las muchas distribuciones que existen, ya que los que conozcรกis este mal, sabrรฉis que el sistema deja encendidas ambas grรกficas aunque sรณlo use una de las dos, reduciendo asรญ la duraciรณn de la baterรญa de forma notable, y dotando a tu PC de un nuevo super poder, el de freรญr huevos encima de รฉl.

Muy a mi pesar, tuve que renunciar a ese fin, ya que, en ninguna de las distribuciones que probรฉ (Debian, OpenSuse, Xubuntu y Linux Mint) obtuve unos buenos resultados. Esto llevo a otro planteamiento del problema:

ยฟCรณmo conseguir que una de las dos grรกficas, en mi caso la ATI, permanezca apagada?

La soluciรณn, como a continuaciรณn verรฉis, viene implementada en el propio nรบcleo de nuestra distribuciรณn favorita y se llama vgaswitcheroo. Y a continuaciรณn tenรฉis el proceso, en el que asumimos que el paquete firmware-linux-nonfree estรก instalado, para uso y disfrute:

En primer lugar debemos averiguar si nuestro nรบcleo dispone de la opciรณn de usar vgaswitcheroo:

$ grep -i switcheroo /boot/config-*

Lo que nos devolverรก una lรญnea en nuestra terminal como esta:

CONFIG_VGA_SWITCHEROO=y

Si la salida es diferente, hay que recompilar el nรบcleo para aรฑadir la opciรณn de vgaswitcheroo. En segundo lugar, vemos si el archivo ยซ/sys/kernel/debug/vgaswitcheroo/switchยป existe. En este punto hay que hacer una distinciรณn:

En distribuciones basadas en Ubuntu este archivo es accesible o deberรญa serlo por defecto. Mientras que en distribuciones como Debian, la carpeta debug no dispone de otra llamada vgaswitcheroo y habrรก que hacer un par de pasos mรกs.

Para tener siempre accesible la carpeta y poder acceder al archivo switch, debemos montar la carpeta debug como sigue (siempre desde superusuario):

  1. # mountpoint -q /sys/kernel/debug
  2. # mount -t debugfs none /sys/kernel/debug
  3. # echo "none /sys/kernel/debug debugfs defaults 0 0" >> /etc/fstab

El paso 3 podemos hacerlo manualmente. Se trata de aรฑadir la linea none /sys/kernel/debug debugfs defaults 0 0 al archivo /etc/fstabย para que la carpeta de vgaswitcheroo estรฉ siempre accesible incluso despuรฉs de un reinicio.

Una vez hecho esto podemos comprobar nuestro fichero switch dentro de la carpeta de vgaswitcheroo, mediante:

# cat /sys/kernel/debug/vgaswitcheroo/switch

y ello nos devuelve una salida como la de la imagen:

vgaswitcheroo


Vuestra salida puede ser diferente (que todas estรฉn en modo Pwr, por ejemplo). En este archivo tenemos varias cosas a comentar. El tรฉrmino DIS corresponde a la grรกfica dedicada (en mi caso, la ATI). El tรฉrmino IGD corresponde a la grรกfica integrada en la CPU (la Intel). La cruz, +, marca la grรกfica que se esta usando en el momento. Y por รบltimo, el termino Pwr o Off, hacen referencia al estado de las grรกficas.

Con esto ya podemos desactivar o activar la grรกfica que queramos mediante algunos comandos :

  • Apagar la grรกfica dedicada:
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
  • Encender la grรกfica dedicada:
# echo ON > /sys/kernel/debug/vgaswitcheroo/switch
  • Cambiar entre la integrada y la dedicada:
# echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch 
# echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch

Por รบltimo, para otorgar permisos a nuestra usuario habitual y asรญ poder ejecutar scripts al inicio, por ejemplo, habrรก que ejecutar:

# chmod -R 705 /sys/kernel/debug
# chown -R usuario:usuario /sys/kernel/debug/vgaswitcheroo
Modificar los permisos de alguna carpeta del sistema puede conllevar cierto riesgo. Recomiendo hacerlo bajo vuestra propia responsabilidad. En el caso de esta guรญa, el proceso estรก hecho sobre Debian Testing, por lo que algรบn paso puede ser diferente aquรญ que en otras distribuciones.

Espero que os sirva para exprimir un poco mejor el rendimiento de vuestros portรกtiles o como mรญnimo reducir el calor que desprenden.

Un saludo!

Fuentes: Lista de Correo de Debian | LinuxQuestion


Deja tu comentario

Tu direcciรณn de correo electrรณnico no serรก publicada. Los campos obligatorios estรกn marcados con *

*

*

  1. Responsable de los datos: Miguel รngel Gatรณn
  2. Finalidad de los datos: Controlar el SPAM, gestiรณn de comentarios.
  3. Legitimaciรณn: Tu consentimiento
  4. Comunicaciรณn de los datos: No se comunicarรกn los datos a terceros salvo por obligaciรณn legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu informaciรณn.

      Ivรกn Barra dijo

    Excelente dato, al menos, para las Nvidia (mi caso), existe el proyecto Bumblebee, que anda de maravilla en OpenSUSE 12.3, Fedora 1x y otras distros basadas en RPM, en Ubuntu anda de maravilla, pero en otras basadas en .deb, a veces se cuelga y hay que entrar a reiniciar.

    Saludos y Gracias por compartir.

         carlos saldaรฑa dijo

      disculpa, sabes si funciona para debian 7 64bits??

           Ivรกn Barra dijo

        Si, si funciona, lo he probado con debian y funciona bien.

        http://wiki.debian.org/Bumblebee

        Aunque te recomiendo usar los drivers privativos si o si. Los opensource dan fallos.

        Saludos.

             carlos saldaรฑa dijo

          gracias por el dato

      oxigenante dijo

    Te quiero tesla, en ubuntu conseguรญ usar vgaswitcheroo pero en debian me dice que no lo tengo instalado, lo probarรฉ esta tarde

         Tesla dijo

      Espero que haya suerte.

      Creo que a partir del kernel 3.2 ya viene activado. Pero de todas formas si no lo tienes activado siempre puedes compilar el nรบcleo y activarlo.

           oxigenante dijo

        Ya estoy en debian y probando el tutorial hay contradicciones, en el primer paso me da la salida de que tengo vgaswicheroo activado, pero cuando voy a usarlo me lanza el mensaje

        bash: /sys/kernel/debug/vgaswitcheroo/switch: No existe el fichero o el directorio

        He hecho el paso para solucionar esto de las dos formas manual y con el comando (iba ha realizarlo manual pero al ver el archivo ya lo tenรญa con la linea, pero en ese archivo solo tenยดia la linea)

        Y despuรฉs de hacer el paso me lanza el mismo error

             Tesla dijo

          Me autorespondo, no deja editar el post, ya que da un fatal error y demรกs cosas que no llego a entender. Quizรก algรบn admin pueda echarnos una mano.

          Por lo referente al PASO 3: EDITAR EL ARCHIVO MANUALMENTE Y NO COMO DICE CON EL COMANDO echo!!!!

          Disculpad las molestias que os pueda haber causado. De todas formas, siempre es recomendable cuando se modifican archivos importantes hacer una copia por si las moscas!

               oxigenante dijo

            Con el comando se crea la lรญnea. El problema fue mio, ya que fui directamente a la obra y se me olvidรณ instalar el firmware-linux-nonfree ya demรกs de eso en la 3ยบ parte hay que aรฑadir una linea en el archivo rc.local

            # chown your_user:your_user /sys/kernel/debug/vgaswitcheroo/switch

            Me he instalado los drivers privativos de amd y me funciona a las mil maravillas mejor que en windows que se me bloqueaba constantemente el flash

            Muchas gracias

               Tesla dijo

            Me alegro de que te vaya todo perfecto! ๐Ÿ™‚

            En cuanto a lo del archivo rc.local, no lo he puesto ya que no estoy seguro del riesgo que ello conlleva. Y ademรกs, confio en que cada persona actuarรก segรบn su criterio y sus preferencias. Algunos pueden preferir rc.local y otros asignar los permisos en cada sesion. Eso es a gusto de cada persona!

            Un saludo y a disfrutar de tu pc!

      Rots87 dijo

    0.0 interesante articulo aunque a mi no me funciona la tendre en cuenta para cuando compre una ATI (las nvidia me cuestan un ojo de la cara)

         Yukiteru dijo

      Es preferible un millon de veces una NVIDIA en Linux que una ATI, y la hay mรกs baratas. Una GT 210, no es muy cara que digamos, y es buena para jugar y ver cosas con buena calidad y resoluciรณn.

      carlos saldaรฑa dijo

    yo tengo una xps 15 i7 con una nvidia de 2gb de video optimos getforce GT 640m y en la parte que dice que tiene el super poder de freir huevos, me pasa exactamente lo mismo, tengo debian 7 de 64 bits.. voy a probar con este tuto haber como me va

         Tesla dijo

      Para Nvidia existe, como bien ha dicho Ivรกn Barra, Bumblebee. Los que useis Nvidia deberiais antes de probar esto intentar hacer funcionar Bumblebee que tengo amigos que lo han conseguido.

      Este post es como รบltimo recurso si todo lo demรกs falla. Aรบn asรญ, sois libres de escoger vuestro metodo anti-freidora de huevos! ๐Ÿ˜‰

      eliotime3000 dijo

    Buen post. Espero que cuando instale Debian 7 en una PC con vรญdeo de NVIDIA, no se convierta en una freidora de huevos.

      Jacob dijo

    Pues yo hice lo anterior y me borro los datos del ยซfstabยป ahora tengo que montar las particiones /home y swap de forma manual. Bueno eso me ayudo a aprender algo nuevo como el ยซmkswapยป y ยซswaponยป. Ahora a restaurar el fichero antes mencionado.

         Tesla dijo

      No entiendo por que se te borraron los datos del fstab. De todas formas, creo que voy a editar el paso 3 y que se haga de forma manual, ya que me da que el fallo podria estar ahi!

           Jacob dijo

        Yo tampoco y me paso lo mismo que a oxigenante. creo que mi error fue seguir los pasos al pie de la letra y olvidar el bรกsico renombra-miento ยซfichero.oldยป pero me sirviรณ por que ahora se que existen los comandos anteriores!!!

           adrian15 dijo

        Estรก claro :).

        El > ha de ser un >> .

             Tesla dijo

          Gracias por la aclaraciรณn.

          No obstante no puedo editar el post debido a un fallo en el blog. Quizรก se arregle en los proximos dias o quiza no, si se arregla lo cambiarรฉ.

          Un saludo y gracias!

      dakar dijo

    Me sigue saliendo ยซ/sys/kernel/debug/vgaswitcheroo/switch: No existe el fichero o el directorioยป
    Lei los comentarios e intente hacer lo que seรฑalan, pero no, sigue lo mismo…
    He buscado en todos lados, pero no encuentro solucion D:

         Tesla dijo

      Tienes instalado el paquete firmware-linux-nonfree? Quรฉ te devuelve el comando: grep -i switcheroo /boot/config-*??

           Rigel Ricardo Valladares Mรฉndez dijo

        hola buenos dรญas, tarde o noche me pasa lo mismo coma dakar y cuando ejecuto el comando me sale esto espero que todavรญa atiendas estas dudas
        root@Rigel-PC:~# grep -i switcheroo /boot/config-*
        /boot/config-3.16.0-4-amd64:CONFIG_VGA_SWITCHEROO=y
        /boot/config-3.16.0-5-amd64:CONFIG_VGA_SWITCHEROO=y