FreeBSD VMware Tools踩坑指南
闲着没事装了一下FreeBSD的虚拟机,在安装VMware Tools里踩了大坑,在网上几乎没有找到任何关于新版本如何解决这些问题的操作,这里就来记录一下应该怎么样正确安装。
系统配置
主系统 Windows 11 24H2 x86-64
软件 VMWare Workstation 17.6.1 build-24319023
FreeBSD 14.2-RELEASE
使用UEFI引导
注意,aarch64架构的FreeBSD系统缺少VMware的一些驱动,(具体为xf86-video-vmware xf86-input-vmmouse),所以如果在你的ARM架构的Mac上安装FreeBSD桌面环境可能会遇到鼠标动不了的情况。
桌面环境
FreeBSD文档对于桌面环境的安装十分详细,不过关于X11以及各个桌面环境分散在各个不同的地方,这里我就做一个整合,针对VMware场景使用KDE并使用sddm作为登录引导。
首先是需要添加一个除了root之外的用户,并且此用户应该属于video用户组,sddm默认似乎不允许root登录。在安装的时候就会提示你可以添加一个用户,此时讲用户添加至video组。如果已经完成了安装,那么通过以下方法添加用户
adduser
如果用户已经存在,那么通过以下命令将用户添加至video用户组
pw groupmod video -m <username>
添加至wheel用户组同理。
下面进行桌面环境的安装。
最简命令
pkg install xf86-video-vmware xorg sddm plasma5-plasma konsole
包含了一些常用软件的命令
pkg install xf86-video-vmware xorg sddm plasma5-plasma konsole vim firefox vscode cmake
在安装完成后,需要进行一些配置,通过命令
sysrc dbus_enable=YES
sysrc sddm_enable=YES
sysctl net.local.stream.recvspace=65536
sysctl net.local.stream.sendspace=65536
即可。
配置vmmouse
配置vmmouse可以让你在虚拟机和实体机中自由切换鼠标,参考FreeBSD中文社区的VMware中鼠标集成一节。
在安装完桌面环境之后,趁着X11还没有启动,立刻进行鼠标继承的配置。
pkg install xf86-input-vmmouse
sysrc moused_enable=YES
Xorg -configure
mv /root/xorg.conf.new /usr/local/share/X11/xorg.conf.d/xorg.conf
并修改/usr/local/share/X11/xorg.conf.d/xorg.conf
的以下段落
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "AutoAddDevices" "Off" # 添加此行到此处
EndSection
…………此处省略一部分…………
Section "InputDevice"
Identifier "Mouse0"
Driver "vmmouse" # 修改 mouse 为 vmmouse
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection
…………此处省略一部分…………
如果你此时已经启动了X11,那么最简单的方法,就是把sddm关闭自动启动
sysrc sddm_enable=NO
然后重启电脑。在完成上述配置后,重新执行sysrc sddm_enable=YES
即可。
虚拟机增强工具
注意,此章内容几乎均由我手操获得,在网上几乎找不到任何其他的解决方案
首先,大部分的文档会告诉你安装open-vm-tools
并设置vmware_guestd_enable=YES
即可,但至少在VMware Tools Version 12.5.0这个版本下,你连启动都没有办法正确启动。查看日志/var/log/vmware-vmsvc-root.log
可以得知,这个版本的open-vm-tools在安装时没有正确配置插件文件夹。其次,就算工具启动了,它也几乎没有任何作用,因为内核模块没有被正确安装。
因此,正确的安装VMware Tools的方法如下:
首先你需要修改pkg的仓库地址,修改/etc/pkg/FreeBSD.conf
FreeBSD: {
url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}
将里面的quarterly
改为latest
,因为在quarterly
仓库中没有vmware的内核模块(open-vm-kmod)
下一步,安装内核模块和工具
pkg install open-vm-kmod open-vm-tools
待安装完成后,你需要手动配置vmware-tools
的插件目录,否则vmware_guestd
无法启动
mkdir -p /usr/local/lib/open-vm-tools/plugins/vmsvc
mkdir -p /usr/local/lib/open-vm-tools/plugins/common
你还需要将刚刚安装的内核模块复制到vmware-tools
的模块驱动下
cp /boot/modules/vmblock.ko /usr/local/lib/vmware-tools/modules/drivers
cp /boot/modules/vmmemctl.ko /usr/local/lib/vmware-tools/modules/drivers
并编辑/boot/loader.conf
,添加一行
fusefs_load="YES"
使其开机自动加载内核模块fusefs
。
现在才能正常启动vmware-tools
,并启用它的复制以及屏幕缩放功能。下面执行命令
sysrc vmware_guest_vmblock_enable=YES
sysrc vmware_guest_vmhgfs_enable=YES
sysrc vmware_guest_vmmemctl_enable=YES
sysrc vmware_guest_vmxnet_enable=YES
sysrc vmware_guest_kmod_enable=YES
sysrc vmware_guestd_enable=YES
让vmware-tools
能够开机启动。