小弟剛升級kernel至2.4.19-k7(是debian包裝好的,並不是source,並已安裝image及header),按例要重新編譯nvidia-kernel。不過,最後出現錯誤。
depmod:xxx Unresolved symbols in /lib/modules/2.4.19-k7/kernel/drivers/video/nvidia.o
從nvdia的文件中,初步了解出現這種情況是因為用作編譯kernel modules 的 headers 不吻合所引起。(If you receive errors about unresolved symbols,then the kernel module has most likely been built using your headers files for a different kernel version than what you are running.)這亦解釋了為什麼我在從2.4.18-bf24轉為2.4.18-k7的時候沒有此問題。
nvidia-kernel的文件亦有附上解決的方法:
You can control what kernel headers files are used by building the nvdia kernel module from the Nvidia_kernel tar file with
"make install SYSINCLUDE=/path/to/kernel/headers"
這個所謂的/path/to/kernel/headers是否就是我安裝kernel header的位置?
(Debian是裝在/usr/src中)
不過,我在編譯前已按照Nvidia-driver for Debian-mini-howto中所指示.
export KVERS=/usr/src/kernel-header-2.4.19-k7(憑記憶寫出)
除了make install SYSINCLUDE,有無其他方法?(小弟對compile很不熟悉)
小弟的debian已千瘡百孔。