Este artigo apresenta uma solução para o problema de alternância entre GPUs em notebook com processadores da linha Core-i, que possuem uma placa gráfica discreta ATI no Ubuntu 10.10, evitando a necessidade de se alterar a placa padrão através da BIOS (com reinício do sistema necessário) e dando uma opção nos casos em que a escolha através de BIOS não é possível.
O apontador criado agora permite que se alterne entre as GPUs apenas com o reinício da sessão (ainda não há como fazer a troca sem reiniciar a sessão), e checar o status da GPU que não está sendo usada, pois em outros scripts encontrados na nossa pesquisa não houve preocupação com a desativação da placa sem uso, o que gerou um gasto de energia extra e aquecimento desnecessários.
Abaixo segue o script necessário.
#!/bin/bash #Script para alternar entre GPUs by kriador #versao 20101023
#Alterando dono do arquivo
gksu chown $USER /sys/kernel/debug/vgaswitcheroo/switch
#Checando que placa esta ativa e o status da placa não ativa
vganam=`lspci | grep Radeon | cut -c1-7`
vgaon=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :+: | cut -c14-20`
vgaof=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :.:Off | cut -c2-7`
#cria a variavel com a placa ativa
if [ "$vgaon" = "$vganam" ]
then vgaechon="GPU Discreta"
else vgaechon="GPU Integrada"
fi #cria a variavel com o status da placa nao ativa
if [ "$vgaof" = ": :Off" ]
then vgaechof="Desligada"
else vgaechof="Ligada"
fi
#criando a dialog
gxmessage -center \
-buttons "_Cancelar":1,"GPU _Integrada":101,"GPU _Discreta":102 \
-wrap \
-title "Escolha a GPU" \
"GPU em uso: $vgaechon
Situação da outra GPU: $vgaechof"
whichCard=$?
case "$whichCard" in
1)
echo "Exit"
;;
101)
if [ "$vgaechon" == "GPU Discreta" ] && [ "$vgaechof" == "Ligada" ]
then
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
gxmessage --center "Alternando para GPU Integrada"
gnome-session-save --logout
elif [ "$vgaechon" == "GPU Discreta" ] && [ "$vgaechof" == "Desligada" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
gxmessage --center "Alternando para GPU Integrada"
gnome-session-save --logout
elif [ "$vgaechon" == "GPU Integrada" ] && [ "$vgaechof" == "Ligada" ]
then
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
gxmessage --center "GPU Integrada ja esta em uso"
elif [ "$vgaechon" == "GPU Integrada" ] && [ "$vgaechof" == "Desligada" ]
then
gxmessage --center "GPU Integrada ja esta em uso"
fi
;;
102)
if [ "$vgaechon" == "GPU Integrada" ] && [ "$vgaechof" == "Ligada" ]
then
echo DDIS> /sys/kernel/debug/vgaswitcheroo/switch
gxmessage --center "Alternando para GPU Discreta"
gnome-session-save --logout
elif [ "$vgaechon" == "GPU Integrada" ] && [ "$vgaechof" == "Desligada" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
gxmessage --center "Alternando para GPU Discreta"
gnome-session-save --logout
elif [ "$vgaechon" == "GPU Discreta" ] && [ "$vgaechof" == "Ligada" ]
then
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
gxmessage --center "GPU Discreta ja esta em uso"
elif [ "$vgaechon" == "GPU Discreta" ] && [ "$vgaechof" == "Desligada" ]
then
gxmessage --center "GPU Discreta ja esta em uso"
fi
esac
[1] Comentário enviado por pgbatera em 19/11/2010 - 20:14h
Diego,
Estou com o seguinte problema...
Tenho o Ubuntu 10.10 instalado e o kernel 2.6.35-22... também já desinstalei o driver da ATI e mesmo assim o arquivo "vgaswitcheroo" não existe em /sys/kernel/debug
O que fazer? Mesmo desinstalando o driver da ATI ele não aparece.
[2] Comentário enviado por gustoceano em 30/01/2011 - 16:12h
Ola Diego C. Sampaio.
Gostei muito do artigo sobre a alternância de GPU no linux para aqueles que possuem uma placa de vídeo dedicada em sistemas com processador core_i. Ainda mais para aqueles que possuem um notebook da HP, no qual não há a possibilidade de alternar via Bios.
O teu artigo ajudo muito a resolver este problema em meu HP. Também contribui para a diminuição da temperatura do computador. No meu caso ao iniciar o computador as duas GPUs estavam ligadas, provocando o aumento de temperatura da máquina (65 graus para o core_i e 72 graus para o ati). Atualmente a temperatura do pressador core_i5 fica em 48 graus em dias muito quentes para operações básicas (email, músicas, openoffice e etc).
Penso que teu artigo pode também ser lincado com aqueles que apresentam soluções para aquecimento excessivo.
[4] Comentário enviado por Tthomas M O em 29/10/2011 - 11:14h
Bom dia pessoal, estavo rodando o script ai deu essa menssagem "gnome-session-save: comando não encontrado", alguem sabe a solução para o problema???
o not (HP dm4 1075), atualmente esta usando a IGD, entre 75º/80º.