Coexistência pacífica da Intel e Nviidia GLX

3

Eu tenho um laptop otimus, então ambos os cartões intel e nvidia. Ele funcionou bem durante anos (executando 12.04) usando o zangão. Sim, eu sei que há opções melhores agora, mas funciona bem.

O problema é que, por várias razões, precisei do kit de ferramentas CUDA 6, o que significa uma instalação externa. Sem surpresa, esmagou minha biblioteca GLX.

Atualmente, o hardware nvidia funciona bem, mas o hardware da Intel (ou seja, meu xserver em: 0) não consegue carregar o GLX com sucesso. Eu arriscaria um palpite de que talvez tenha algo a ver com o log de inicialização do intel xorg contendo

[    77.269] (II) LoadModule: "glx"
[    77.269] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    77.277] (II) Module glx: vendor="NVIDIA Corporation"
[    77.277]    compiled for 4.0.2, module version = 1.0.0
[    77.277]    Module class: X.Org Server Extension
#...
[    77.469] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)

dpkg -S concorda que /usr/lib/xorg/modules/extensions/libglx.so "pertence" a xserver-xorg-core , por isso estou razoavelmente seguro de que uma reinstalação forçada desse pacote colocaria o libglx.so de volta na versão "correta". O único problema é que isso quebraria o lado da nvidia.

A Intel não usa um xorg.conf , a Nvidia usa um via bumblebee.

Existe uma maneira de eu conseguir que esses dois motoristas coexistam em paz?

    
por zebediah49 24.06.2014 / 21:44

1 resposta

1

Você pode tentar restaurar o original /usr/lib/xorg/modules/extensions/libglx.so de xserver-xorg-core . Foi o que fiz em uma situação semelhante. Veja como:

  1. Primeiro confirme que ele foi realmente substituído pela instalação da nvidia:

    debsums xserver-xorg-core | grep libglx.so
    

    Se ele mostrar FAILED , significa que ele foi realmente substituído e você pode tentar restaurar o original.

  2. Para restaurar o original, primeiro encontre o nome de arquivo .deb para o seu pacote instalado:

    apt-cache show xserver-xorg-core | grep Filename: | head -1
    

    Ele deve mostrar algo assim:

    Filename: pool/main/x/xorg-server/xserver-xorg-core_1.7.6-2ubuntu7.12_i386.deb
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
  3. Localize de onde você pode baixar esse arquivo e baixá-lo. (Normalmente, uma pesquisa do Google no nome do arquivo, marcada com ^^^^^^ abaixo, é suficiente.) Salve em /tmp .

  4. Extraia o arquivo necessário do pacote:

    cd /tmp
    dpkg --fsys-tarfile xserver-xorg-core_1.7.6-2ubuntu7.12_i386.deb | tar xvf - ./usr/lib/xorg/modules/extensions/libglx.so
    
  5. Renomeie o arquivo que você está prestes a substituir (caso precise dele mais tarde):

    mv /usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so.orig-20140914
    
  6. Copie o arquivo original para o lugar correto:

    mv ./usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so
    
  7. Reinicie seu X (sair e voltar da minha sessão de gráficos foi o suficiente aqui).

  8. Execute glxgears (ou seu programa GLX preferido) para confirmar que tudo está bem agora.

O acima é testado e trabalhando no meu oldie Ubuntu 10.04 desktop (sem Unity para mim), deve funcionar na sua instalação 12.04 também se você seguir o procedimento indicado para descobrir o nome do pacote .deb (que será diferente do meu ).

    
por durval 14.09.2014 / 12:34