=== Wifibox: Use Linux to drive your wireless card on FreeBSD

Links: +
link:https://github.com/pgj/freebsd-wifibox[Project GitHub Page] +
link:https://cgit.freebsd.org/ports/tree/net/wifibox[``net/wifibox`` port]

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 on the Internet to suggest the use of such techniques to improve the wireless networking experience, of which Wifibox aims to implement as a single easy-to-use software package.

- man:bhyve[8] is utilized 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 a recent 13-STABLE though.

- The guest is constructed using https://alpinelinux.org/[Alpine Linux], a security-oriented, lightweight distribution based on https://www.musl-libc.org/[musl libc] and https://busybox.net/[BusyBox].

- Configuration files are shared with the host system. The guest uses man:wpa_supplicant[8] so it is possible to import the host's man:wpa_supplicant.conf[8] file without any changes.

- When configured, man:wpa_supplicant[8] control sockets could be exposed by the guest, which enables use of related utilities directly from the host, such as man:wpa_cli[8] or man:wpa_gui[8] from the ``net/wpa_supplicant_gui`` port/package.

- Everything is shipped in a single package that can be easily installed and removed.
  This comes with an man:rc[8] system service that automatically launches the guest on boot and stops it on shutdown.

- A workaround is supplied for laptops to support suspend/resume.

Wifibox has been mainly tested with Intel chipsets so far, and it has shown great performance and stability.
Therefore it might serve as an interim solution until the Intel Wireless support becomes mature enough.
It was confirmed that Wifibox works with Atheros chipsets too, and feedback is more than welcome about others.
Support for Broadcom chipsets is not yet complete, that is currently a work in progress.
