ERROR : Unable to find the kernel source tree for the currently running kernel...

Posted by 겨울에
2011. 2. 7. 00:04 scrap/ Error
출처 : http://cafe.naver.com/linuxcare.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=17537

Linux nvidia 그래픽 드라이버 설치 중 error.

ERROR: Unable to find the kernel source tree for the currently running kernel. 
       Please make sure you have installed the kernel source files for your
       kernel and that they are properly configured; on Red Hat Linux systems,
       for example, be sure you have the 'kernel-source' RPM installed.  If you
       know the correct kernel source files are installed, you may specify the
       kernel source path with the '--kernel-source-path' command line option.
ERROR: Installation has failed.

자 위 에러는 간단합니다.페도라 7 버젼에서 nvidia 홈페이지에서 받은

http://us.download.nvidia.com/XFree86/Linux-x86_64/100.14.06/NVIDIA-Linux-x86_64-100.14.06-pkg2.run

을 실행하다 커널소스를 못찾아서 발생하는 거죠.

========================================
이게 님의 하드웨어 스펙인가요?
 cpu 콘로 
 NVIDIA Quadro FX 560
=============================================
먼저 가장 쉬운 방법을 먼저 봅시다.

페도라사는  nvidia 웹사이트에서 드라이버를 직접 받아 컴파일하는 것을 
권장하지 않고 있습니다.:)

그럼 어쩌라고..ㅋ

한마디로 yum을 쓰라는거죠.
rpm으로 미리  만들어져 있는 드라이버 패키지를 그냥 갖다 설치하라는겁니다.

어디서?

Livna 라는 곳에서.ㅋ

먼저 yum을 위한 Repository를 설정해줍니다.
 sudo rpm -ivh http://rpm.livna.org/livna-release-7.rpm
 sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna

그런 다음 yum으로 방금 설정해 놓은 Livna 저장소에서 nvidia드라이버를
걍 설치하면 끝..

 sudo yum install kmod-nvidia

이때 커널 업데이트가 동시에 되었다면 재부팅이 필요할수도 있지만
그렇지 않으면 그냥 그놈이나 kde에서 로그아웃하세요.
그러면 자동으로 nvidia드라이버가 로딩되서 nvidia 로고가 보일겁니다.

난 인터넷 연결이 안돼.어쩌라고 
하시는 분들 계시죠.ㅋㅋ

일단 인터넷 되는데 (친구집이나 피씨방)가셔서
http://rpm.livna.org/livna-release-7.rpm
파일을 다운받으세요.
또  http://rpm.livna.org/fedora/7/ 로 가보면
여러 디렉토리가 보일텐데 그 중에 자신의 하드웨어(i386,ppc,x86_64)에 맞는 디렉토리로 갑니다.콘로라면 x86_64로 갑니다. 
거기서 딱 파일 세개(xorg 드라이버,nvidia 커널 모듈,livna 그래픽 설정툴 )를 더 다운 받습니다.

첫번째로 아래 파일중에서 xorg 드라이버를 고릅니다.
xorg-x11-drv-nvidia-100.14.09-2.lvn7.x86_64.rpm
xorg-x11-drv-nvidia-100.14.11-1.lvn7.x86_64.rpm
xorg-x11-drv-nvidia-96xx-1.0.9639-1.lvn7.x86_64.rpm
xorg-x11-drv-nvidia-96xx-1.0.9639-2.lvn7.x86_64.rpm

예컨대 x86_64 환경에서 지금 가장 최신 xorg 드라이버는 이거네요
xorg-x11-drv-nvidia-100.14.11-1.lvn7.x86_64.rpm
그렇지만 좀있다 볼 자신의 커널버젼도 고려해서 선택해야합니다.
자신의  커널버젼이 최신드라이버가 없다면 
이보다 한단계 아래 xorg 드라이버 xorg-x11-drv-nvidia-100.14.09-2.lvn7.x86_64.rpm 를
선택해야하죠.그러기 싫으면 커널업데이트를 해야 xorg-x11-drv-nvidia-100.14.11-1.lvn7.x86_64.rpm를 설치할수 있는거죠.

두번째로 nvidia 커널 모듈을 고르기 위해선 자신의 커널버젼을 정확히 알아야 합니다.
 uname -rm
이라고 치면 나옵니다.


kmod-nvidia-100.14.09-1.2.6.21_1.3194.fc7.x86_64.rpm
kmod-nvidia-100.14.11-1.2.6.22.1_41.fc7.x86_64.rpm
kmod-nvidia-100.14.11-1.2.6.22.4_65.fc7.x86_64.rpm

예컨대 자신의 커널버젼이 2.6.21-1.3194.fc7  이라고 나오면
kmod-nvidia-100.14.09-1.2.6.21_1.3194.fc7.x86_64.rpm를 다운받습니다.

그리고 앞서도 말했지만 한단계 아래 xorg 드라이버 xorg-x11-drv-nvidia-100.14.09-2.lvn7.x86_64.rpm를 같이 받아야 하는거구요.

가장 최신 드라이버 xorg-x11-drv-nvidia-100.14.11-1.lvn7.x86_64.rpm
를 쓰고 싶은분은 자신의 커널을 2.6.22.1_41로 업데이트해야합니다.업데이트까지 고려해서
뭐 같이 다운받아도 좋구요.


마지막 파일은 livna 그래픽 설정툴 ..
livna-config-display-0.0.17-1.lvn7.noarch.rpm
이게 가장 최신이네요.

자 모두 몇개 다운받았죠?
커널업데이트를 지금 안할 작정이면 파일 네갭니다.

livna-release-7.rpm
kmod-nvidia-100.14.09-1.2.6.21_1.3194.fc7.x86_64.rpm
xorg-x11-drv-nvidia-100.14.09-2.lvn7.x86_64.rpm
livna-config-display-0.0.17-1.lvn7.noarch.rpm

자 이거 ㅋㅋ 어떻게든 집으로 옮겨 옵니다.
옮겨왔다고 가정하고.
 맨먼저 

 sudo rpm -ivh livna-release-7.rpm
 sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna

를 해서 인터넷 연결이 된뒤에 yum저장소로 사용합니다.

이제 본격 설치..

sudo rpm -ivh kmod-nvidia-100.14.09-1.2.6.21_1.3194.fc7.x86_64.rpm \
xorg-x11-drv-nvidia-100.14.09-2.lvn7.x86_64.rpm \
livna-config-display-0.0.17-1.lvn7.noarch.rpm

뭐 완전히 페도라 7을 새로 설치하는 경우에는 필요없겠지만
혹시라도 이들 이름과  비슷한 이름을 가진 파일을 전에 설치한적이 있다면
rpm -e 로 그것들을 먼저 삭제한후 설치해야 합니다.

 
==============================================
위의 쉬운 방법응 외면하고 끝내 
sh NVIDIA-Linux-x86_64-100.14.06-pkg2.run 을 하고 싶은분을 위해
자 이제 처음의 에러 메시지로 돌아가 봅시다.

사실 에러 메시지는 커널소스를 원하지만 커널 드라이버가 커널소스에서
컴파일에 쓰는것은 커널 헤더 뿐입니다.그래서 커널 드라이버(그래픽 드라이버든 뭐든)
가 요구하는 커널 풀소스가 아닌 커널해더 등등의 파일만 모아놓은
kernel-devel RPM 패키지만 설치해도 됩니다.

먼저 자신의 커널버젼을 확인한후 정확히 일치하는 버젼의 kernel-devel 페키지를
설치합니다.

 uname -rm

2.6.21-1.3194.fc7 로 나왔다면

kernel-devel-2.6.21-1.3194.fc7.x86_64.rpm 을 설치해야하는거죠.
yum이 설치돼있고 인터넷이 되면 걍 간단합니다.

 sudo yum install kernel-devel

한방에 모든 사정 다 고려해서 설치해줍니다.

이제 다시 
sh NVIDIA-Linux-x86_64-100.14.06-pkg2.run 해보면
커널 소스관련 에러는 안뜰겁니다.