本文參考了一篇網上的文章:vmware在Linux上安裝時關於內核頭文件
事情起因於主板壞掉,於是換了一塊,沒有重新編譯內核(2.6.15),發現也是可以用的。不過機器裡有新的2.6.20,於是順便就想重新編譯一下,這樣對機器的性能也能更好。(前面關於網卡interface name的問題也是由於換主板而引起的)
用了新內核之後(用的還是原來的內核配置文件),發現vmware不能用了,於是要重新安裝它。安裝過程中出錯,
The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match your running kernel (version 2.6.20-gentoo-r8). Even if the module were to compile successfully, it would not load into the running kernel.
What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]
依照那篇文章中的方法修改了/usr/src/linux/include/linux/version.h,添加了一行
#define UTS_RELEASE "2.6.20-gentoo-r8"
之後安裝通過,不過要patch的時候又出了問題,我以前用的patch一直是vmware-any-any-update94,不過安裝過程出錯
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] 錯誤 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] 錯誤 2
make[1]: Leaving directory `/usr/src/kernels/2.6.15-1.2054_FC5-i686'
make: *** [vmmon.ko] 錯誤 2
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
Unable to build the vmmon module.
猜測因為內核版本升高此 patch不再適用,於是上網搜索,發現主流的patch為vmware-any-any-update109,下載,安裝,編譯通過。vmware又可以使用了。