[리눅스] debian, nvidia 설치. 재컴파일이 불필요한 이유.

2023. 4. 6. 00:59리눅스 실제 사용 팁

작성일 : 2012. 1. 14. 14:16


debian 에 nVidia 가속 드라이버를 설치한 후에도 (관리자의 부주의로 인해) 엑스가 - 아니, GLX 모듈이 필수적으로 쓰이는 GNOME3 가 - 똑바로 안떠서 불편했던 적이 한, 두 번이 아니었다. 이런 상황이 발생 할 때마다 내가 애착을 갖고 있는 debian 이 실로 미웠다.

 

엊그제까지 멀쩡하던 GNOME 3 에서, 오늘은 상단의 패널이 화면의 1/3 을 차지하고 있었다. 브라우저를 실행하면 2/3 되는 지점에서 뜬 데다 창이 너무 커서 크기조절 버튼이 노트북 화면 경계를 벗어나 제어하기 힘든 상태가 발생하더라.

 

 

한 달 전까지만 해도 이런 상황이 발생하면 입술을 깨문 채 묵묵히 커널 컴파일 후, nVidia-installer 를 재실행하기에 이르렀다. 더구나 커널이란 놈도 웃긴 게 분명히 처음 컴파일 할 때는 잘 되었는데, 나중에 컴파일하려고 하면 그 자잘한.... 컴파일 오류가 떠서 노트북을 밖으로 확 꺽어 버리고 싶은 충동이 일어나게 했다.

 

평일 저녁 퇴근 후에 이런 잡일을 시도하면 취침시간을 넘어가는게 일쑤였다. 참으로 괘씸한 환경이었다. 커널 소스가 (@%&@-떻게) 꼬이는 현상의 원인은 아직 못캐냈지만 적어도 nvidia 를 다시 설치해야 하는 상황은 이제 끝이다. 이 상황의 원인은 xserver-xorg-core 패키지 업그레이드 때문이다.

 

/usr/lib/xorg/modules/extensions/ 에는 libglx.so 가 있다. ('셸 기반 nvidia-installer' 로) nVidia 드라이버를 설치하면 저 위치에 libglx.so.$(모듈버전) 이란 이름으로 GLX 모듈이 복사되고 이것에 대한 symlink 로 libglx.so 가 생긴다.

 

즉, /etc/X11/xorg.conf 에서 다음과 같이 지정되어 있으면

/usr/lib/xorg/modules/extensions/libglx.so 가 가리키는 'libglx.so.$(모듈버전)' 를 찾도록 되어 있는 것이다.

 

그런데 apt 로 데비안 패키지 업그레이드를 실행했다가 xserver-xorg-core 패키지도 업그레이드 대상에 포함된 경우, 저 symlink 를 Xorg 본연의 libglx.so 바이너리로 덮어쓰게 되어 화면이 깨지는 불상사가 일어나게 되는 것이었다.

 

 

xorg 의 땜빵(?) GLX 를 두 번 다시 쓸 일이 없다면 과감하게 삭제하고 nvidia GLX 에 대해 링크만 다시 걸어주면 된다.

다만, xserver-xorg-core 패키지 업그레이드 시 이 작업을 한 번 더 실행해주어야 한다. (dkms 가 있지만... ㅎ)