Opengl 라이브러리를 nvidia와 mesa 중 디폴트로 지정하는 방법? (페도라 질문, 양해바랍니다

우선 페도라에 해당되는 질문이라 이점 양해해 주시기 바랍니다.

이번에 페도라 22에서 xorg 패키지 중 일부 드라이버가 업데이트 되어
libglx.so 파일의 링크가 해제되어 그래픽 모듈 로딩시 에러가 발생하는 일이 있었습니다.

페도라는 왜인지 모르겠으나 nvidia 드라이버를 rpmfusion에서 설치를 하더라도
libGL.so와 libEGL.so 파일의 심볼릭 링크가 생성되지 않아 src 패키지에서 링크를 생성하도록 spec 파일을 수정하여
재빌드하여 사용하거나 수동으로 링크를 생성, 귀찮으면 메뉴얼 설치를 하곤 합니다.

문제는 mesa 패키지가(mesa-libgl 또는 mesa-libegl) 업데이트 되거나 하면
생성된 링크가 mesa 패키지 것으로 변경되거나 또는 오픈소스 드라이버가 업데이트 되면
부팅 후 그놈 로딩시 oopsie 화면이 나오는 경우가 꽤 많이 발생합니다.

그래서 문의 드리지만 위의 opengl 라이브러리를 nvidia 것으로 디폴트로 지정하는 방법이 없을까요?

우분투에서 힌트를 얻을 수도 있겠다 싶었으나 흉내를 내봐도 별무 소용입니다.

페도라도 우분투 처럼 opengl 라이브러를 고정하여 사용할 수 없을까요?

뭔가 ld.so.conf.d를 활용하면 될 것 같은 데 말이지요…^^

아! 참고로 repo 파일에서 exclude 하는 방법은 gnome-shell 패키지를 재빌드할 때 mesa 패키지가 필요하므로 제외해야 할 것 같습니다.

일단은 우분투에서의 nvidia 설치 과정과 페도라의 설치 과정을 분석하여 방법을 찾은 것 같습니다.

opengl 라이브러리는 상당히 많은 프로그램에서 컴파일시 필요로 하는 라이브러리이므로 저는 때로는 mesa가 때로는 nvidia의 라이브러리리가 교차적으로 필요하여 심볼릭 링크를 상대적으로 걸었다 링크를 해제했다 하는 과정을 되풀이 하였습니다.

위에서 처럼 하면 한번 셋팅한 결과가 업데이트나 재설치에 의해 오작동을 할수 있습니다. 그래서 뭔가 추가적인 초지 없이 이과정을 쉽게 처리할수 없을까를 고민하였습니다.

우분투를 잘 보면 ld.so.conf.d에서 x86_64-gnu-gl.conf 파일을 선택적으로 사용함으로서 링크할 필요가 없도록 되어 있습니다. 페도라는 그렇치 않고 ldconfig를 해줘도 mesa 패키지를 사용하더군요!

어째든 이리저리 살펴본 결과 다음과 같은 조치를 통해 선택적으로 사용할 수 있는 방법을 찾은 것 같습니다.

sudo vi /usr/lib64/mesa/ld.so.conf

/usr/lib64
/usr/lib

sudo vi /usr/lib64/nvidia/ld.so.conf

/usr/lib64/nvidia
/usr/lib/nvidia

sudo alternatives --install "/etc/ld.so.conf.d/x86_64-gl.conf" "x86_64-gl-conf" "/usr/lib64/nvidia/ld.so.conf" 500

sudo alternatives --install "/etc/ld.so.conf.d/x86_64-gl.conf" "x86_64-gl-conf" "/usr/lib64/mesa/ld.so.conf" 500

sudo alternatives --config x86_64-gl-conf

2 개의 프로그램이 'x86_64-gl-conf’를 제공합니다.

선택 명령

*+ 1 /usr/lib64/nvidia/ld.so.conf
2 /usr/lib64/mesa/ld.so.conf

현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오:

위에서와 같이 1번을 선택하고 마지막으로 sudo ldconfig 명령을 실행 합니다.

이렇게 하면 nvidia와 mesa 패키지를 선택적으로 활용하실 수 있으며 프로그래밍 과정에서 따로 옵션을 활용하여 처리할 필요도 없더군요! 물론 업데이트 과정에서 오작동도 없더군요!

따로 그래픽 드라이버를 메뉴얼로 설치하시면 위의 과정은 무시해도 됩니다. mesa를 물리치고 자신의 라이브러리만 등록하므로 따로 처리하실 필요가 없습니다.

그러나 rpmfusion을 통해 드라이버를 설치하신 경우 위의 과정을 수행하는 것이 필요하지 않을까 합니다.

물론 적절한 수행 결과를 확인하시려면 재부팅 과정이 수반되어야 할 것 입니다.

우분투는 드라이버 설치시 이미 gl-conf와 egl-conf를 선택적으로 활용할 수 있도록 되어 있어
선택 후 ldconfig 명령어를 실행하면 어제든 변경이 가능하도록 되어 있습니다.

그런데 많은 분들이 이를 모르시는 것 같습니다.
참고 하십시오.