fglrx congelar na tela de bloqueio ou fechar a tampa quando o iGPU for selecionado

2

Meu sistema tem gráficos híbridos (e acredito que muxless, ou seja, apenas a placa integrada está realmente conectada à tela). O primeiro cartão é um Intel HD 4400 e o segundo cartão é o AMD Radeon HD 8670M (série do sistema solar, não OLAND). Portanto, atualmente o driver radeon do código-fonte aberto não suporta o cartão, e eu sou forçado a usar o driver fglrx proprietário.

Por que não desativar o cartão dGPU sem o fglrx?

Eu não preciso de gráficos extravagantes e ficaria feliz em simplesmente desligar a discreta placa ATI, desde que ela esteja corretamente desligada e não esteja superaquecendo / alimentando a bateria. As opções para fazer isso sem fglrx e pxpress pareciam limitadas a mim: não tenho vgaswitcheroo switch (antes mesmo de fglrx ter sido instalado) e só posso deduzir que isso ocorreu porque o driver radeon não ainda apoiar o meu cartão / não carrega corretamente ainda, veja minha pergunta aqui para mais sobre isso e as coisas que eu tentei. Outros métodos como acpi_call foram relatados como na melhor das hipóteses "prova de conceito" e, na pior das hipóteses, perigosos, então prefiro não me aventurar a usá-los. Projetos mais confiáveis como bumbleebee são apenas nividia.

Basta deixar a placa AMD sem drivers

Baseando-se apenas no driver i915 intel funciona sem problemas, sem bugs, sem problemas, porém a placa AMD é deixada sem aviso e pode levar ao superaquecimento / consumo de bateria, então eu não estou tão feliz com isso.

Ubuntu 12.04 LTS com fglrx

Comecei aqui e experimentei um bug quando o iGPU foi selecionado. Esse bug se manifesta sempre que a tela é bloqueada, a tampa do laptop é fechada ou até mesmo quando o computador fica inativo com algo como xscreensaver instalado, sem nenhuma tela de bloqueio ativada. Isso faz com que uma tela preta só tenha um cursor móvel; a comutação tty e back não se recupera, e uma reinicialização do tty é necessária. Isso não acontece a cada momento, mas acontece com bastante regularidade, pelo menos uma ou duas vezes por dia. Todo o trabalho salvo é perdido.

Eu tentei o fglrx nos repos e as últimas 13.10 do site da AMD. Nenhuma mudança.

Quando o dGPU é selecionado em vez disso (do centro de controle do AMD Catalyst, ou por último pelo pxpress) este bug não ocorre, mas eu tive outro bug que não vou me incomodar em entrar aqui.

Ubuntu 13.10 com fglrx

Um erro muito semelhante aqui, mas não tão grave. Exatamente as mesmas condições, ou seja, lockscreen, lidclose, inatividade (se xscreensaver está sendo usado). Desta vez, a tela congelada não é preta, mas uma imagem da sua área de trabalho no momento do congelamento, novamente com o cursor móvel. Aqui eu só tentei os drivers mais recentes fglrx AMD 13.10.

Novamente, não há problemas apenas com o driver i915 (sem fglrx ) e novamente sem problemas com dGPU selecionado.

Algumas coisas que eu tentei:

1) Desativando vsync . Eu tentei isso tanto no gerenciador de configurações do Compiz, e por aticonfig --sync-vsync=off seguido de reinicialização. Nenhuma mudança .

2) Desligando o DPMS. Option "DPMS" "false" na sub-rotina do monitor xorg.conf . (É claro que também altero as configurações do gnome "Do Nothing / Don't suspend" para bateria e AC também). Sem alteração .

3) Option "AIGLX" "off" nos sinalizadores do servidor de xorg.conf . Nenhuma mudança .

4) Modificando o atieventsd para que funcionasse corretamente para o Ubuntu, veja meu post aqui . E também, correndo sem ele. Nenhuma mudança .

5) Inicializando com as opções

Option      "Capabilities" "0x00000800"
Option      "KernelModuleParm" "locked-userpages=0"
Option      "NoAccel" "True"

na sub-rotina xorg.conf do dispositivo. Nenhuma mudança .

6) Inicializando com nomodeset como parâmetro do kernel. Nenhuma mudança .

7) Desativando acpi interação de aticonfig :

--acpi-services=off
--acpi-display-switch=off

Sem alteração .

Por que isso funciona apenas com informações?

Uma coisa que eu não entendo é por que funciona apenas com o driver intel i915 . Eu pensei que pxpress iria apenas entregar o controle para aquele driver na inicialização, então se funcionasse com i915 , eu esperaria que ele funcionasse com o pxpress selecionando igpu .

Eu sei que fglrx instala sua própria implementação de libGl também, mas ela volta para a antiga implementação MGL libGL quando o cartão de inteligência é selecionado (c.f. /usr/lib/fglrx/switchlibGL python script).

Então, quando igpu selecionado, ele deve ser exatamente equivalente à vida antes de fglrx após uma reinicialização?

    
por fpghost 23.12.2013 / 01:27

1 resposta

1

Depois de um longo tempo, descobri o ponto chave: quando fglrx / pxpress carrega o driver Intel, ele o faz com o método UXA acceleration, enquanto por padrão (em um sistema Haswell rodando 13.10, pré-fglrx install) o driver Intel carregaria com o método SNA acceleration.

Eu testei inicializando com um xorg.conf que parecia:

Section "Device"
        Identifier      "Intel Graphics"
        Driver          "intel"
        Option          "AccelMethod"  "UXA" # (fglrx uses this) I can see the bug
        #Option          "AccelMethod"  "SNA" #(default) no bug!
EndSection

Section "Monitor"
           Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection

Agora, mesmo este Intel xorg.conf deu o erro de congelamento após uma tampa fechar ou dois. Ainda inicializando com o mesmo arquivo de configuração, somente com

Option          "AccelMethod"  "SNA" 

Eu não tenho nenhum bug, não importa quantos fechos de tampa / fechaduras de tela (este é o método padrão para o driver de qualquer maneira, e é por isso que fiquei perplexo, porque me enganou em pensar que tudo estava bem com o driver intel e fglrx estava manchando as coisas).

Agora que percebi que esse era um problema de driver da intel, alguns pesquisaram no Google para descobrir uma correção. Crie um arquivo ~/.drirc para definir as configurações de DRI, contendo

<device screen="0" driver="dri2">
        <application name="Default">
                <option name="vblank_mode" value="0"/>
        </application>
</device>

Isso desativa vsync (a configuração que faz com que o seu cartão GFX seja sincronizado com a taxa de atualização da tela, em vez de ficar acelerando em sua taxa de quadros intrínseca, para evitar que se rasguem). Nota: não há nenhum ponto de desligar vsync com aticonfig como no meu OP como isso só vai desligá-lo para o dGPU não a placa Intel. Eu não tenho certeza porque minha tentativa de desativá-lo com o Gerenciador de Configurações do Compiz não funcionou.

Mesmo com o método UXA , desativar vsync dessa maneira interrompeu a falha, mesmo para o fglrx xorg.conf .

Melhor ainda seria configurar pxpress para carregar o driver Intel com as opções SNA , veja meu post aqui

    
por fpghost 28.01.2014 / 21:29