我正在尝试在 LFS 系统(内核 3.16.2)中安装最新的 VMware 工具。
首先,我编译内核时启用了所有 vmware 组件,这样就只剩下vmhgf
s 由 VMware 工具管理。安装成功,但启动时vmhgfs
和组件报告失败。vmci
由于vmci
之前加载过vmhgfs
,我决定先修复它。我从内核中删除了vmci
和vsock
,然后让 VMware 工具来处理它。在对代码进行一小段修补vsock
(sk_data_ready
问题)后,我设法在此配置中安装了工具。现在vmci
加载成功,但vsock
加载失败。
阅读系统日志我发现了这一点:
Jan 18 04:34:46 titov-lfs vmusr[3345]: [ warning] [vmusr] SOCKET failed to create socket, error 97: Adress family not supported by protocol
Jan 18 04:34:46 titov-lfs vmusr[3345]: [ warning] [vmusr] SimpleSock: Couldn't get VMCI socket family info.
尝试挂载共享文件夹时我收到此信息:
root [ ~ ]# mount -t vmhgfs .host:/ /mnt/hgfs
Error: cannot mount filesystem: No such device
我已经启用了 VMware 工具日志记录,但这些日志没有显示任何有趣的内容。
我现在陷入困境。有什么关于如何调试和修复这个问题的想法吗?可能是我遗漏了内核中的一些重要内容?
更新:
我发现
modprobe vsock
modprobe vmhgfs
mount -t vmhgfs .host:/ /mnt/hgfs
运行正常,所以问题出在引导脚本的某个地方。
答案1
最后,我终于解决了这个问题。
我找到了在调试模式下运行 VMware tools init 脚本的方法。为此,需要添加
VMWARE_DEBUG="yes"
在剧本的开头。
之后问题就变得明显了。脚本正在调用/sbin/lsmod
,但 LFS 安装lsmod
在 中/bin
。符号链接解决了这个问题。