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
>       }

これは私にとって効果的です。

おすすめ記事