最近几天,我在Redmi Book Pro 14s
上安装了FreeBSD 14.1-RELEASE
,也算是体验了一把UNIX哲学,但因FreeBSD的驱动太过匮乏了,导致我的安装并不顺利,也就有了这篇文章
bhyve
bhyve,发音为“beehive”,是 FreeBSD 的虚拟机管理程序 / 虚拟机管理器,支持带有“POPCNT”(POPulation Count)功能的 Intel 和 AMD 处理器上的多种客户操作系统,以及在实验中支持 gic0:ARM Generic Interrupt Controller v3.0 功能的 ARM64/aarch64 处理器
bhyve 支持多种存储和网络后端、UEFI、FreeBSD 加载器和 GRUB 启动、PCI 直通 (PPT)、集成 VNC 和 9pfs 服务器以及更多功能
Wifibox
bhyve supports passing of host PCI devices to a virtual machine for its exclusive use of them.
Wifibox则是借助其PCI直通技术,部署了一个 Linux 客户机,借助 PCI 直通技术驱动 FreeBSD 主机系统上的无线网卡
Wifibox的日志位于/var/run/wifibox/appliance/log
,可以很方便地观察它的运行状态
配置
我的网卡是RTL8852be
,用ifconfig
查看只有一个设备,其ip为127.0.0.1
,若网卡在FreeBSD下有驱动支持,则需要额外禁用自带驱动
安装 Wifibox
- 因为安装需要网络,我们将数据线插入电脑,开启USB网络共享,用
ifconfig
查看是否识别到设备ue0
|
|
连接完后安装 Wifibox
|
|
- 用
pciconf -lv | less
查看设备,找到class
为network
的设备,并将其填写至/usr/local/etc/wifibox/bhyve.conf
none1@pci0:1:0:0 clash=....
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8852BE PCIe 802.11ax ...'
class = network
比如我这里显示为0:1:0:0
,就将1/0/0
填写到/usr/local/etc/wifibox/bhyve.conf
的passthru=
中
- 在
/etc/rc.conf
中写入以下配置启用Wifibox
wifibox_enable="YES"
ifconfig_wifibox0="SYNCDHCP"
一些教程中会将以下两条配置也添加进/etc/rc.conf
,但在我的设备中会导致网络不可用
background_dhclient_wifibox0="YES"
defaultroute_delay="0"
最后,将以下内容添加到/boot/loader.conf
hw.vmm.amdvi.enable=1
- 使用 wpa_passphrase 生成网络配置
|
|
将配置复制到 Wifibox
|
|
-
这时候就应该重启了,但在我的网卡上,必须在启动时获取
Wifibox0
的ip,否则网络将无法工作
根据作者的方法,需要将/sbin/dhclient wifibox0
添加进/etc/rc.local
以解决此问题
总结
这几天的使用,给我印象最深的是FreeBSD的精简和稳定性,每个软件包的大小能控制得很好,ZFS和Raid Z挺适合用于服务器,希望FreeBSD能越来越好。
Last modified on 2024-08-08