1.\" $OpenBSD: wpi.4,v 1.45 2022/01/05 17:39:25 jmc Exp $ 2.\" 3.\" Copyright (c) 2006, 2007 4.\" Damien Bergamini <damien.bergamini@free.fr>. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice unmodified, this list of conditions, and the following 11.\" disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26.\" SUCH DAMAGE. 27.\" 28.Dd $Mdocdate: January 5 2022 $ 29.Dt WPI 4 30.Os 31.Sh NAME 32.Nm wpi 33.Nd Intel PRO/Wireless 3945ABG IEEE 802.11a/b/g wireless network device 34.Sh SYNOPSIS 35.Cd "wpi* at pci?" 36.Sh DESCRIPTION 37The 38.Nm 39driver provides support for Intel 40PRO/Wireless 3945ABG Mini PCI Express network adapters. 41.Pp 42These are the modes the 43.Nm 44driver can operate in: 45.Bl -tag -width "IBSS-masterXX" 46.It BSS mode 47Also known as 48.Em infrastructure 49mode, this is used when associating with an access point, through 50which all traffic passes. 51This mode is the default. 52.It monitor mode 53In this mode the driver is able to receive packets without 54associating with an access point. 55This disables the internal receive filter and enables the card to 56capture packets from networks which it wouldn't normally have access to, 57or to scan for access points. 58.El 59.Pp 60The 61.Nm 62driver can be configured to use 63Wired Equivalent Privacy (WEP) or 64Wi-Fi Protected Access (WPA1 and WPA2). 65WPA2 is the current encryption standard for wireless networks. 66It is strongly recommended that neither WEP nor WPA1 67are used as the sole mechanism to secure wireless communication, 68due to serious weaknesses. 69WPA1 is disabled by default and may be enabled using the option 70.Qq Cm wpaprotos Ar wpa1,wpa2 . 71For standard WPA networks which use pre-shared keys (PSK), 72keys are configured using the 73.Qq Cm wpakey 74option. 75WPA-Enterprise networks require use of the wpa_supplicant package. 76The 77.Nm 78driver offloads both encryption and decryption of unicast data frames to the 79hardware for the CCMP cipher. 80.Pp 81In BSS mode, 82the driver supports powersave mode, 83which can be enabled via 84.Xr ifconfig 8 . 85.Pp 86The 87.Nm 88driver can be configured at runtime with 89.Xr ifconfig 8 90or on boot with 91.Xr hostname.if 5 . 92.Sh FILES 93The driver needs at least version 3.1 of the following firmware file, 94which is loaded when an interface is brought up: 95.Pp 96.Bl -tag -width Ds -offset indent -compact 97.It Pa /etc/firmware/wpi-3945abg 98.El 99.Pp 100This firmware file is not free because Intel refuses to grant 101distribution rights without contractual obligations. 102As a result, even though 103.Ox 104includes the driver, the firmware file cannot be included and 105users have to download this file on their own. 106.Pp 107A prepackaged version of the firmware can be installed using 108.Xr fw_update 8 . 109.Sh EXAMPLES 110The following example scans for available networks: 111.Pp 112.Dl # ifconfig wpi0 scan 113.Pp 114The following 115.Xr hostname.if 5 116example configures wpi0 to join network 117.Dq mynwid , 118using WPA key 119.Dq mywpakey , 120obtaining an IP address using DHCP: 121.Bd -literal -offset indent 122join mynwid wpakey mywpakey 123inet autoconf 124.Ed 125.Sh DIAGNOSTICS 126.Bl -diag 127.It "wpi0: device timeout" 128A frame dispatched to the hardware for transmission did not complete in time. 129The driver will reset the hardware. 130This should not happen. 131.It "wpi0: fatal firmware error" 132For some reason, the firmware crashed. 133The driver will reset the hardware. 134This should not happen. 135.It "wpi0: Radio transmitter is off" 136The radio transmitter is off and thus no packet can go out. 137The driver will reset the hardware. 138Make sure the laptop radio switch is on. 139.It "wpi0: error N, could not read firmware ..." 140For some reason, the driver was unable to read the firmware image from the 141filesystem. 142The file might be missing or corrupted. 143.It "wpi0: firmware file too short: N bytes" 144The firmware image is corrupted and can't be loaded into the adapter. 145.It "wpi0: could not load firmware" 146An attempt to load the firmware into the adapter failed. 147The driver will reset the hardware. 148.El 149.Sh SEE ALSO 150.Xr arp 4 , 151.Xr ifmedia 4 , 152.Xr intro 4 , 153.Xr netintro 4 , 154.Xr pci 4 , 155.Xr hostname.if 5 , 156.Xr ifconfig 8 157.Sh HISTORY 158The 159.Nm 160driver first appeared in 161.Ox 4.0 . 162.Sh AUTHORS 163The 164.Nm 165driver was written by 166.An Damien Bergamini Aq Mt damien.bergamini@free.fr . 167