libGl, fbConfigs에 문제가 있습니까? error: No

SFML 프로젝트를 컴파일 할 때 문제가 있습니다 (그래픽이 표시되지 않음).

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

이 자습서를 통해 nvidia-drivers를 간단히 다시 설치하면이 오류를 해결할 수 있습니다. https://askubuntu.com/a/451248/341889

..하지만 새 업데이트를받을 때-이 오류가 반환됩니다. (어떻게해야합니까? 해결책이 아닙니다-시스템 업데이트를 사용하지 마십시오 …

PS와 예, NVIDIA 드라이버를 설치 한 후 모든 변경 사항을 저장했습니다



답변

swrast것은 소프트웨어 렌더러입니다. 이는 그래픽 카드의 하드웨어 드라이버를 찾지 못했음을 의미합니다. 많은 libGL 라이브러리가 설치되어 있으며 해당 라이브러리에 대한 기호 링크가 많이 있습니다. 이것을 쉘에서 실행하려면 다음을 수행하십시오.

find /usr -iname "*libGL.so*" -exec ls -l -- {} +

이제 문제의 가능한 원인은 그래픽 드라이버를 설치하면 때때로 이러한 심볼릭 링크가 손상되기 때문입니다. (특히 /usr/local/lib/libGL.so.1.2.0잘못된 lib 또는 잘못된 링크에 대한 sym 링크 일 수 있음).

OpenGL 프로그램이 실행하려는 라이브러리를 해결하기 위해 약간의 자세한 기능을 설정하고 간단한 OpenGL 프로그램을 실행할 수 있습니다. 표준 OpenGL 테스트 프로그램을 사용하여이를 확인할 수 있습니다.

LIBGL_DEBUG=verbose glxgears

SFML과 같은 방식으로 실패 할 수 있기를 바랍니다. 으로 LIBGL_DEBUG그것을로드하려고 무엇의 OpenGL 라이브러리를 말해야한다. 또한로드하려고하는 lib는 거의 확실합니다 /usr/local/lib/libGL.so.1.2.0(편집 : 이것은 내가 대답했을 당시 내 컴퓨터의 표준 OpenGL 라이브러리였습니다. 현재 컴퓨터의 다른 버전 일 수도 있습니다).

따라서 해결책 (이 경우)은 /usr/local/lib/libGL.so.1.2.0올바른 OpenGL 라이브러리를 가리키는 심볼릭 링크 인지 확인하는 것 입니다. 내 경우에는 Nvidia 3.40 드라이버가 있으므로 다음을 실행했습니다.

ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0

그러나 여러분에게 적합한 OpenGL lib (첫 번째 find 명령에 나열되어 있음)를 가리켜 야합니다.

요약 : (독점) 그래픽 드라이버를 설치하면 OpenGL 라이브러리에 사용되는 심볼릭 링크가 손상 될 수 있습니다. 이 문제를 해결하려면 심볼릭 링크를 수동으로 수정하십시오 ( /usr/local/lib/libGL.so.1.2.0먼저 수정 ).


답변

nvidia-340드라이버와 함께 Ubuntu 16.10에서 동일한 문제가 발생했지만 여기에서 해결 된 솔루션은 없습니다.

32 비트 라이브러리가 라이브러리 경로에 없었습니다.

이 라이너는 나를 위해 일했습니다.

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-340"


답변

nVidia 드라이버를 가리 키기 위해 올바른 symlink를 얻는 데 문제가 있었고 다른 방법을 찾았습니다.

여기에 설명되어 있습니다 .

또한 최신 버전 인 349.16에서 사용할 수있는 PPA를 통해 nVidia 드라이버를 설치하는 방법에 대해 설명합니다.

먼저 터미널 창 ( Ctrl+ ALT+ T) 을 열고 다음 을 입력하여 현재 설치된 모든 nVidia 드라이버를 제거하십시오.

sudo apt-get remove nvidia*

시스템을 재부팅

그런 다음 다른 터미널을 열고 다음을 입력하십시오.

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-349 nvidia-settings
sudo add-apt-repository -r ppa:xorg-edgers/ppa

그런 다음 다시 재부팅

드라이버를 설치 한 직후 심볼릭 링크를 잃어버린 후에 시도해 보았고 스팀은 제대로 작동했으며 400 메가 이상의 시스템 업데이트를 한 후에도 여전히 작동했습니다.


답변

Adrian의 답변에 대한 대안을 제공하려면 PPA에있는 드라이버 대신 NVIDIA에서 직접 제공 한 독점 드라이버를 사용하려는 경우 최신 독점 드라이버를 설치 (또는 내 경우에는 다시 설치)하면 swrast 오류를 제거 할 수 있습니다.

NVIDIA 드라이버가없는 경우 NVIDIA 웹 사이트 에서 드라이버를 다운로드하십시오 . 그런 다음 tty ( ctrl+ alt+ F1)로 전환하고 로그인 관리자를 끕니다.

lightdm을 사용하는 경우 $ sudo service lightdm stop

gdm을 사용하는 경우 $ sudo service gdm stop

설치 스크립트로 이동하여 실행 한 후 프롬프트를 따르십시오. 사전 설치 스크립트가 실패해도 걱정하지 마십시오. DKMS 및 32 비트 호환성 라이브러리 등록을 항상 수락합니다. 드라이버가 설치된 후 컴퓨터를 다시 시작하십시오.

$ sudo reboot

이전 NVIDIA 드라이버의 설치 ​​스크립트가 이미있는 경우 위에서 언급 한대로 “–update”옵션을 사용하여 NVIDIA 드라이버 설치 스크립트를 실행하십시오.

$ sudo ./NVIDIA-Linux-x86_64-***.**.run --update

그러면 최신 버전의 드라이버가 제공됩니다.

이렇게하면 내 libGL error: failed to load driver: swrast오류가 해결되었습니다.


답변

우분투 18에서도 같은 문제가 발생했습니다. 이것은 기본적으로 32 비트 앱에서만 발생했습니다. 내 아이디어는 내 / usr / lib / i386-linux-gnu / 폴더가 의심스럽게 비어 32bit nvidia를 설치하는 것이 었습니다.

몇 번의 시도 끝에 증기와 와인이 시작되지 않는 문제가 해결되었습니다.

sudo apt install libnvidia-gl-418:i386

(그리고 당신이 가지고있는 버전으로 418을 변경하십시오)

응용 프로그램이 설치 중 종속성 누락에 대해 불평하지 않았다는 점에 흥미가 있습니다.


답변

나는 이것이 왜 나에게 도움이되는지 잘 모르겠지만 인정했다. 이 경우에는 다음과 같이 새 항목을 추가하여 ld.so.conf.d 항목을 “고정”합니다.

sudo ln -s /usr/lib/nvidia-381/ld.so.conf /etc/ld.so.conf.d/nvidia64.conf
sudo ldconfig

이것은 다음을 실행할 때까지 의미가 있습니다 find.

$ find -L /etc/ld.so.conf.d -type f | xargs grep -i nvidia
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf:/usr/lib32/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib/nvidia-381
/etc/ld.so.conf.d/nvidia64.conf:/usr/lib32/nvidia-381

같은 항목을 세 번 반복해서 사용하지만 중복되지 않은 이유는 무엇입니까?


답변

다음 apt은 저에게 도움 이되는 유일한 솔루션입니다 ld.so.conf.d.

apt install --reinstall libgl1-mesa-glx:i386
apt install mesa-utils nvidia-driver nvidia-driver-libs-i386