On Sun, Jul 10, 2016 at 02:28:32AM +0200, Xianwen Chen wrote: > Hello, > > I have not been able to use iwi0 on OpenBSD 5.9 i386 on ThinkPad R52. > > The firmware was installed via > # fw_update > > When I try to connect to an open wifi network: > # ifconfig iwi0 nwid HUAZHU-Hanting up > > I obtain the following error messages when I run 'dmesg': > > iwi0: fatal firmware error > iwi0: fatal firmware error > iwi0: timeout waiting for master > iwi0: fatal firmware error > iwi0: timeout waiting for master > iwi0: fatal firmware error > iwi0: timeout waiting for master > iwi0: fatal firmware error > iwi0: timeout waiting for master > iwi0: fatal firmware error > iwi0: fatal firmware error > iwi0: timeout waiting for master > iwi0: fatal firmware error > iwi0: fatal firmware error > iwi0: fatal firmware error > > The wireless network adapter worked a few days ago, when the laptop was > running Windows XP. > > What shall I do to make iwi0 working? > > Warm regards, > > Xianwen >
iwi(4) was accidentally broken in 5.9-release. There is a patch in 5.9-stable which makes iwi(4) work again. No errata was issued for this patch. I've included the patch below. If you already have a CVS checkout from the OPENSD_5_9 tag, then the steps you can follow are: cd /usr/src/sys cvs up net80211/ieee80211_node.c Now build and install a new kernel. For more information about how to get the -stable source tree and how to build the system from source, see http://www.openbsd.org/faq/faq5.html Index: ieee80211_node.c =================================================================== RCS file: /cvs/src/sys/net80211/ieee80211_node.c,v retrieving revision 1.99 retrieving revision 1.99.2.1 diff -u -p -r1.99 -r1.99.2.1 --- ieee80211_node.c 25 Jan 2016 15:14:22 -0000 1.99 +++ ieee80211_node.c 5 May 2016 09:41:33 -0000 1.99.2.1 @@ -630,6 +630,8 @@ ieee80211_end_scan(struct ifnet *ifp) goto notfound; (*ic->ic_node_copy)(ic, ic->ic_bss, selbs); ni = ic->ic_bss; + + ic->ic_curmode = ieee80211_chan2mode(ic, ni->ni_chan); if (ic->ic_flags & IEEE80211_F_RSNON) ieee80211_choose_rsnparams(ic);