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);