在Ubuntu Linux内核更新为3.13.0-46-generic之后,vmhgfs模块不能为VMware Tools 9.9.0(Fusion7.1)编译吗?


12

在Ubuntu Linux内核更新到3.13.0-46-generic(2015年2月)(共享文件夹功能)后,vmhgfs模块无法针对VMware Tools 9.9.0(Fusion7.1)和VMware Tools 9.9.2(Fusion7.1.1 Build 2496486)进行编译工具在MacOSX Yosemite(主机)上的Ubuntu 14.04 LTS(来宾)中无法运行? 


您好社区和VMware开发团队,


2015年2月13日,我们丢失了Ubuntu和MacOSX之间的共享文件夹功能。可能是将Linux内核更新为3.13.0-46-generic导致了此问题(尽管Linux内核更新不会损坏Ubuntu中VMware Tools的现有已编译vmhgfs模块!)。我们将VMware Fusion 7.0.0与Ubuntu 14.04 LTS和MacOSX一起使用了一年,而旧的Linux内核没有问题。我们更新了带有VMware Tools 9.9.2的VMware Fusion 7.1.0和Fusion7.1.1 Build 2496486的功能,以期解决最初出现的共享文件夹功能问题。7.0.0。

我们可以假设已编译的vmhgfs模块与新的Linux内核3.13.0-46-generic之间不兼容。

我们尝试重新安装VMware Tools 9.9.0及更高版本。9.9.2,但无法编译vmhgfs模块,并且共享文件夹功能不起作用。所有其他VMware工具功能均正常运行。

在Ubuntu 14.04 LTS中,终端命令lsmod | grep“虚拟机”。没有列出vmhgfs模块

在vmhgfs模块编译期间,“ / vmhgfs-only /”和“ make []:”附近有几个“错误”:


这是我们为您提供的终端期刊之一: 


include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’ has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
                                  ^
include/linux/stddef.h:17:31: note: in expansion of macro ‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
                               ^
include/linux/kernel.h:794:29: note: in expansion of macro ‘offsetof’
  (type *)( (char *)__mptr - offsetof(type,member) );})
                             ^
include/linux/list.h:687:40: note: in expansion of macro ‘container_of’
#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                        ^
include/linux/list.h:698:15: note: in expansion of macro ‘hlist_entry’
     ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
               ^
include/linux/list.h:710:13: note: in expansion of macro ‘hlist_entry_safe’
       pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
             ^
/tmp/modconfig-h4Zwi0/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
       hlist_for_each_entry(dentry,
       ^
make[2]: *** [/tmp/modconfig-h4Zwi0/vmhgfs-only/inode.o] Error 1
make[1]: *** [_module_/tmp/modconfig-h4Zwi0/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-46-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-h4Zwi0/vmhgfs-only'

/ mnt / hgfs为空,但是例如为Mac的“文档”目录启用了文件夹共享。如果在终端中运行vmware-hgfsclient,则会获得共享文件夹列表,但/ mnt / hgfs为空。 


您能解决vmhgfs模块与新的Linux内核3.13.0-46-generic之间的不兼容问题吗?

最好的祝福,

托尼



嗨,欢迎来到askubuntu!我们想为您解决这个问题,但是,这个问题确实很难理解。请尝试格式化您的问题,使其更清晰,更结构化。格式帮助:askubuntu.com/help/formatting
Merlijn Sebrechts

您好社区,我们的成员“ DJ”已经回答了我的帖子。他在VMware Fusion中使用vmhgfs模块和共享文件夹功能时遇到了同样的问题,并假设vmhgfs模块与新的Linux Kernel 3.13.0-46-generic之间不兼容。“ DJ”还对兼容的Linux内核版本提出了建议。有没有人了解有关vmhgfs模块的最新兼容Linux内核版本?“ DJ”,您能再发布一次命令吗?我们可以使vmhgfs模块可以降级到最新的兼容Linux内核版本。最好的问候,托尼
Ecoplacehunter 2015年

VMware Fusion Pro在Mac OS X Yosemite上更新为7.1.1 Build 2496486,并尝试为Ubuntu重新安装Vmware工具VMwareTools-9.9.2-2496486无法解决vmhgfs模块问题。VMwareTools-9.9.2-2496486也与新的Linux内核3.13.0-46-generic不兼容
Ecoplacehunter 2015年

Answers:


13

可以手动修补工具。在vmhgfs.tar中,d_alias必须将inode.c 更改为d_u.d_alias,放回tar中,然后重新编译工具。

可以执行此操作的脚本(在Windows主机上的32位ubuntu 14.04和vmware工作站11.1上进行了测试):

#!/bin/sh -x
cd /usr/lib/vmware-tools/modules/source
tar xf vmhgfs.tar
grep -q d_u.d_alias vmhgfs-only/inode.c && echo "already patched" && exit 0
sed -i -e s/d_alias/d_u.d_alias/ vmhgfs-only/inode.c
cp -p vmhgfs.tar vmhgfs.tar.orig
tar cf vmhgfs.tar vmhgfs-only
vmware-config-tools.pl -d -m

注意:这使这些工具与较早的内核版本(即3.13.0-45)不兼容。


该解决方案适用于Windows 8.1主机和使用VMware Player 7.1.0 build-2496824的32位Ubuntu 14.04.2 LTS来宾。谢谢!
泰勒·约翰逊

HyväViljo !!! 最短,最干净,最简单的补丁修复相比,所有的哈克古怪的指令还是:google.fi/...
约尔丹Georgiev的

似乎是他们已在vmware-tools-9.9.3中修复了此问题
Didar_Uranov

我可以确认此补丁程序可在Ubuntu 14.04.2 LTS内核3.13.0-48-generic上正常运行,目标是VMWare Workstation 10.0.7附带的VMwareTools-9.6.5-2700074。
瑞安·M


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.