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

이것은 나에게 효과적입니다.

관련 정보