Synopsis #
Some wireless devices require firmware that OpenBSD cannot distribute with the installation media. fw_update(8) normally downloads the required signed firmware after installation, but that method first requires a working network connection.
When no wired connection is available, obtain the exact firmware archive on another computer, copy it to OpenBSD-readable removable media, and install it locally with fw_update. Firmware enables a supported driver; it does not add support for hardware that lacks an OpenBSD driver.
Identify the Wireless Driver #
Inspect dmesg(8) and ifconfig(8) :
$ dmesg | less
$ ifconfig
The interface name normally begins with the driver name and ends with an instance number. For example, iwm0 uses the iwm driver. Confirm the driver’s firmware requirements in its section 4 manual page. A device reported only as not configured may lack a supported driver and cannot be fixed by installing an arbitrary firmware archive.
Obtain the Firmware Archive #
On a networked computer, open the official OpenBSD firmware repository
and select the directory for the installed OpenBSD release. Download SHA256.sig and the archive matching the driver name, then copy both files to the same directory on a USB storage device.
Do not extract the archive and do not substitute firmware from a third-party operating-system distribution. fw_update uses the signed checksum list to verify and install the OpenBSD firmware package format.
Attach and Mount the Removable Device #
Insert the USB device and inspect the final kernel messages to identify its device name.
$ dmesg | tail -20
The following example assumes that the device appears as sd2 and that its first OpenBSD-visible filesystem is sd2i. Device letters depend on the partition table and filesystem. Confirm them with disklabel(8)
before mounting anything.
# disklabel sd2
# mkdir -p /mnt/firmware
# mount /dev/sd2i /mnt/firmware
For a FAT filesystem that is not represented by an automatic disklabel entry, use the filesystem-specific form documented by mount_msdos(8) . Do not guess the disk number or partition letter.
Install from the Local Directory #
Change to the directory containing the downloaded archive and direct fw_update to the local source:
# cd /mnt/firmware
# fw_update -p .
If the removable device contains archives for several drivers, fw_update examines the running system and installs the applicable firmware. To restrict the operation to one confirmed driver, specify its name:
# fw_update -p . iwm
Replace iwm with the actual driver name. Review any verification error instead of bypassing it.
Unmount the device after installation.
# cd /
# umount /mnt/firmware
Configure and Verify Wireless Networking #
Create the appropriate hostname.if(5) file for the interface. The following example uses WPA and IPv4 autoconfiguration:
join example-network wpakey example-passphrase
inet autoconf
Protect the file because it contains the network key, then apply the interface configuration with netstart(8) :
# chmod 600 /etc/hostname.iwm0
# sh /etc/netstart iwm0
Replace iwm0 with the detected interface. Confirm association, addressing, routing, and name resolution.
$ ifconfig iwm0
$ route -n show
$ ping -c 3 1.1.1.1
$ host openbsd.org
After connectivity is established, run fw_update without a local source so that all applicable firmware can be checked against the official repository.
# fw_update
Failure after verified firmware installation should be diagnosed as a driver, radio, authentication, addressing, or routing problem. Installing unrelated firmware repeatedly does not resolve those conditions.