Wifibox: Use Linux to Drive your Wireless Card on FreeBSD
Links:
Project GitHub
Page URL: https://github.com/pgj/freebsd-wifibox
net/wifibox
port URL: https://cgit.freebsd.org/ports/tree/net/wifibox
Contact: PÁLI Gábor János <pali.gabor@gmail.com>
Wifibox is an experimental project for exploring the ways of deploying a virtualized Linux guest to drive wireless networking cards on the FreeBSD host system. There have been guides to describe how to set this up manually, and Wifibox aims to implement those ideas as a single easy-to-use software package.
-
It uses bhyve(8) to run the embedded Linux system. This helps to achieve low resource footprint. It requires an x64 CPU with I/O MMU (AMD-Vi, Intel VT-d), ~150 MB physical memory, and some disk space available for the guest virtual disk image, which can be even ~30 MB only in certain cases. It works with FreeBSD 12 and later, some cards may require FreeBSD 13 though.
-
The guest is constructed using Alpine Linux, a security-oriented, lightweight distribution based on musl libc and BusyBox, with some custom extensions and patches imported from Arch Linux most notably. It is shipped with a number of diagnostic tools for better management of the hardware in use. The recent version features Linux 6.1, but Linux 6.5 is also available as an alternative.
-
Configuration files are shared with the host system. The guest uses wpa_supplicant(8) or hostapd(8) (depending on the configuration) so it is possible to import the host’s wpa_supplicant.conf(5) or hostapd.conf(5) file without any changes.
-
When configured, wpa_supplicant(8) and hostapd(8) control sockets could be exposed by the guest, which enables use of related utilities directly from the host, such as wpa_cli(8) or wpa_gui(8) from the net/wpa_supplicant_gui package, or hostapd_cli(8).
-
Everything is shipped in a single package that can be easily installed and removed. This comes with an rc(8) system service that automatically launches the guest on boot and stops it on shutdown.
-
It can be configured to forward IPv6 traffic, which is currently an experimental option but turned on by default.
Wifibox has been mainly tested with Intel chipsets, and it has shown great performance and stability. Therefore, it might serve as an interim solution whilst FreeBSD matures its support for these chipsets.
It was confirmed that Wifibox works with Atheros, Realtek, and Mediatek chipsets too, and feedback is more than welcome about others. Broadcom chips (that are often found in MacBook Pros) can also work, but there are known stability issues.
Last modified on: November 1, 2023 by Lorenzo Salvadore