安装 VMware Tools 时出现“错误:函数‘vfs_readlink’的隐式声明”

安装 VMware Tools 时出现“错误:函数‘vfs_readlink’的隐式声明”

一段时间以来,我一直在尝试在我的 OSX Mavericks 主机上为我的 Fedora 20 VMware Fusion 6.0.4 Box 重新安装 vmware 工具。 Fedora 更新后,我需要从主机访问 Drop Box 并轻松调整窗口大小。

但现在我不断收到这些错误,并且在安装完所有内容后重试似乎不起作用。请参阅此处的最后部分,其中包含导致此失败的警告和错误:

make
gcc
kernel headers of the running kernel


Searching for GCC...
Detected GCC binary at "/bin/gcc".
The path "/bin/gcc" appears to be a valid path to the gcc binary.
Would you like to change it? [no] 

Searching for a valid kernel header path...
Detected the kernel headers at 
"/lib/modules/3.15.5-200.fc20.i686/build/include".
The path "/lib/modules/3.15.5-200.fc20.i686/build/include" appears to be a 
valid path to the 3.15.5-200.fc20.i686 kernel headers.
Would you like to change it? [no] 

Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-F7dG4u/vmhgfs-only'
/bin/make -C /lib/modules/3.15.5-200.fc20.i686/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/3.15.5-200.fc20.i686'
  CC [M]  /tmp/modconfig-F7dG4u/vmhgfs-only/message.o
In file included from /tmp/modconfig-F7dG4u/vmhgfs-only/backdoor.h:30:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/message.c:54:
/tmp/modconfig-F7dG4u/vmhgfs-only/./shared/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
    #define DEPRECATED(_fix) do {} while (0)
 ^
In file included from include/linux/kernel.h:13:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/./shared/kernelStubs.h:36,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/message.c:45:
include/linux/printk.h:92:0: note: this is the location of the previous definition
 #define DEPRECATED "[Deprecated]: "
 ^
  CC [M]  /tmp/modconfig-F7dG4u/vmhgfs-only/dir.o
In file included from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfs.h:40:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsProto.h:37,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/dir.c:37:
/tmp/modconfig-F7dG4u/vmhgfs-only/./shared/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
    #define DEPRECATED(_fix) do {} while (0)
 ^
In file included from include/linux/kernel.h:13:0,
                 from /usr/src/kernels/3.15.5-200.fc20.i686/arch/x86/include/asm/percpu.h:44,
                 from /usr/src/kernels/3.15.5-200.fc20.i686/arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from include/linux/stat.h:18,
                 from include/linux/module.h:10,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/dir.c:29:
include/linux/printk.h:92:0: note: this is the location of the previous definition
 #define DEPRECATED "[Deprecated]: "
 ^
  CC [M]  /tmp/modconfig-F7dG4u/vmhgfs-only/rpcout.o
In file included from /tmp/modconfig-F7dG4u/vmhgfs-only/./shared/vmware.h:39:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/rpcout.c:43:
/tmp/modconfig-F7dG4u/vmhgfs-only/./shared/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
    #define DEPRECATED(_fix) do {} while (0)
 ^
In file included from include/linux/kernel.h:13:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/./shared/kernelStubs.h:36,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/rpcout.c:33:
include/linux/printk.h:92:0: note: this is the location of the previous definition
 #define DEPRECATED "[Deprecated]: "
 ^
  CC [M]  /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsUtil.o
In file included from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfs.h:40:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsUtil.h:55,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsUtil.c:33:
/tmp/modconfig-F7dG4u/vmhgfs-only/./shared/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
    #define DEPRECATED(_fix) do {} while (0)
 ^
In file included from include/linux/kernel.h:13:0,
                 from /usr/src/kernels/3.15.5-200.fc20.i686/arch/x86/include/asm/percpu.h:44,
                 from /usr/src/kernels/3.15.5-200.fc20.i686/arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:35,
                 from include/linux/time.h:5,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsUtil.h:32,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsUtil.c:33:
include/linux/printk.h:92:0: note: this is the location of the previous definition
 #define DEPRECATED "[Deprecated]: "
 ^
  CC [M]  /tmp/modconfig-F7dG4u/vmhgfs-only/cpName.o
  CC [M]  /tmp/modconfig-F7dG4u/vmhgfs-only/link.o
In file included from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfs.h:40:0,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/hgfsProto.h:37,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/module.h:39,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/link.c:32:
/tmp/modconfig-F7dG4u/vmhgfs-only/./shared/vm_assert.h:259:0: warning: "DEPRECATED" redefined [enabled by default]
    #define DEPRECATED(_fix) do {} while (0)
 ^
In file included from include/linux/kernel.h:13:0,
                 from /usr/src/kernels/3.15.5-200.fc20.i686/arch/x86/include/asm/percpu.h:44,
                 from /usr/src/kernels/3.15.5-200.fc20.i686/arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/wait.h:8,
                 from include/linux/fs.h:6,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/./shared/compat_fs.h:22,
                 from /tmp/modconfig-F7dG4u/vmhgfs-only/link.c:29:
include/linux/printk.h:92:0: note: this is the location of the previous definition
 #define DEPRECATED "[Deprecated]: "
 ^
/tmp/modconfig-F7dG4u/vmhgfs-only/link.c: In function ‘HgfsReadlink’:
/tmp/modconfig-F7dG4u/vmhgfs-only/link.c:186:10: error: implicit declaration of function ‘vfs_readlink’ [-Werror=implicit-function-declaration]
          error = vfs_readlink(dentry, buffer, buflen, fileName);
          ^
cc1: some warnings being treated as errors
make[2]: *** [/tmp/modconfig-F7dG4u/vmhgfs-only/link.o] Error 1
make[1]: *** [_module_/tmp/modconfig-F7dG4u/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.15.5-200.fc20.i686'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-F7dG4u/vmhgfs-only'

The filesystem driver (vmhgfs module) is used only for the shared folder 
feature. The rest of the software provided by VMware Tools is designed to work 
independently of this feature.

If you wish to have the shared folders feature, you can install the driver by 
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine. 
These packages are available on your distribution's installation CD.

我可以完成设置,但它并没有真正正确安装东西 - 未安装共享文件夹(文件夹显示没有内容) - 而且我还收到了最后的警告

Found VMware Tools CDROM mounted at /run/media/jfrumau/VMware Tools. Ejecting 
device /dev/sr0 ...
/sbin/restorecon:  Warning no default label for /tmp/vmware-block-restore0/tmp_file

关于这个问题的任何想法 - vmhgfs 模块似乎相关 - 所以共享文件夹再次安装并且一切正常?

答案1

除了列出的补丁之外这里你需要link.c从打补丁vmhgfs.tar

184a185
> #if LINUX_VERSION_CODE <= KERNEL_VERSION(3, 14, 99)
187a189,194
> #else
>          LOG(6, (KERN_DEBUG "VMware hgfs: HgfsReadlink: calling "
>                  "readlink_copy\n"));
>          error = readlink_copy(buffer, buflen, fileName);
> #endif
>       }

这对我有用。

相关内容