昨天晚上又折騰了一遍Ubuntu 7.10,好不容易安裝好系統,在安裝VMWARE workstation 6.0時卻出現下面錯誤:
make: Entering directory `/tmp/vmware-config0/vmnet-only'
make -C /lib/modules/2.6.22-6-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.22-6-generic'
CC [M] /tmp/vmware-config0/vmnet-only/driver.o
CC [M] /tmp/vmware-config0/vmnet-only/hub.o
CC [M] /tmp/vmware-config0/vmnet-only/userif.o
/tmp/vmware-config0/vmnet-only/userif.c: 在函數 ‘VNetCopyDatagramToUser’ 中:
/tmp/vmware-config0/vmnet-only/userif.c:630: 錯誤: ‘const struct sk_buff’ 沒有名為 ‘h’ 的成員
/tmp/vmware-config0/vmnet-only/userif.c:630: 錯誤: ‘const struct sk_buff’ 沒有名為 ‘nh’ 的成員
/tmp/vmware-config0/vmnet-only/userif.c:636: 錯誤: ‘const struct sk_buff’ 沒有名為 ‘h’ 的成員
make[2]: *** [/tmp/vmware-config0/vmnet-only/userif.o] 錯誤 1
make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] 錯誤 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.22-6-generic'
make: *** [vmnet.ko] 錯誤 2
make: Leaving directory `/tmp/vmware-config0/vmnet-only'
Unable to build the vmnet module.
哎,又是一個和內核編碼規范不符合的BUG,還好已經有人修復了這個問題,詳見這裡的討論。
具體的修復方法如下:
cd /tmp
wget http://labs.eshangrao.com/files/vmnet.tar
cd /usr/lib/vmware/modules/source
sudo mv vmnet.tar vmnet.tar.old
cp /tmp/vmnet.tar ./
然後使用如下命令按提示重新編譯Vmware模塊就可以了:
sudo vmware-config.pl