NVIDIAドライバのカーネルモジュールがバージョンによってLinux 2.6.27に対してビルドできない問題とその対処
GeForce 6以上は177系ドライバで問題ないが、それより古いGPU向けのドライバでは問題
NVIDIAドライバのバージョン177.80の時点ではLinux 2.6.27でビルドが通るが、古いGPU向けの- 173.14.xx: GeForce FX(第5世代)向け*1
- 96.43.xx: GeForce 4系もしくはそれよりも前のGPU向け
のバージョンでは、Linux 2.6.27ではビルドが通らない問題がある。
下は173.14.12で試したときのエラー。
In file included from /var/tmp/portage/x11-drivers/nvidia-drivers-173.14.12/work/NVIDIA-Linux-x86_64-173.14.12-pkg2/usr/src/nv/nv.c:14: /var/tmp/portage/x11-drivers/nvidia-drivers-173.14.12/work/NVIDIA-Linux-x86_64-173.14.12-pkg2/usr/src/nv/nv-linux.h:107:27: error: asm/semaphore.h: No such file or directory make[3]: *** [/var/tmp/portage/x11-drivers/nvidia-drivers-173.14.12/work/NVIDIA-Linux-x86_64-173.14.12-pkg2/usr/src/nv/nv.o] Error 1 make[2]: *** [_module_/var/tmp/portage/x11-drivers/nvidia-drivers-173.14.12/work/NVIDIA-Linux-x86_64-173.14.12-pkg2/usr/src/nv] Error 2 NVIDIA: left KBUILD. nvidia.ko failed to build! make[1]: *** [module] Error 1 make: *** [module] Error 2
パッチへのリンク
bugs.gentoo.org/show_bug.cgi?id=242476に
- 96.43.07
- 173.14.12
の2つのバージョンに対するパッチへのリンクがある。173.14.12で試したところ、ビルドが通ったことを確認。Gentooのebuildでは
--- /usr/portage/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.12.ebuild +++ [ローカルOverlay]/x11-drivers/nvidia-drivers/nvidia-drivers-173.14.12.ebuild @@ -221,6 +221,9 @@ # If greater than 2.6.5 use M= instead of SUBDIR= convert_to_m "${NV_SRC}"/Makefile.kbuild + + # for Linux 2.6.27 + epatch "${FILESDIR}"/NVIDIA_173.14.12_2.6.27.patch fi }
のようにパッチ適用処理を追加し、パッチをローカルOverlayのx11-drivers/nvidia-drivers/files/へ入れてダイジェスト作成後、インストールをすることで適用できた。
関連:Linux 2.6.28系向けのパッチについて
(2008/12/15)Linux 2.6.28系でもビルドが通らないようだが、Mandriva向けにパッチが存在し、既にパッケージに使用されている。このパッチ(nvidia-current-linux-2.6.28.patch)はbugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-177/+bug/303107
にも転載されているため、他のディストリで問題が起きている場合にも使えそう。
使用したバージョン: