升级到linux-image-3.13.0-46后安装vmware-tools 9.9时出错

时间:2015-02-18 08:37:53

标签: linux ubuntu-14.04 vmware-player vmware-tools

将我的访客ubuntu升级到linux-image-3.13.0-46后,我收到错误安装vmware-tools,我不能再共享文件夹。

我在Windows 8和Ubuntu 14.04 LTS主机上都运行了vmware播放器7.0.0 build-2305329,在安装过程中我发现了以下错误:

                 from /tmp/modconfig-NVbKuD/vmhgfs-only/inode.c:29:
include/linux/kernel.h:793:27: error: ‘struct dentry’ has no member named ‘d_alias’
  const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                           ^

是否有关于此问题的解决方法?

由于

4 个答案:

答案 0 :(得分:11)

vmware工具-DISTRIB-9.9.2-2496486:

我已经通过转到vmhgfs.tar所在的目录(在我的情况下为/ usr / lib / vmware-tools / modules / source)修复了问题,解压缩tar并手动编辑inode.c。

在第1925行(只需搜索" d_alias"找到确切的行),您需要添加一个if。最终看起来像那样:

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
                           d_alias) {
#else
                           d_u.d_alias) {
#endif

然后再次围绕1983年线(再次搜索&#34; d_alias&#34;):

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
         struct dentry *dentry = list_entry(pos, struct dentry, d_alias);
#else
         struct dentry *dentry = list_entry(pos, struct dentry, d_u.d_alias);
#endif

警告:在内核版本上不确定,但我已经把它放在那里3,13,0虽然我的Ubuntu报告:

# uname -a
Linux md-ubuntu 3.13.0-46-generic #76-Ubuntu SMP Thu Feb 26 18:52:13 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

这对3.13.0-45很好。

因此,如果你降级内核,上面的攻击可能无法正常工作。

然后你需要再次打包tar档案(只需将旧档案移开:

# mv vmhgfs.tar vmhgfs.tar.orig

再次打包目录:

# tar cvf vmhgfs.tar vmhgfs-only

希望它有所帮助。

答案 1 :(得分:1)

This补丁应解决问题。

编辑 Working Gist patch

使用说明:

cd vmware-tools-distrib/lib/modules/source/
tar -xvf vmhgfs.tar
cd vmhgfs-only
patch inode.c < inode.patch
cd ..
mv vmhgfs.tar vmhgfs.tar.orig
tar cvf vmhgfs.tar vmhgfs-only
cd vmware-tools-distrib
sudo ./vmware-install.pl

答案 2 :(得分:0)

对于VMWare Fusion,该错误修复于7.1.2发布[1]。 vmware-tools的版本是9.9.3。

[1] VMware Fusion 7.1.2发行说明https://www.vmware.com/support/fusion/doc/fusion-712-release-notes.html

答案 3 :(得分:0)

VMware为Ubuntu支持并推荐使用open-vm-tools。因此,如果您真的遇到VMware Tools问题,可以轻松安装open-vm-tools。 希望能帮助到你。