在将我的访客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); \ ^
有关此问题的解决方法吗?
谢谢
解决方法
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行(再次搜索“d_alias”):
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0) struct dentry *dentry = list_entry(pos,struct dentry,d_alias); #else struct dentry *dentry = list_entry(pos,d_u.d_alias); #endif
警告:在内核版本上不确定,但我已经把它放在那里3,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这个工作正常.
因此,如果你降级内核,上面的hack将无法正常工作.
然后你需要再次打包tar档案(只需将旧档案移开:
# mv vmhgfs.tar vmhgfs.tar.orig
并再次打包目录:
# tar cvf vmhgfs.tar vmhgfs-only
)
希望能帮助到你.