1.\"- 2.\" SPDX-License-Identifier: BSD-2-Clause 3.\" 4.\" Copyright (c) 2004-2007 5.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved. 6.\" Benjamin Close <Benjamin.Close@clearchain.com>. All rights reserved. 7.\" Copyright (c) 2016 Andriy Voskoboinyk <avos@FreeBSD.org> 8.\" All rights reserved. 9.\" 10.\" Redistribution and use in source and binary forms, with or without 11.\" modification, are permitted provided that the following conditions 12.\" are met: 13.\" 1. Redistributions of source code must retain the above copyright 14.\" notice unmodified, this list of conditions, and the following 15.\" disclaimer. 16.\" 2. Redistributions in binary form must reproduce the above copyright 17.\" notice, this list of conditions and the following disclaimer in the 18.\" documentation and/or other materials provided with the distribution. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.Dd October 17, 2024 33.Dt WPI 4 34.Os 35.Sh NAME 36.Nm wpi 37.Nd Intel PRO/Wireless 3945ABG IEEE 802.11a/b/g network driver 38.Sh SYNOPSIS 39To compile this driver into the kernel, 40place the following lines in your 41kernel configuration file: 42.Bd -ragged -offset indent 43.Cd "device wpi" 44.Cd "device wpifw" 45.Cd "device pci" 46.Cd "device wlan" 47.Cd "device wlan_amrr" 48.Cd "device firmware" 49.Ed 50.Pp 51Alternatively, to load the driver as a 52module at boot time, place the following line in 53.Xr loader.conf 5 : 54.Pp 55.Dl if_wpi_load="YES" 56.Sh DESCRIPTION 57The 58.Nm 59driver supports running the 60Intel PRO/Wireless 3945ABG network adapter in 61.Cm station , 62.Cm adhoc , 63.Cm adhoc-demo , 64.Cm hostap , 65and 66.Cm monitor 67mode operation. 68This driver requires the wpifw firmware module 69and can be configured at runtime with 70.Xr ifconfig 8 71or at boot in 72.Xr rc.conf 5 . 73Only one virtual interface may be configured at any time. 74.Pp 75The 76.Nm 77driver can be configured to use 78Wired Equivalent Privacy (WEP) or 79Wi-Fi Protected Access (WPA-PSK and WPA2-PSK). 80WPA is the de facto encryption standard for wireless networks. 81It is strongly recommended that WEP 82not be used as the sole mechanism 83to secure wireless communication, 84due to serious weaknesses in it. 85The 86.Nm 87driver offloads both encryption and decryption of data frames to the 88hardware for the CCMP cipher. 89.Sh HARDWARE 90The 91.Nm 92driver provides support for the 93Intel PRO/Wireless 3945ABG Mini PCIe network adapter. 94.Sh FILES 95.Bl -tag -width "/usr/share/doc/legal/intel_wpi.LICENSE" -compact 96.It Pa /usr/share/doc/legal/intel_wpi.LICENSE 97.Nm 98firmware license 99.El 100.Sh EXAMPLES 101Join an existing BSS network (i.e., connect to an access point): 102.Bd -literal -offset indent 103ifconfig wlan0 create wlandev wpi0 inet 192.168.0.20 \e 104 netmask 0xffffff00 105.Ed 106.Pp 107Join a specific BSS network with network name 108.Ar my_net : 109.Pp 110.Dl "ifconfig wlan0 create wlandev wpi0 ssid my_net up" 111.Pp 112Join a specific BSS network with 64-bit WEP encryption: 113.Bd -literal -offset indent 114ifconfig wlan0 create wlandev wpi0 ssid my_net \e 115 wepmode on wepkey 0x1234567890 weptxkey 1 up 116.Ed 117.Pp 118Create an IBSS network with 128-bit WEP encryption on the channel 4: 119.Bd -literal -offset indent 120ifconfig wlan0 create wlandev wpi0 wlanmode adhoc ssid my_net \e 121 wepmode on wepkey 0x01020304050607080910111213 weptxkey 1 \e 122 channel 4 123.Ed 124.Pp 125Join/create an 802.11b IBSS network with network name 126.Ar my_net : 127.Bd -literal -offset indent 128ifconfig wlan0 create wlandev wpi0 wlanmode adhoc 129ifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \e 130 mode 11b 131.Ed 132.Pp 133Create an 802.11g host-based access point: 134.Bd -literal -offset indent 135ifconfig wlan0 create wlandev wpi0 wlanmode hostap 136ifconfig wlan0 inet 192.168.0.10 netmask 0xffffff00 ssid my_ap \e 137 mode 11g 138.Ed 139.Sh DIAGNOSTICS 140.Bl -diag 141.It "wpi%d: could not load firmware image '%s'" 142The driver failed to load the firmware image using the 143.Xr firmware 9 144subsystem. 145Verify the wpifw firmware module is installed. 146.It "wpi%d: %s: timeout waiting for adapter to initialize, error %d" 147The onboard microcontroller failed to initialize in time. 148This should not happen. 149.It "wpi%d: %s: could not load boot firmware" 150An attempt to upload the boot firmware image to the onboard microcontroller 151failed. 152This should not happen. 153.It "wpi%d: device timeout" 154A frame dispatched to the hardware for transmission did not complete in time. 155The driver will reset the hardware and continue. 156This should not happen. 157.It "wpi%d: scan timeout" 158Firmware scan command response was not received in time. 159The driver will reset the hardware and continue. 160This should not happen. 161.It "wpi%d: fatal firmware error" 162The onboard microcontroller crashed for some reason. 163The driver will reset the hardware and continue. 164This should not happen. 165.It "wpi%d: RF switch: radio disabled" 166The hardware switch controlling the radio is currently turned off. 167Data transmission is not possible in this state. 168.It "wpi%d: can't map mem space" 169The driver was unable to map the device registers into the host address space. 170This should not happen. 171.It "wpi%d: can't map interrupt" 172The driver was unable to allocate an IRQ for the device interrupt. 173This should not happen. 174.It "wpi%d: can't establish interrupt, error %d" 175The driver was unable to install the device interrupt handler. 176This should not happen. 177.It "wpi%d: %s: bus_dmamap_load failed, error %d" 178The driver was unable to map newly allocated mbuf to device 179visible address space. 180Contents of currently received frame will be lost. 181This should not happen. 182.El 183.Sh SEE ALSO 184.Xr pci 4 , 185.Xr wlan 4 , 186.Xr wlan_amrr 4 , 187.Xr wlan_ccmp 4 , 188.Xr wlan_tkip 4 , 189.Xr wlan_wep 4 , 190.Xr wlan_xauth 4 , 191.Xr networking 7 , 192.Xr hostapd 8 , 193.Xr ifconfig 8 , 194.Xr wpa_supplicant 8 195.Sh AUTHORS 196.An -nosplit 197The original 198.Nm 199driver was written for 200.Ox 201by 202.An Damien Bergamini Aq Mt damien.bergamini@free.fr . 203.An Benjamin Close Aq Mt benjsc@FreeBSD.org 204ported 205.Nm 206to 207.Fx . 208.Sh CAVEATS 209.Cm Hostap 210mode is not directly supported by the device; 211it is implemented through IBSS mode (as a result, DFS/passive 212channels are not available in this mode). 213.Pp 214Powersave may be unstable on some networks 215.Po results in occasional Sy 'wpi%d: device timeout' No messages Pc ; 216you can try to disable it to improve device stability. 217