Kernel: ath0: stuck beacon; resetting (bmiss count 4)
-
I think something changed between beta 5 feb.4 snapshot and RC1, since this problem showed up after the upgrade, but what?
nothing wireless related has changed in months. These driver issues come and go for some people for unknown reasons. We don't write, maintain or have any control of wireless drivers which is where these issues are, these things need to be reported upstream.
-
Hmm…
Well, I managed to compile a newer version of the driver using the source, but now I need to figure out how to get pfSense to (try to) use that one instead of the one already in the kernel. Google explained how to disable and load drivers, but not how to "override" one already in the kernel without having to rebuild that.
-
According to someone on the FreeBSD forum the only way to use the new driver is to completely rebuild/recompile the kernel.
Already found this: http://devwiki.pfsense.org/DevelopersBootStrapAndDevIso , but what if I only want the kernel? Any howto's on that?
Someone already asked that but did not get response: http://forum.pfsense.org/index.php/topic,26188.msg163743.html#msg163743 -
I modified the make.conf to exclude the driver and created a custom pfSense….. The driver is still in there. >:(
-
http://lists.freebsd.org/pipermail/freebsd-stable/2011-March/061772.html
Mostly the stuck beacon appears to be interference. Try a different channel. Driver isn't going to help that.
-
Already tried that, all 13 channels are busy…
That's why I would like to try an updated driver, hopefully it is a bit more stable than the one FreeBSD 8.1/pfSense 2 has got.Or at least the option to try it and help testing it for Adrian (who is working on it), don't have that option now because there does not seem to be a way to remove the driver already in the kernel.
-
Not much in that message implies that the stuck beacon message will really improve with a different driver. He talks about some features that haven't been ported yet, and that some chips may not improve at all (or may get worse) with a new driver.
That said, if you load a driver's .ko file from /boot/loader.conf.local it can override the in-kernel version of the driver.
But if you want to try the debug kernel options mentioned in that message, you'll have to run off a whole custom kernel (may as well make a custom iso/update) and the builder works fine for me. I just setup another builder today and had no trouble getting through the ports and such.
-
Other people have reported in these forums that they have successfully used a driver in a loadable module to override the driver in the kernel. I haven't tried it myself so can't verify this from personal experience.
If you care to follow this path you will need to load the module form of the driver at boot time by adding a line like if_ath_load="YES" to /boot/loader.conf.local
I would also suggest you add a printf() call to the attach function in your driver (for example, printf("bartgrefte's ath attach function\n");) so you can be sure the system is using your driver and not the driver in the kernel.
-
Hmm, okay.
Read about that, did not new that method could override a driver integrated in the kernelWell, if the MODULES_OVERRIDE option jimp mentioned in a different topic does not work, I'll try that :)
-
Other people have reported in these forums that they have successfully used a driver in a loadable module to override the driver in the kernel. I haven't tried it myself so can't verify this from personal experience.
**If you care to follow this path you will need to load the module form of the driver at boot time by adding a line like if_ath_load="YES" to /boot/loader.conf.localI would also suggest you add a printf() call to the attach function in your driver (for example, printf("bartgrefte's ath attach function\n");) so you can be sure the system is using your driver and not the driver in the kernel.**
Tried that, can't tell if it worked. Not seeing that sentence pop up anywhere in dmesg.
Note: loader.conf.local did not exist, so I created one with Vi.offtopic: Why does pfSense not have Nano instead of Vi? Nano is easier to use.
-
vi is better. ;D
ee is there if you need an easy editor.
-
Matter of personal opinion I guess :P
I kinda prefer Nano, because with that you don't have to look up the commands, they are on the screen ;D -
ee is the same way, it wastes a lot of screen area on listing commands and menus and such. Me, I'd rather be editing than looking at that. :-)
-
I just want to share my experience with this problem. I was running PfSense 1.2.3 with a ath card and no problems. When i upgraded to "2.0-RC1 (i386) built on Sat Feb 26 15:30:26 EST 2011" wireless stopped working (with the same error).
The only setting i changed to get this working was channel (wireless channel).
-
Changing the channel has worked for some people, but all channels are busy here and I have tried all of them without luck.
Right know I'm considering switching to a Linux based alternative for pfSense, hoping that the Linux equivalent of the Atheros driver does not contain this bug and because that one does (as far as I know) offer support for the N standard.
-
I have the same issue: kernel: ath0: stuck beacon; resetting (bmiss count 4)
Alix 6E1 board, .99H BIOS, Mikrotik r52h Atheros 5414 chipset card.
On startup mine also reports it as this:
ath0: <atheros 5413="">mem 0xe0080000-0xe008ffff irq 9 at device 12.0 on pci0
ath0: [ITHREAD]
ath0: AR5413 mac 10.5 RF5413 phy 6.1Which I thought might be significant.
I'm trying the tunables suggested below as we speak to see if it gets better:
Hi!
I have had this for a while also.Try setting hw.ath.bstuck to 8 in system/advanced/system tunables (add new row).
I also added hw.ath.longcal and value 30.
For me WiFi now works better.
/UrbanSk</atheros>
-
Tunables? That setting is not present here, or is only present in pfSense 2?
And to quote myself:
@bartgrefte:Changing the channel has worked for some people, but all channels are busy here and I have tried all of them without luck.
Right know I'm considering switching to a Linux based alternative for pfSense, hoping that the Linux equivalent of the Atheros driver does not contain this bug and because that one does (as far as I know) offer support for the N standard.
I haven't been able to find a decent alternative for pfSense….
-
The system tunables table is only present in the 2.0 GUI. You can still set that stuff manually though.
My experience is that changing the channel works for a short time and then the stuck beacon messages start again. I am in an area of very high wifi density however and I'm sure people changing their channel or getting new hardware could account for that.I have found that selecting a seemingly empty channel does not necessarily help. E.g. right now I am using channel 1 without errors but there are 6 other APs shown under status>>wireless on that channel.
It's also worth noting that I have never actually had a problem with wifi, just with hundreds of messages clogging the logs.
I'll try setting the tunables. Edit: hw.ath.longcal already set to 30 (default)
Steve
-
So far in one day of testing the two tunable entries, the error has not returned. I'm going to observe it until Monday in the lab, however IMO at this point already it would have produced a new error so I think it's resolved.
-
Good to hear. :)
Are we not just masking the problem though? It looks like hw.ath.bstuck just defines the number of beacons before an error is shown. I can't find a good description of the sysctls though.Steve
Edit: From the source:
static int ath_bstuck_threshold = 4; /* max missed beacons */ SYSCTL_INT(_hw_ath, OID_AUTO, bstuck, CTLFLAG_RW, &ath_bstuck_threshold, 0, "max missed beacon xmits before chip reset");
/* * Reset the hardware after detecting beacons have stopped. */ static void ath_bstuck_proc(void *arg, int pending) { struct ath_softc *sc = arg; struct ifnet *ifp = sc->sc_ifp; if_printf(ifp, "stuck beacon; resetting (bmiss count %u)\n", sc->sc_bmisscount); sc->sc_stats.ast_bstuck++; ath_reset(ifp); }
By setting the value to 8 all we are doing is increasing the number of missed beacons before the hardware is reset. There shouldn't ever be any missed beacons, this is a symptom not a cause.