昨天晚上又折腾了一遍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