mar*_*com 8 linux vmware-tools vmware-player ubuntu-14.04
将我的访客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); \
^
Run Code Online (Sandbox Code Playgroud)
有关此问题的解决方法吗?
谢谢
Mir*_*ian 11
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
Run Code Online (Sandbox Code Playgroud)
然后再次围绕1983行(再次搜索"d_alias"):
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
struct dentry *dentry = list_entry(pos, struct dentry, d_alias);
#else
struct dentry *dentry = list_entry(pos, struct dentry, d_u.d_alias);
#endif
Run Code Online (Sandbox Code Playgroud)
警告:在内核版本上不确定,但我已经把它放在那里3,13,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
Run Code Online (Sandbox Code Playgroud)
这在3.13.0-45正常运行.
所以可能如果你降级内核,上面的hack将无法正常工作.
然后你需要再次打包tar档案(只需将旧档案移开:
# mv vmhgfs.tar vmhgfs.tar.orig
Run Code Online (Sandbox Code Playgroud)
并再次打包目录:
# tar cvf vmhgfs.tar vmhgfs-only
Run Code Online (Sandbox Code Playgroud)
)
希望能帮助到你.
这个补丁应该可以解决这个问题。
编辑 工作要点补丁
使用说明:
cd vmware-tools-distrib/lib/modules/source/
tar -xvf vmhgfs.tar
cd vmhgfs-only
patch inode.c < inode.patch
cd ..
mv vmhgfs.tar vmhgfs.tar.orig
tar cvf vmhgfs.tar vmhgfs-only
cd vmware-tools-distrib
sudo ./vmware-install.pl
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4256 次 |
| 最近记录: |