VGAswitcheroo – Tópico Definitivo

Iniciado por Kriptolix, 24 de Junho de 2011, 16:25

tópico anterior - próximo tópico

brunnux

Consegui algumas saídas de comandos jogando as saídas em arquivos de texto em um pendrive.
Vê se alguém consegue identificar o problema:

Código (sudo amdconfig --pxl) Selecionar
PowerXpress: Discrete GPU is active (High-Performance mode).

O mais estranho:

Código (fglrxinfo) Selecionar
Error: unable to open display (null)

E por ultimo, meu xorg.conf:

Código (cat /etc/X11/xorg.conf) Selecionar
Section "ServerLayout"
Identifier     "aticonfig Layout"
Screen      0  "aticonfig-Screen[0]-0" 0 0
EndSection

Section "Module"
EndSection

Section "Monitor"
Identifier   "aticonfig-Monitor[0]-0"
Option     "VendorName" "ATI Proprietary Driver"
Option     "ModelName" "Generic Autodetecting Monitor"
Option     "DPMS" "true"
EndSection

Section "Device"
Identifier  "aticonfig-Device[0]-0"
Driver      "fglrx"
BusID       "PCI:1:0:0"
EndSection

Section "Screen"
Identifier "aticonfig-Screen[0]-0"
Device     "aticonfig-Device[0]-0"
Monitor    "aticonfig-Monitor[0]-0"
DefaultDepth     24
SubSection "Display"
Viewport   0 0
Depth     24
EndSubSection
EndSection


Alguma ideia?

juliofilho

brunnux

então deixa eu ver se eu entendi, entrando em qualquer um dos modos (GPU discreta ou integrada) o vídeo sempre dá pal...
e tentando configurar o grafico para as placas amd X2 também não funfou né?

olha, seu xorg.conf parece está certinho
então vamos por partes:

sobre vc não conseguir se logar (já aconteceu isso comigo no update do driver catalyst tbm) provavelmente é porque o arquivo .Xauthority que fica na raiz do seu /home/seu_usuario está como dono o usuário root. Se vc mudar o dono para vc (use chown) de novo vc deve conseguir logar de boa.

agora sobre o driver...
cara, era pro driver funcionar de boa! o driver é o correto! a instalação foi feita de maneira correta! então antes da gente dizer que o driver proprietário não funciona para o seu caso e passar pra outra solução queria só testar uma última coisa:
eu li numa wiki do ubuntu que o driver fglrx dá problema em alguns computadores devido um bug na implementação da acpi da bios.


If you've properly installed the driver, but experience problems when starting the X server, such as hanging, black/white/gray screen, distortion, etc., your system BIOS may have a buggy ACPI implementation. To work around, press Ctrl+Alt+F1 to get to a terminal (or failing that, boot to recovery mode) and run:

sudo amdconfig --acpi-services=off

If this method works, you should consider checking your system vendor's BIOS changelogs for relevant ACPI fixes, updating your BIOS, and reenabling the driver's ACPI services.


se não funcionar a gente pode partir pra usar os driver open source mesmo, switcheroo e tal, que é o que resta...

brunnux

Citarsobre vc não conseguir se logar (já aconteceu isso comigo no update do driver catalyst tbm) provavelmente é porque o arquivo .Xauthority que fica na raiz do seu /home/seu_usuario está como dono o usuário root. Se vc mudar o dono para vc (use chown) de novo vc deve conseguir logar de boa.

Ótimo, isto eu não sabia. Se acontecer de novo eu olho, reinstalei e fiz tudo de novo mas mesmo assim n deu de novo, estou no ctrl+alt+f1.

Citaragora sobre o driver...
cara, era pro driver funcionar de boa! o driver é o correto! a instalação foi feita de maneira correta! então antes da gente dizer que o driver proprietário não funciona para o seu caso e passar pra outra solução queria só testar uma última coisa:
eu li numa wiki do ubuntu que o driver fglrx dá problema em alguns computadores devido um bug na implementação da acpi da bios.

Fiz o sudo amdconfig --acpi-services=off, o comando não retorna nenhuma resposta, simplesmente executa. Porem quando reinicio nada muda, continua a mesma coisa.

Citarse não funcionar a gente pode partir pra usar os driver open source mesmo, switcheroo e tal, que é o que resta...

Bom, a questão do acpi parece que não é, eu acho. O driver open source e o switcheroo eu já usava, mas não consigo aceleração gráfica quando coloco na discreta, e ainda fica pior que na integrada.
Eu realmente gostaria de saber qual o problema e resolve-lo, quero muito jogar no Steam e mandar o Janelas pro beleleu. Me passa o link de onde você leu sobre o acpi, por favor, e se conseguir pensar em mais alguma coisa que eu possa fazer me avise.

Estou muito intrigado com o Error: unable to open display (null) quando dou fglrxinfo.

juliofilho

eu encontrei essas informações na wiki não oficial da amd que você estava usando
http://wiki.cchtml.com/index.php/Ubuntu_Quantal_Installation_Guide#Problems_Starting_Xserver
inclusive lá tem uma listagem muito boa de muitos erros que podem acontecer na instalação do driver e como resolvê-los
acho que você já deve ter visto e tentado de tudo tbm, né.. :-/

pow cara bacana que você quer jogar no linux e se livrar de ter q tudo quanto eh jogo ter q ir pro windows, eu também fiquei muito feliz quando pude usar a minha discreta e jogar no ubuntu, estou só no aguardo de L4D2...
mas pelo que to vendo se meus conhecimentos pra resolver esse tipo de problema não estão no mesmo nivel dos seus, então são inferiores..
eu vou pesquisar, se achar alguma coisa eu te aviso por aqui
e se vc resolver também poste aqui pra galera, blz?  ;)

brunnux

Citação de: juliofilho online 25 de Março de 2013, 10:06
eu encontrei essas informações na wiki não oficial da amd que você estava usando
http://wiki.cchtml.com/index.php/Ubuntu_Quantal_Installation_Guide#Problems_Starting_Xserver
inclusive lá tem uma listagem muito boa de muitos erros que podem acontecer na instalação do driver e como resolvê-los
acho que você já deve ter visto e tentado de tudo tbm, né.. :-/

pow cara bacana que você quer jogar no linux e se livrar de ter q tudo quanto eh jogo ter q ir pro windows, eu também fiquei muito feliz quando pude usar a minha discreta e jogar no ubuntu, estou só no aguardo de L4D2...
mas pelo que to vendo se meus conhecimentos pra resolver esse tipo de problema não estão no mesmo nivel dos seus, então são inferiores..
eu vou pesquisar, se achar alguma coisa eu te aviso por aqui
e se vc resolver também poste aqui pra galera, blz?  ;)

Nossos conhecimentos não são diferentes, são compartilhados (hahaha). Vou fazer o seguinte, vou reinstalar para no caso de eu ter ferrado com alguma coisa e seguir a risca estas instruções de novo. Vi lá que tem alguns bugs com relação a Intel/ATI Hybrids, que é o meu caso, e vi que tem uns workarounds, vou tentar estes.
Em caso de vitória eu posto aqui. Se bem que estou preocupado, este tópico é sobre VGAswitcheroo, não sobre os drivers fglrx.

Kriptolix

Citação de: brunnux online 25 de Março de 2013, 16:24

Se bem que estou preocupado, este tópico é sobre VGAswitcheroo, não sobre os drivers fglrx.


Nao se preocupe, pois o assunto tem tudo a ver, ja que voce esta tentando fazer sua GPU comutavel funcionar, o topico é sobre GPU comutavel, na epoca em que criei basicamente isso significava switcheroo, mas se as coisas evoluem o topico tambem deve evoluir :)
Ubuntu Linux 10.10

brunnux

Por enquanto eu desisto (de novo). Fiz de tudo que estava ao meu alcance e não aguento mais ficar usando o Windows, pois o Ubuntu esteve inutilizável por estes dias enquanto eu estava tentando resolver isso.

Segui o http://wiki.cchtml.com/index.php/Ubuntu_Quantal_Installation_Guide, fiz todos os procedimentos cabíveis para as especificidades da minha placa, acpi parece estar bem, no Windows funciona normalmente, no driver aberto padrão de instalação a Intel funciona normal então vou ficar usando ela mesmo. Suspeito de que seja a combinação driver, servidor x e placa muito específica tudo incompatível, quando resolvo um problema tem outro, quando resolvo o outro, o outro ressurge, acho que vou esperar o 13.04, há notícias de que a Canonical está desenvolvendo seu próprio servidor gráfico para substituir o x, pois este já está inflado, cheio de coisas inúteis e obsoletas, quem sabe existe aí uma esperança.
Cheguei a um ponto em que toda a instalação funciona mas mesmo tentando resolver os problemas com a questão X2/Dual GPU Cards, que tem uns bugs, faço os workarounds disponíveis e nada, a decoração das janelar e as barras do Unity não funcionam, só isso.
Mas caso alguém ainda tiver mais alguma ideia, por favor, estou aberto a sugestões.

shermanflima

Boa noite, uso Debian Wheezy e duas placa ATI a integrada é HD4200 e funciona perfeitamente, a discreta é a HD5470, quando executo o script dá tela preta, porém eu percebi que o Debian esta funcionando, para eu voltar a usar eu dou um ctrl+alt+del para "aparecerem" (porém eu não vejo, tela preta) as opçoes "Desliga" e "Reiniciar" teclo Enter e o note desliga tornando a ligá-lo volta a funcionar com a HD4200, eu deveria subir algum módulo para fazer funcionar a HD5470, não seria o mesmo da HD4200 por serem as duas ATI, no momento estou  usando o comando ' echo OFF ' para desligar a discreta para poupar bateria e não aquecer muito e funciona, quando executo o script percebo que ele liga a discreta pois há um led indicativo no meu note, se a placa está ligada seria falta de driver ? Obrigado.

gabriel_shark

Olá!

Executei cat /sys/kernel/debug/vgaswitcheroo/switch e apareceu o seguinte resultado:

0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0


Não entendi muito bem qual devo usar... e como faço para executar o script? (sou leigo ainda em Linux)

Obrigado!

Arthur Bernardes

Use o Script 2

#!/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


Abra um terminal, e execute sudo gedit switcheroo, copie o conteúdo do script e cole no arquivo, salve e feche a janela do editor.

Após, dê permissão de execução ao arquivo com sudo chmod +x switcheroo, e depois execute o script como root sudo sh switcheroo

gabriel_shark

Citação de: Arthur Bernardes online 04 de Maio de 2013, 14:26
Use o Script 2

#!/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


Abra um terminal, e execute sudo gedit switcheroo, copie o conteúdo do script e cole no arquivo, salve e feche a janela do editor.

Após, dê permissão de execução ao arquivo com sudo chmod +x switcheroo, e depois execute o script como root sudo sh switcheroo


Olá, executei seus passos e abriu a janela do VGA Switcher com a seguinte mensagem:

Unidade Grafica Atualmente Em Uso:

Erro de Leitura de estado

Deseja Alternar para Erro de Leitura de estado ?



E opções Não e Sim


Qual devo escolher?

gabriel_shark

Citação de: gabriel_shark online 04 de Maio de 2013, 14:34
Citação de: Arthur Bernardes online 04 de Maio de 2013, 14:26
Use o Script 2

#!/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


Abra um terminal, e execute sudo gedit switcheroo, copie o conteúdo do script e cole no arquivo, salve e feche a janela do editor.

Após, dê permissão de execução ao arquivo com sudo chmod +x switcheroo, e depois execute o script como root sudo sh switcheroo


Olá, executei seus passos e abriu a janela do VGA Switcher com a seguinte mensagem:

Unidade Grafica Atualmente Em Uso:

Erro de Leitura de estado

Deseja Alternar para Erro de Leitura de estado ?



E opções Não e Sim


Qual devo escolher?



Fiz o teste com as duas opções.... porém nos Detalhes do sistem ainda aparece o Gráfico: Desconhecido

basmt1

Olá, também tenho um Dell Vostro 3550, mas ele roda o linux 12.10 64 em dual boot com o win7 64

quando eu digito o comando:
sudo cat /sys/kernel/debug/vgaswitcheroo/switch

aparece o seguinte:
0:DIS: :Pwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0


o que me leva a crer, que eu devo utilizar o script #2 né?

pois bem.. eu devo copiar ele todo e digitar no terminal? como devo proceder?

Arthur Bernardes

Use o Script 2

#!/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


Abra um terminal, e execute sudo gedit switcheroo, copie o conteúdo do script e cole no arquivo, salve e feche a janela do editor.

Após, dê permissão de execução ao arquivo com sudo chmod +x switcheroo, e depois execute o script como root sudo sh switcheroo

n3rdbr

Olá galera,

Estou usando o script 2 pq minha saída do comando identifica DIS e IGD, tudo ocorre bem, porém no fim ele avisa que irá reiniciar a sessão para ativar minha ATI dou OK e ele trava em uma tela preta e tenho que forçar o desligamento, quando religo ele retorna a utilizar a GPU integrada do meu processador I5, as características do meu hardware são estes:

http://h10025.www1.hp.com/ewfrf/wc/document?cc=br&lc=pt&dlc=pt&docname=c03049364

A única diferença é que tenho 12Gb de DDR3,

Se alguém puder me ajudar agradeço muito!!!

Podem me responder aquí ou por mensagem ou por e-mail (n3rdbr@gmail.com)
Laptop HP Pavilion DM4-2155br, Intel CORE I5 #2, AMD ATI Radeon HD Grafics 6470m 1gb, memoria ddr3 12gb, sistema Ubuntu 12.10