Eu tenho uma máquina com uma NVIDIA GeForce que não uso para fins de exibição (ou seja, o monitor não está conectado a ela) e alguns chips gráficos on-board sem brilho. (Abaixo, você encontrará a lshw
listagem relevante .)
Minhas sessões X funcionam muito bem; mas quando a maioria dos meus aplicativos X (que exigem qualquer tipo de GFX ou um kit de ferramentas) é executada, eles emitem a seguinte mensagem de erro:
Xlib: extension "GLX" missing on display ":0".
Minha pergunta é: Como posso fazer com que meus aplicativos notem a biblioteca não NVIDIA GLX e a usem (sem remover a placa NVIDIA e sem alternar o monitor para suas portas de saída, é claro)?
Estou usando o Debian / Linux Stretch 64bit, versão do kernel 4.2.6, com o LXDE.
Saída de lshw -c display
:
*-display
description: VGA compatible controller
product: GK106 [GeForce GTX 650 Ti Boost]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:02:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:17 memory:f6000000-f6ffffff memory:e0000000-e7ffffff memory:e8000000-e9ffffff ioport:e000(size=128) memory:f7000000-f707ffff
*-display
description: VGA compatible controller
product: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:30 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)
Saída de glxinfo
:
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Saída de cat /var/log/Xorg.0.log | grep glx
:
[ 19.287] (II) LoadModule: "glx"
[ 19.787] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 22.727] (II) Module glx: vendor="X.Org Foundation"
Informação adicional:
- Eu não tenho o
glx-alternative-nvidia
pacote instalado. - Se eu inicializar a partir de uma imagem ao vivo USB do Devuan ASCII, o problema não se manifesta.
- Se eu criar um
xorg.conf
usandoXorg :1 -configure
, é isso que ele produz (2 seções 'Dispositivo', uma associada aointel
driver, outra comnouveau
); mas se eu comentar a seção nouveau e tentar executar o Xorg com essa configuração - ele não será carregado, dizendo que não consegue encontrar nenhuma tela.
fonte
bumblebee
e instalarnvidia-bumblebee
(no Debian Jessie, usando os pacotes backports gfx).Respostas:
Cheguei aqui após a instalação
nvidia-current
do repositório de pacotes e fiquei preso em um loop de login . Eu olhei para o logon~/.xsession-errors
e encontrei o erro mencionado:Xlib: extension "GLX" missing on display ":0".
Eu já tinha desinstalado
nvidia-current
e o problema persistiu. Eu também não tinhaglx-alternative-nvidia
instalado. Como último recurso, simplesmente desinstalei tudo donvidia
meu Ubuntu (incluindo o material CUDA) e funcionou após o reinício.fonte
nvidia-current
instalado nem, de fato, nenhumnvidia-
pacote. Mas eu tenho o CUDA mais recente instalado, com o driver que acompanha (o instalador manual da nvidia). Sei que é uma maneira feia de fazer as coisas, mas preciso da versão mais recente.Primeiro identifique qual módulo glx está em uso:
No Debian 8 Jessie, minha solução foi remover o
glx-alternative-nvidia
pacote. Então, após a reinicialização:fonte
apt-get
pacotes.contrib
repositório para vê-lo. E, provavelmente, você nem o instalou e, portanto, a causa da falta de erro de extensão glx é diferente.cat file | grep pattern
? Por que nãogrep pattern file
?Eu o resolvi desinstalando o glx-alternative-nvidia
fonte
glx-alternative-nvidia
pacote instalado ...Eu tive problemas após atualizar o Debian 9 depois de clicar no prompt de reinicialização para atualizar.
Ao instalar inicialmente, segui as etapas encontradas no wiki https://wiki.debian.org/NvidiaGraphicsDrivers
Os mais importantes para mim foram ...
Em seguida, realizou uma reinicialização
fonte
Instale o OpenGL no seu computador e, como mencionado aqui , adicione o seguinte ao seu
/etc/X11/xorg.conf
:(Substitua
nvidia-VERSION
pelo nome do diretório) Isso funcionou para mim.fonte
/etc/X11/xorg.conf
por algum motivo.sudo nvidia-xconfig
Entendi "extensão" GLX "ausente" quando "dist-upgrade" meu debian (8 -> 9). A solução foi bem simples.
Faça o download do instalador do driver na NVIDIA
Depois que o instalador fez seu trabalho, o GLX voltou.
ps: Se o usuário reposar, acho que um dpkg-reconfigure "driver_package_name" faria o mesmo.
fonte