For peoples who want to use Linux WiFi drivers on FreeBSD with minimum support overhead :)
This how-to describes how to use OpenWRT as driver with WebUI for WiFi adapters.
No more pain with slow speed, no strange wpa_supplicant gui tools.
This upgrades WiFi speed from “36Mbps mode 11a” to 866Mbps on my notebook with intel 8265.
1. Download EFI based build. WWW: https://openwrt.org/docs/guide-developer/uefi-bootable-image
cd /root/ fetch https://downloads.openwrt.org/snapshots/targets/x86/64/openwrt-x86-64-generic-squashfs-combined-efi.img.gz gunzip openwrt-x86-64-generic-squashfs-combined-efi.img.gz
2. Configure system: WWW: https://www.freebsd.org/doc/handbook/virtualization-host-bhyve.html https://wiki.freebsd.org/bhyve/pci_passthru
echo 'net.link.tap.up_on_open=1' » /etc/sysctl.conf
/etc/rc.conf:
kld_list="nmdm vmm" cloned_interfaces="tap0" ifconfig_tap0_name="wifi0" ifconfig_wifi0="inet 192.0.2.1 netmask 255.255.255.0 up" ifconfig_wifi0_ipv6="inet6 accept_rtadv auto_linklocal -ifdisabled"
/boot/loader.conf
# bhyve PCI device passthru. # "1/0/0" - PCI dev ident, see: pciconf -lv pptdevs="1/0/0" # For AMD systems hw.vmm.amdvi.enable="1"
3. Start OpenWRT
/usr/sbin/bhyvectl --destroy --vm=owrt /usr/sbin/bhyve \ -A \ -H \ -c 2 \ -m 256M \ -S \ -s 0:0,hostbridge \ -s 1:0,lpc -l com1,stdio \ -s 3:0,ahci-hd,openwrt-x86-64-generic-squashfs-combined-efi.img \ -s 5:0,e1000,tap0,mac=00:be:fa:76:45:01 \ -s 7,passthru,1/0/0 \ -l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \ owrt
To disable output remove: “-l com1,stdio”
“1/0/0” - PCI dev ident, same as in loader.conf.
4. Configure OpenWRT:
uci set network.lan.ipaddr='192.0.2.254' uci set network.lan.netmask='255.255.255.0' uci set network.lan.gateway='192.0.2.1' uci add_list network.lan.dns='8.8.8.8' uci commit network /etc/init.d/network restart opkg update opkg install luci wpad-mesh-wolfssl iwlwifi-firmware-iwl3168 kmod-iwlwifi
Now web GUI can be used to install wpad*, hostapd*, WiFi driver and other staff.
If you want use OpenWRT as bridge - read this: https://openwrt.org/docs/guide-user/network/wifi/relay_configuration Better to start with simple rourer+nat mode.