IWI(4)

✨ iwi(4) β€” the Intel WiFi glow-up ✨

okay bestie, sit down, we're talking about iwi, from the Kernel Interfaces Manual β€” aka the Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 driver. yes the whole thing. no skimming. πŸ’–


🌸 NAME 🌸

iwi β€” Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 driver

like. that's the whole name. it's giving "I'm the driver for these specific cards and I said what I said." πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

so to get this driver baked into your kernel, you gotta drop these lines into your kernel configuration file:

device iwi
device iwifw
device pci
device wlan
device firmware

all five. not four. not "ehh close enough." five. 🫢

OR β€” if you'd rather load it as a module at boot time instead (main character behavior, honestly), put this in loader.conf(5):

if_iwi_load="YES"

and in both cases, you also need this line in loader.conf(5) to acknowledge the firmware license (more on that below, don't skip it):

legal.intel_iwi.license_ack=1

πŸ’« DESCRIPTION πŸ’«

The iwi driver provides support for Intel PRO/Wireless 2200BG/2915ABG MiniPCI and 2225BG PCI network adapters. it's got range, it's got range in the networking sense β€” it supports station, adhoc, and monitor mode operation. πŸ”₯

⚠️ heads up though: only one virtual interface may be configured at any time. one. singular. monogamous interface energy.

for more info on configuring this device, go see ifconfig(8). 🧚

This driver requires the firmware built with the iwifw module to work. and for the loaded firmware to be enabled for use, the license at /usr/share/doc/legal/intel_iwi.LICENSE must be agreed to by adding this line to loader.conf(5):

legal.intel_iwi.license_ack=1

yes it's the same line from the synopsis. yes we're repeating it. it's that important. 😭


πŸ“ FILES πŸ“

  • /usr/share/doc/legal/intel_iwi.LICENSE β€” iwi firmware license

one file. that's the list. iconic minimalism. ✨


🌈 EXAMPLES 🌈

okay here's where it gets fun, let's actually connect to stuff.

join an existing BSS network (i.e., connect to an access point):

ifconfig wlan create wlandev iwi0 inet 192.168.0.20 \
    netmask 0xffffff00

join a specific BSS network with network name "my_net":

ifconfig wlan create wlandev iwi0 ssid my_net up

join a specific BSS network with 64-bit WEP encryption:

ifconfig wlan create wlandev iwi0 ssid my_net \
        wepmode on wepkey 0x1234567890 weptxkey 1 up

join a specific BSS network with 128-bit WEP encryption:

ifconfig wlan create wlandev iwi0 wlanmode adhoc ssid my_net \
    wepmode on wepkey 0x01020304050607080910111213 weptxkey 1

copy them exactly, bestie, don't freestyle the hex. πŸ™ˆ


πŸ’€ DIAGNOSTICS πŸ’€

the "what went wrong" section. deep breaths. 🫢

  • iwi%d: device timeout β€” The driver will reset the hardware. This should not happen.
  • iwi%d: firmware error β€” The onboard microcontroller crashed for some reason. The driver will reset the hardware. This should not happen.
  • iwi%d: timeout waiting for firmware initialization to complete β€” The onboard microcontroller failed to initialize in time. This should not happen.
  • iwi%d: could not load firmware image '%s' β€” The driver failed to load the firmware image using the firmware(9) subsystem. Verify the iwifw(4) firmware module is installed and the license agreement loader(8) tunable has been set.
  • iwi%d: could not load boot firmware β€” An attempt to upload the boot firmware image to the onboard microcontroller failed. This should not happen.
  • iwi%d: could not load microcode β€” An attempt to upload the microcode image to the onboard microcontroller failed. This should not happen.
  • iwi%d: could not load main firmware β€” An attempt to upload the main firmware image to the onboard microcontroller failed. This should not happen.

not the "this should not happen" appearing five separate times. the driver is manifesting stability and honestly? same. 😭


πŸ¦‹ SEE ALSO πŸ¦‹

iwifw(4), pci(4), wlan(4), wlan_ccmp(4), wlan_tkip(4), wlan_wep(4), ifconfig(8), wpa_supplicant(8)

the whole friend group. go say hi. πŸ’œ


πŸ‘‘ AUTHORS πŸ‘‘

The original iwi driver was written by Damien Bergamini <damien.bergamini@free.fr>.

king behavior, genuinely. πŸŽ€


okay that's the whole page!! every flag, every path, every error string, every single "this should not happen" β€” all accounted for, no cap. this one came to you from the Debian folks, dated October 15, 2015 πŸ’– slay, go configure your wireless card bestie ✨🌸

πŸ“¦ where this page comes from