MidnightBSD supports 802.11 a/b/g with several wifi chipsets. Others are not natively supported, but work with ndis wrappers.
MidnightBSD supports infrastructure mode and ad-hoc networks.
Note: The Atheros, WEP, and WPA modules were added to the GENERIC kernel as of 0.2-PRERELEASE June 2008. Some of these steps are not needed any longer.
Using wifi
There are several steps one must follow to enable wifi. First, a driver must be loaded as a module or compiled into the kernel. We will cover the module approach here.
In /boot/loader.conf:
For ath -- Atheros IEEE 802.11 wireless network driver
if_ath_load="YES"
}}
For wi -- Lucent Hermes, Intersil PRISM and Spectrum24 IEEE 802.11 driver
{{{
if_wi_load="YES"There are several other native device drivers. If you do not find one for your chipset, you will need to use ndis. I use it with a Linksys Broadcom based device with much success.
Next, you may need to load support for WEP, WPA, or WPA2. Most networks use one of these to offer some level of security. WEP is not very secure, but better than nothing.
put these in /boot/loader.conf:
wlan_wep_load="YES" wlan_ccmp_load="YES" wlan_tkip_load="YES"
ccmp and tkip are wpa2 and wpa.
You may also compile these into a kernel like so: (this example from the FreeBSD documentation)
device ath # Atheros IEEE 802.11 wireless network driver device ath_hal # Atheros Hardware Access Layer device ath_rate_sample # John Bicket's SampleRate control algorithm. device wlan # 802.11 support (Required) device wlan_wep # WEP crypto support for 802.11 devices device wlan_ccmp # AES-CCMP crypto support for 802.11 devices device wlan_tkip # TKIP and Michael crypto support for 802.11 devices
You must add the network interface in /etc/rc.conf so that it can come up when you boot up. This assumes you're using DHCP and WEP/WPA/WPA2.
in /etc/rc.conf:
ifconfig_ath0="WPA DHCP"
You will also need to configure /etc/wpa_supplicant.conf to get WEP or WPA working with your device. WPA2 personal and enterprise are supported. There is a man page covering the details. In the future, I'll post an example.