Autor Tópico: VGAswitcheroo – Tópico Definitivo  (Lida 98764 vezes)

Offline Kriptolix

  • Usuário Ubuntu
  • *
  • Mensagens: 314
    • Ver perfil
    • Kriptolix
VGAswitcheroo – Tópico Definitivo
« Online: 24 de Junho de 2011, 16:25 »
Após uma serie de tópicos recorrentes sobre o assunto de alternância de GPU no Linux, resolvi criar um tópico definitivo sobre o assunto, pois desde da primeira vez que tentei realizar essa alternancia muita coisa mudou e eu aprendi bastante. Esse texto será divido em duas partes: teoria e prática. As soluções serão apresentadas na parte prática (para os apressados), mas a parte teórica é importante para qualquer adaptação ou extrapolação dessas soluções pra outras situações, recomendo a leitura de ambas.

Teoria

GPU

GPU (Graphics processing unit) nada mais é do que a nossa conhecida placa de vídeo, seja ela embutida na placa-mãe ou no processador, o que chamados de placa de vídeo on board ou GPU integrada, ou uma placa em separado dedicada apenas a processar vídeo, o que chamamos placa de vídeo dedicada ou GPU Discreta. Como convenção, iremos utilizar aqui as denominações “GPU integrada” e “GPU discreta” para nos referirmos a vídeos on board e off board respectivamente.

Hybrid Card

É uma tecnologia que permite que uma mesma maquina se utiliza de mais de uma GPU, uma ou mais GPUs discretas e uma ou mais GPUs integradas (geralmente, uma de cada). Com isso, uma maquina pode alternar, ou seja, mudar de uma GPU pra outra de acordo com a necessidade.

Considerando que GPUs integradas tem uma grande capacidade de economia de energia, sendo ideais pra utilizar quando se precisa de pouco poder de processamento e baixo consumo energético (notebooks usando a bateria e sendo usados pra editar um texto, por exemplo). Já GPUs Discretas são ideias pra quando se precisa de grande poder de processamento (para jogos ou aplicativos gráficos mais exigentes) e não há preocupação com um gasto a mais de energia (notebooks ligados a tomada e sendo usados para rodar o jogo DOOM, por exemplo). Assim, é possível escolher a GPU que mais se adequa a necessidade do momento.

Atualmente, o exemplo mais evidente do uso dessa tecnologia são notebooks com processadores da linha core-i da intel, que possuem uma GPU integrada no próprio processador, e também utilizam uma GPU discreta AMD ATI ou NVIDIA. Outra situação comum são notebooks com processadores AMD e uma GPU integrada a placa-mãe, em conjunto com uma GPU discreta AMD ATI ou NVIDIA.

Essas duas combinações cobrem 90% das ocorrências de Hybrid Card, outras circunstancias podem ocorrer mas são casos pontuais. Por ser o caso mais comum, esse texto ira tratar especificamente de processadores core-i (i3, i5 ou i7) em conjunto com uma GPU AMD ATI (qualquer). Qualquer outro caso poderá ser resolvido com a extrapolação das soluções aqui propostas.

Alternado entre GPUs

A alternância entre GPUs é realizada através de software, o que no Windows acontece de forma automática ou via demanda e sem a necessidade de reinicio do sistema. Isso se deve ao fato do software necessário ser disponibilizado pelos próprios fabricantes, o que garante bom funcionamento e estabilidade.

Já no linux, não há qualquer software proprietario disponível para resolver essa questão ate o momento em que escrevemos isso. O mais próximo da solução encontrada no Windows é um modulo do kernel desenvolvido a partir da versao 2.6.34 do mesmo, sendo incorporado como padrão a partir da versão 2.6.35. O nome desse modulo é VGAswitcheroo.

O VGAswitcheroo permite alternacia de GPU em sistemas GNU/Linux. Infelzimente funcionalidade do memso ainda é restrita se comparado ao que ocorre no Windows, já que no Linux é necessário o reinicio do X Server para que a mudança ocorra, o que provoca o reinicio da sessão. Alem disso, ainda não há qualquer software adequado a realizar mudanças por contexto (dependendo da situaçao energia/aplicativo utilizado) e o suporte a GPUs discretas NVIDIA ainda é altamente experiemental e instavel, tendo sido implementado muito recentemente via patch.

O VGAswitcheroo

O modulo VGAswitcheroo, a qual nos refererimos como switcheroo a partir de agora, é um modulo do kernel que se destina a realizar a alternacia de GPU em sistemas GNU/Linux, seu funcionamento é baseado na interaçao com um arquivo de texto (switch), que atraves de algumas palavras de comando especificas permite ligar, desligar e alternar entre GPUs.

VGAswitcheroo e versoes diferentes de kernel

Dependendo da versao do kernel utilizado, o switcheroo pode ter um comportamento diferente, o que faz com que uma sequência de passos especifica para implementar seu uso possa não funcionar universalmente, sendo necessário a analise caso a caso. Alem disso, configuraçoes especificas de hardware tambem podem exigir certa atençao especial.

No kernel 2.6.34 o switcheroo não vem ativado por padrão, caso seja necessário utiliza-lo com esse kernel será preciso recompilar o kernel habilitando a opção "EXTRAVERSION = -vgaswitcheroo" alem da montagem do diretorio /sys/kernel/debug. A realizaçao desse procedimento nao sera contemplada aqui, recomendamos sempre a atualizaçao do kernel.

Do kernel 2.6.35 em diante, o switcheroo vem ativado por padrão e o diretorio /sys/kernel/debug também já vira montado por padrão. Para as versoes 2.6.35 e 2.6.36 do kernel o arquivo switch não contem informações indicativas de qual das entradas nele presentes pertence a GPU integrada e qual pertence a GPU discreta, fazendo que com que seja necessário identifica-las de outras formas (esse assunto será melhor abordado a frente), alem disso, há um padrão de carregamento de módulos de vídeo que utiliza sempre a GPU integrada como padrão, carregando seu modulo primeiro e garantindo a inicializaçao do sistema.

Do 2.6.37 ate o kernel lançado ate o momento em que escrevemos (3.0.0) o arquivo switch contem informaçao de que entrada pertence a qual GPU, o que permite uma manipulaçao mais refinada do mudolo, mas em compensaçao a ordem de carregamento dos modulos de video não é mais padronizada, fazendo com que muitas vezes o sistema tente iniciar usando a GPU integrada mas o driver carregado seja o da GPU discreta, o que resulta em crash na inicializaçao do sistema.

VGAswitcheroo e drivers proprietarios

Ate o momento em que escrevemos esse texto, não é do nosso conhecimento qualquer compatibilidades entre o switcheroo e drivers proprietarios para GPUs AMD ATI ou NVIDIA. A instalaçao de drivers proprietarios desabilita o modulo e torna impossivel o uso do mesmo para alternar entre GPUs. Para que o modulo possa ser usado é necessario que apenas drivers livres (que já acompnham o próprio kernel) sejam utilizados.

Parametros passados ao kernel como “nomodeset” e “noapic”, alem de alguns procedimentos de correção de erros do Playmounth tambem podem desabilitar o modulo em questao, portanto, caso o diretorio do arquivo switch não esteja visivel mesmo com a opção para uso do switcheroo habilitada no kernel, sera necessario verificar essas questoes antes de qualquer outra.

Interagindo com o VGAswitcheroo

Na parte pratica, alguns scripts prontos serao apresentados para interagir com o switchroo, mas esses scripts não são nada alem de uma modo de implementar de forma mais facil e grafica os comandos necessarios a interaçao com o modulo. Esses comandos podem ser realizados manualmente caso seja necessario ou conveniente. Para tal, deve-se utilizar o comando “echo' atraves do shell, direcionando as palavras reservadas para o arquivo /sys/kernel/debug/vgaswitcheroo/switch, o comando deve ser realizado como root ou atraves do uso do 'sudo', pois só o root tem as permissoes necessarias para le-lo ou escrever nele. As palavras reservadas para uso como comando pelo modulo em questão e seus respectivos significados são:

ON – altera o estado de uma GPU secundaria, ou seja, que não esta sendo utilizada na sessão atual, de “desligada” para “ligada”.
OFF – altera o estado de uma GPU secundaria de “ligada” para “desligada ”.
DDIS – torna a GPU discreta, quando já não o for, a GPU primaria da sessão.
DIGD - torna a GPU integrada, quando já não o for, a GPU primaria da sessão.

os comandos ON e OFF podem ser executados normalmente, ja os os comandos DDIS DIGD necessitarao do reinicio do servidor X para que sejam aplicados, caso a GPU em correspondente ao comando ja nao seja a GPU primaria da sessao.

Pratica

Observe as situaçoes abaixo e veja em qual delas se encaixa seu caso.

*Minha interface gráfica esta iniciando e o diretorio /sys/kernel/debug/vgaswitcheroo esta visivel.

Se o seus sistema esta iniciando normalmente, e você apenas deseja poder usar toda a capacidade da sua GPU discreta, faça os teste realize os procedimentos a seguir e depois utilize o script correpondente ao seu caso. Para saber qual utilizar utilize o comando abaixo:

Código: [Selecionar]
$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
se a sua saída for do tipo:

Código: [Selecionar]
0:+:Pwr:0000:01:05.0
1: :Pwr:0000:02:00.0

ou seja, sem o identificador de tipo de GPU (DIS e IGD), use o script 1.

se a sua saída for do tipo


Código: [Selecionar]
0:DIS: :Pwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0

ou seja, com o identificador de tipo de GPU (DIS e IGD), use o script 2.

*Minha interface grafica esta iniciando mas o diretorio /sys/kernel/debug/vgaswitcheroo nao esta visivel.

Isso pode ocorrer em mais comumente nas seguintes situaçoes:

1)    Sua versao do kernel é anterior a 2.6.35.
2)    modulo VGAswitcheroo nao esta habilitado nas configuraçoes do kernel.
3)    Ha um driver proprietario de GPU instalado no seu sistema.
4)    Um dos modulos, seja o da GPU discreta ou do integrada, nao esta carregado.
5)    durante o boot, os parametros “nomodeset” ou “vga=775” foram passados ao kernel.
6)    Outros procedimentos afetaram o funcionamento do modulo.


Os casos mais comuns sao nº 3 e o nº 5, tambem sao os mais simples de solucionar, basta, respectivamente, desistalar o driver proprietario e retirar os parametros da inicializaçao no arquivo /boot/grub/menu.ls. Nos outros casos citados sera necessario uma melhor analise.

*Minha interface grafica nao esta iniciando.

Se voce esta obtendo apenas uma tela preta na iniciializaçao, ha basicamente duas possibilidades

1)    Ha um driver proprietario de GPU instalado no seu sistema.
2)    O modulo da sua GPU discreta (no nosso caso, considerando uma GPU AMD ATI, sera o modulo ‘radeon’) esta sendo carregado antes do modulo da sua GPU integrada, levando o sistema ao crash.

A solucaçao do nº 1 é a mesma apresentada para o nº 3 na questao anterior, a diferença esta no fato de que, para poder faze-lo, sera necessario restaurar as configuraçoes de video padrao atraves do console de recuperaçao, para isso, durante o boot do sistema presione a tecla “esc” ou, elguns casos “g’ ou “e’, para entrar na tela de seleçao do grub (em caso de multiboot a tela aparecera automaticamente). no menu que abrir selecione a opçao de correçao de video e dentro dela selecione a opçao de usar uma configuraçao padrao de video. isso permitra que a interface grafica inicie e voce podera seguir os passos da opçao acima.  

ja a soluçao para o nº 2 é adicionar o modulo em questao a blacklist. Para faze-lo siga os seguintes passos:

Entre no modo de recuperaçao como no passo acima, ou acesse o arquivo via live cd. abra o terminal e faça:

Código: [Selecionar]
$ sudo nano /etc/modprobe.d/blacklist.conf
adicione o seguinte conteúdo ao fim do arquivo

Código: [Selecionar]
# Inativando modulo de video ATI
blacklist radeon

Apos isso, use a combinaçao de teclas crtl+O para salvar, aperte enter, e em seguida crtl+x para sair, ao reiniciar o problema a interface grafica deve funcionar normalmente.

*Minha GPU discreta é uma NVIDIA.

Nao tenho nenhuma experiencia com o uso do switcheroo em conjunto com GPUs NVIDIA, e inicialmente esse modulo so tinha suporte a GPUs AMD ATI, mas nos ultimos meses APARENTEMENTE surgiu um patch nao so para user os GPUs NVIDIA como tambem APARENTEMENTE permite instalar e usar o driver proprietario NVIDIA. deve chamar atençao para as palavras em maiusculas, ou seja, nada disso foi confirmado. Mas caso queria achance de testar (e tenha o hardware adequado) abaixo segue o link da PPA que APARENTEMENTE disponibiliza o patch.

https://launchpad.net/~kayo-k11-4/+archive/nv-switcheroo

os scripts que se seguem dependem do zenity, se nao o tiver instalado, instale-o.


################################################################
########################### SCRIPT 01 ###########################
################################################################
Código: [Selecionar]
#!/bin/bash
#Script para alternar entre placas de video by kriador
#versao 20110429 para ubuntu+kernel 2.6.38
#subindo o modulo radeon
modprobe radeon

#checando que placa é a integrada

VGAIGD=`lspci | grep VGA | grep  Integrated | cut -c4-5`

if [ "$VGAIGD" == "01" ]
then VGADIS="02"
elif [ "$VGAIGD" == "02" ]
then VGADIS="02"
else
then VGADIS="XX"
fi

#Checando status das GPUs
STATEDIS=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :$VGADIS: | cut -c2-8`
STATEIGD=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :$VGAIGD: | cut -c2-8`

#Definindo status das GPUs
if [ "$STATEDIS" == ":+:Pwr:" ] && [ "$STATEIGD" == ": :Pwr:" ] || [ "$STATEDIS" == ":+:Pwr:" ] && [ "$STATEIGD" == ": :Off:" ]
then
VGASTATE="GPU para Alto Desempenho"
VGAOFF="GPU para Economia de Energia"
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
elif [ "$STATEDIS" == ": :Pwr:" ] && [ "$STATEIGD" == ":+:Pwr:" ] || [ "$STATEDIS" == ": :Off:" ] && [ "$STATEIGD" == ":+:Pwr:" ]
then
VGASTATE="GPU para Economia de Energia"
VGAOFF="GPU para Alto Desempenho"
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
else
VGASTATE="Erro de Leitura de estado"
VGAOFF="Erro de Leitura de estado"
fi

#pegando o PID do X
PIDX=`pgrep X`

#criando a dialog
zenity --question --title "VGA Switcher" --text "Unidade Grafica Atualmente Em Uso:\n\n$VGASTATE\n\nDeseja Alternar para $VGAOFF ?"

#realizando a mudança
if [ "$?" == "0" ]
then
if [ "$STATEDIS" == ":+:Pwr:" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
zenity --warning --title "VGA Switcher" --text "Alternando para GPU Integrada\nSua Sessão será reiniciada"
kill $PIDX
elif [ "$STATEIGD" == ":+:Pwr:" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
zenity --warning --title "VGA Switcher" --text "Alternando para GPU Discreta\nSua Sessão será reiniciada"
kill $PIDX
else zenity --warning --title "VGA Switcher" --text "Houve um erro inesperado, por favor notificar a criador desse script no e-mail kriador@gmail.com"
fi
else exit
fi

################################################################
########################### SCRIPT 02 ###########################
################################################################
Código: [Selecionar]
#!/bin/bash
#Script para alternar entre placas de video by kriador
#versao 20110429 para ubuntu+kernel 2.6.38
#subindo o modulo radeon
modprobe radeon

#Checando status das GPUs
STATEDIS=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :DIS: | cut -c6-12`
STATEIGD=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :IGD: | cut -c6-12`

#Definindo status das GPUs
if [ "$STATEDIS" == ":+:Pwr:" ] && [ "$STATEIGD" == ": :Pwr:" ] || [ "$STATEDIS" == ":+:Pwr:" ] && [ "$STATEIGD" == ": :Off:" ]
then
VGASTATE="GPU para Alto Desempenho"
VGAOFF="GPU para Economia de Energia"
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
elif [ "$STATEDIS" == ": :Pwr:" ] && [ "$STATEIGD" == ":+:Pwr:" ] || [ "$STATEDIS" = ": :Off:" ] && [ "$STATEIGD" = ":+:Pwr:" ]
then
VGASTATE="GPU para Economia de Energia"
VGAOFF="GPU para Alto Desempenho"
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
else
VGASTATE="Erro de Leitura de estado"
VGAOFF="Erro de Leitura de estado"
fi

#pegando o PID do X
PIDX=`pgrep X`

#criando a dialog
zenity --question --title "VGA Switcher" --text "Unidade Grafica Atualmente Em Uso:\n\n$VGASTATE\n\nDeseja Alternar para $VGAOFF ?"

#realizando a mudança
if [ "$?" == "0" ]
then
if [ "$STATEDIS" == ":+:Pwr:" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
zenity --warning --title "VGA Switcher" --text "Alternando para GPU Integrada\nSua Sessão será reiniciada"
kill $PIDX
elif [ "$STATEIGD" = ":+:Pwr:" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
zenity --warning --title "VGA Switcher" --text "Alternando para GPU Discreta\nSua Sessão será reiniciada"
kill $PIDX
else zenity --warning --title "VGA Switcher" --text "Houve um erro inesperado, por favor notificar a criador desse script no e-mail kriador@gmail.com"
fi
else exit
fi

Sugiro, e espero a anuencia da moderaçao, para que qualquer duvida, sugestao, correçao ou critica futura no tocante a questao de VGAswitcheroo deva ser tratada nesse topico. Estou disponivel para qualquer esclarecimento sobre o assunto (se estiver dentro das minhas capacidades), obrigado.
« Última modificação: 24 de Junho de 2011, 16:36 por kriador »
Ubuntu Linux 10.10

Offline RockRég

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #1 Online: 24 de Junho de 2011, 16:34 »
Obrigado, finalmente vou poder resolver o problema q me impedia de utilizar o linux de vez.

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #2 Online: 24 de Junho de 2011, 16:37 »
Movido para a sessão => Dicas e truques

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 5.005
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #3 Online: 24 de Junho de 2011, 19:03 »
Otimo tutorial, nao sei como nao tinha visto ele antes, parabens.
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline rafael-ldc

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #4 Online: 14 de Julho de 2011, 12:35 »
Bom Dia, Pessoal.
Nao fui tao feliz na execuçao do script acima citado...

Configuraçao do meu not:Hp 2070 pavilion
Placa de Video:Ati mobility Radeon hd4550
Processador:Intel cote i5 cpu m430 2.27 Ghz
memoria:4Gb

Eu uso o ubuntu 11.04 - 32 bits em dual boot com o windows 7 - 64 bits
versao do kernel: 2.68.38-8-generic-pae-Gnome 2.32.1

*No momento em que coloco pra executar o script da a seguinte mensagem numa janela que se abre com o titulo "VGA Switcher": "Unidade grafica atualmente em uso erro de leitura de estado",
meu not liga normalmente so que continua com o problema da tela preta infinita

Offline Kriptolix

  • Usuário Ubuntu
  • *
  • Mensagens: 314
    • Ver perfil
    • Kriptolix
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #5 Online: 15 de Julho de 2011, 08:28 »
rafael

como vc consegue rodar o script se o notebook esta com problema de tela preta? nao entendi.

voce tem algum driver proprietario instalado? o diretorio /sys/kernel/debug/vgaswitcheroo esta visivel?
Ubuntu Linux 10.10

Offline rafael-ldc

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #6 Online: 15 de Julho de 2011, 22:58 »
Me desculpe se nao fui claro,eu nao tenho nenhum drive restrito instalado,ate tentei instalar,mais se instalo ele so entra em modo texto.
Na verdade o que esta acontecendo e o seguinte:
ele estava dando o problema de tela preta,so que as vezes consigo logar,mais pra isso acontecer
preciso ficar ligando e desligando,as vezes ele entra as vezes raramente nao entra,e isso pode ocasionar um problema no meu hd..ainda ontem peguei os comandos que voce
tinha deixado aqui,que sao eles:

$ sudo nano /etc/modprobe.d/blacklist.conf
# Inativando modulo de video ATI
blacklist radeon

digitei esses comandos no terminal,ate entao ele nao esta mais dando o problema de tela preta,mais te pergunto, ainda e preciso rodar o script?
porque se for preciso e igual eu te falei na resposta passada, ele da a seguinte mensagem:  "Unidade grafica atualmente em uso erro de leitura de estado"...Espero ter sido claro dessa vez
pois acredite sou totalmente leigo quando o assunto e "Linux", mais tenho força de vontade de aprender,gostei muito do sistema e por isso quero utiliza-lo,afinal na minha opiniao
no futuro so vai dar "Linux"....obrigado
« Última modificação: 15 de Julho de 2011, 23:05 por rafael-ldc »

Offline Kriptolix

  • Usuário Ubuntu
  • *
  • Mensagens: 314
    • Ver perfil
    • Kriptolix
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #7 Online: 16 de Julho de 2011, 11:13 »
certo rafael, voce esta no caminho :) agora que voce ja consegue logar normalmente vamos descobrir pq o script esta dando erros, geralmente isso acontece por dois motivos, ou voce nao esta rodando o script como sudo ou entao o diretorio o arquivo switch nao esta habilitado. para verificar isso tente rodar o script usando o comando 'sudo' antes do nome do script.

para verificar se o arquivo de troca esta habiltado execute o seguinte comando:
Código: [Selecionar]
$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
dependendo dos resultados agente ve o que fazer, o script serve pra mudar de gpu, nao é obrigatorio voce executar, mas caso nao use ele estara sempre usando a gpu on-board e nunca a sua ATI 4550. o script tambem serve pra desligar a gpu que nao esta em uso, isso economiza energia (se voce esta usando a bateria) e tambem diminui sensivelmente a temperatura do note.
Ubuntu Linux 10.10

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #8 Online: 16 de Julho de 2011, 15:33 »
Excelente tópico!
Valeu, kriador, pela ajuda que você me dá desde o [ur=http://ubuntuforum-br.org/index.php/topic,74352.msg433165.html#msg433165]outro tópico[/url].
Compilei o kernel 3.0 do Oneric e tenho usado. Resolvi, então, testar esse seu novo script. Usei o 2, porque o 3.0 mostra as siglas.
Mas eu ainda gosto daquele script que postei lá no tópico, porque ele mostra quais são as placas:


Não tem como fazer um "casamento" com o seu script?

No meu note, o Windows já ativa a placa discreta por padrão na inicialização. No Linux, não. Acabo usando só a integrada mesmo. Mas agora o fato mais curioso: a placa discreta não está ativando o Compiz (apesar do glx acusar yes). A integrada, sim.  ???

Então:
1- existe uma maneira de fazer com que o Linux já inicie com a discreta, tal como no Windows?
2- como resolver essa questão do compiz?

Offline Kriptolix

  • Usuário Ubuntu
  • *
  • Mensagens: 314
    • Ver perfil
    • Kriptolix
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #9 Online: 17 de Julho de 2011, 12:59 »
cara, existe uma maneira de fazer sim, atraves de um esquema de incorporaçao do comando de ativaçao passado como parametro ao kernel, mas é tao complicado de fazer que eu prefiro mudar depois do boot mesmo.

quanto a questao do compiz, realmente nao sei explicar, o meu sempre funcionou normal, o que acontecia era que na mudança ele desativava e eu tinha que reativar, mas depois disso ficava normal, infelizmente nao posso te ajudar nisso pq ja nao uso mais compiz, eu aderi ao gnome-shell. Ate é possivel fazer com que o meu script diga que placa é, nao pus isso pq pra mim a descriçao "discreta" e "integrada" ja dioz o que eu quero, vou dar uma olhada aqui e qualuqer coisa eu posto um script modificado que faz isso.
Ubuntu Linux 10.10

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #10 Online: 19 de Julho de 2011, 01:08 »
Não é só o compiz que não funcionou. O vlc também não está rodando nada. Só o totem funciona.

Offline brunnux

  • Usuário Ubuntu
  • *
  • Mensagens: 115
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #11 Online: 20 de Julho de 2011, 00:22 »
Perguntinha:

Fiz um teste e coloquei o modulo radeon na placklist (para não dar pau na inicialização) e no /etc/modules (para iniciar depois) ao mesmo tempo.
Deu certo! Quando executo "sudo cat /sys/kernel/debug/vgaswitcheroo/switch" ele responde normalmente, sem ter que subir o modulo manualmente, ele já subiu:
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0

Mas a DIS continua ligara! Será que existe uma forma de desliga-la e no boot com algum script?
E, existem uma forma de testar se ela está realmente desligada, tipo, não gastando energia?
« Última modificação: 20 de Julho de 2011, 00:43 por brunnux »

Offline Kriptolix

  • Usuário Ubuntu
  • *
  • Mensagens: 314
    • Ver perfil
    • Kriptolix
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #12 Online: 22 de Julho de 2011, 10:35 »
brunnux...

cara, teoricamente basta adicionar a linha de desligamento de um dos scripts aqui apresentados no rc.local ou em outro script pos inicializaçao, digo teoricamente pq tentei aqui e deu certo mas depois parou de funcionar (desconheço o motivo).

ja a forma de testar se esta ligada é muito facil, essa resposta que voce obtem no cat ja informa isso, ou seja, se estiver Pwr é por que esta ligada, quando desligada ela fica Off.

Rafael,

vi la o teu email, voce nao respondeu se estava rodando o script com o sudo, geralmente esse erro acontece quando voce tenta rodar o script sem o sudo.
Ubuntu Linux 10.10

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #13 Online: 24 de Julho de 2011, 10:20 »
Testei no 11.04 e nele a placa discreta ficou com aceleração. Será que mais uma vez é um erro provocado pelo burg?

Offline juliofilho

  • Usuário Ubuntu
  • *
  • Mensagens: 16
    • Ver perfil
Re: VGAswitcheroo – Tópico Definitivo
« Resposta #14 Online: 02 de Agosto de 2011, 19:19 »
Olá a todos.
Tenho um Vostro 3550 que possui uma ATI Radeon discreta e uma Intel integrada.
Em meu Ubuntu 11.04 aconteceu um problema estranho:
o diretório /sys/kernel/debug/vgaswitcheroo não existe, nem tampouco o arquivo switch
entretanto quando vejo se o switcheroo está habilitado com o comando
Código: [Selecionar]
grep -i switcheroo /boot/config-2.6.38-8-genericverifico que sim, a saída:
Código: [Selecionar]
CONFIG_VGA_SWITCHEROO=yalguém tem alguma ideia do que é esse problema?

obs.: não instalei nenhum driver proprietário, verifiquei no grub que os parâmetros 'nomodeset' ou 'vga=775' não são passados na inicialização, o sistema está recém-instalado (não fiz outra configuração a não ser colocar radeon na blacklist)
« Última modificação: 02 de Agosto de 2011, 19:25 por juliofilho »