Hello Stefan,

Thank you very much! iwi0 works well with the newly compiled kernel!

Warm regards,

Xianwen

On 07/10/16 13:18, Stefan Sperling wrote:
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);

Reply via email to