GPU desligada ao trocar a placa gráfica

4

Eu tenho um laptop (Dell Inspiron N4110) com um gráfico alternável .

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: ATI Technologies Inc NI Whistler [AMD Radeon HD 6600M Series] (rev ff)

Normalmente, meu laptop começa com as duas placas gráficas ativadas, o que faz com que o laptop fique muito quente e o ventilador fique muito barulhento. Eu tenho usado um pequeno script para desabilitar o cartão Radeon. Por algum tempo, estou muito feliz com esse arranjo.

No entanto, tenho tido alguns problemas com a placa Intel (IGD), a placa da Intel muitas vezes fica paralisada ao executar aplicativos OpenGL; e por isso quero dar ao cartão Radeon (DIS) outra chance.

Eu nunca consegui mudar para a placa Radeon, mas recentemente descobri que se eu fizer uma "comutação atrasada" (DDIS):

# echo "DDIS" > /sys/kernel/debug/vgaswitcheroo/switch
root@lieryan-dell-ubuntu:/sys/kernel/debug/vgaswitcheroo# cat switch 
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Pwr:0000:01:00.0

, entro em logoff (ou seja, para reiniciar o X), a tela muda para pseudo-tty e depois fica congelada. Nessa situação, o mouse e o teclado param de funcionar, por isso não posso alternar para outro ponto. Eu tentei ssh-ing de outro computador para recuperar logs ( dmesg nesse ponto ) e outros enfeites; Descobri que, quando congelada, a placa gráfica ativa é a placa AMD:

-- this is from ssh --
# cat switch 
0:IGD: :Off:0000:00:02.0
1:DIS:+:Pwr:0000:01:00.0

mas aparentemente a GPU está desligada, olhando para o dmesg:

...
[ 1411.649974] vga_switcheroo: client 0 refused switch
[ 1411.649985] vga_switcheroo: setting delayed switch to client 1
[ 1423.911759] vga_switcheroo: processing delayed switch to 1
[ 1424.006564] fbcon: Remapping primary device, fb1, to tty 1-63
[ 1424.006799] i915: switched off
[ 1424.840351] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
[ 1425.718088] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
[ 1426.622377] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
[ 1427.355683] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
[ 1428.193549] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
... the invalid framebuffer id error is repeated for many times over ...

Consegui recuperar com sucesso, voltando ao cartão Intel e reiniciando o X do ssh; indicando que somente a placa Radeon tem problemas ao trocar.

Informações do sistema:

$ uname -a
Linux lieryan-dell-ubuntu 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:28:43 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 11.10
Release:    11.10
Codename:   oneiric

O laptop também não tem a opção de configurar a placa gráfica na BIOS e o driver proprietário, fglrx, também nunca funcionou; quando eu instalei através do jockey ("Drivers Adicionais"), o glxinfo mostrou que ainda está sendo renderizado pelo Mesa, o diretório / sys / kernel / debug / vgaswitcheroo sumiu, e o driver trava com um traceback se eu usar o xorg.conf para dizer ao X para usar o fglrx.

Alguém tem alguma idéia se é possível usar esta placa AMD com o driver radeon ou fglrx?

logs:

por Lie Ryan 23.12.2011 / 19:35

2 respostas

2

Parece que o Catalyst 12.2 pode resolver este problema: link

Você também pode consultar o link

    
por Vivodo 26.03.2012 / 19:32
1

@Exas Incrível Finalmente funciona !. Quanto ao registro aqui é minhas configurações.

$ lspci | grep VGA

00: 02.0 Controlador compatível com VGA: Família de processadores Intel Core 2ª geração Controlador gráfico integrado (rev 09) 01: 00.0 Controlador compatível com VGA: Advanced Micro Devices [AMD] nee ATI Seymour [Série Radeon HD 6400M]

@TomBrossman Sim / sys / kernel / debug / vgaswitcheroo / desaparece, mas isso sempre perdia após a instalação do driver de catalisador. Isso deve ser um problema se funcionar.

Siga exatamente o que está escrito em ubuntuforums . No entanto eu baixei o catalisador 12.4 binário. Quando você concluir a etapa 2 no link acima, após a reinicialização, poderá verificar o seguinte para ver se a sua placa ATI foi ativada.

$ aticonfig --pxl

PowerXpress: a GPU discreta está ativa (modo de alto desempenho).

$ fglrxinfo

display:: 0 tela: 0 Sequência de fornecedores do OpenGL: Advanced Micro Devices, Inc. Sequência do renderizador OpenGL: AMD Radeon HD 6400M Series Sequência da versão do OpenGL: 4.2.11631 Contexto do perfil de compatibilidade

$ fgl_glxgears

Usando o GLX_SGIX_pbuffer

1100 quadros em 5,0 segundos = 220.000 FPS

1286 quadros em 5,0 segundos = 257.200 FPS

Você não vai mais pegar esse ventilador. Uma coisa a notar é que pode não dar tanto desempenho de bateria quanto o integrado, então você pode olhar para cartões de alto desempenho e bateria. Veja o passo 3 desse post para mudar de placa gráfica.

Depois de alternar para o hd 3000 integrado (sudo aticonfig --px-igpu) e efetuar logout e login, a seguinte saída foi encontrada

$ glxgears

Correndo sincronizado com a atualização vertical. O framerate deve ser aproximadamente o mesmo que a taxa de atualização do monitor. 303 quadros em 5,0 segundos = 60,457 FPS

$ fgl_glxgears

Usando o GLX_SGIX_pbuffer 245 quadros em 5,0 segundos = 49.000 FPS 300 quadros em 5,0 segundos = 60.000 FPS

Se você quiser inicializar a placa gráfica integrada em vez da discreta e a primeira, você pode considerar escrever o comando switch em /etc/rc.local

Felicidades !!

    
por razor 28.04.2012 / 03:10

Tags