Version 1.2.2 - "ath0: unable to reset hardware; hal status 12" + "No carrier"
-
Hi,
I have a Atheros ar5212 card and I get a "ath0: unable to reset hardware; hal status 12" or "hal status 0" error resulting in a "No carrier" message in the interface status page and from ifconfig ath0.
If tried lots of different settings from the web administration without success. After looking at ifconfig ath0 I noticed the following:
media was set to <hostap>(autoselect <hostap>,<turbo>)</turbo></hostap></hostap> and channel was set to channel 6.After some reading I found that this chipset supports range booster (108Mb) speed. My guess is this is the turbo setting because I also read that this Turbo requires the use of channel 6 only. This could be the reason why I could not change it with ifconfig. It would also explain why pfsense could not reset the channel properly using the Auto channel setting. The problem is that this turbo mode seems to be enable by default. There must be a way to to change the eprom settings???
What I did was I set the channel to channel 10 and I get a Status: Associated. Even after rebooting the turbo does not appear again and everything seems to work fine (remember to add the firewall rule for your WLAN interface to allow traffic)! I found that selecting channel 6, or auto, always enables the turbo mode.
From several posts on this forum I can see that I'm not the only one with this problem. Has anyone found another solution? I'd like to bundle all our findings and investigate some more so that I can write and publish this information in the documentation section.
I found the following from http://forum.pfsense.org/index.php/topic,1407.msg8289.html#msg8289
There is a tutorial on how to change the eeprom setting. Most people mention the value their card expresses is 0x12 but I think mine is set to 0 a "wild card" value. Anyway setting this to 0x10 a "FCC" value should fix the conflict in channels. Some guy named Sam explains it better.
but the link to www.gentoo-wiki.com does not work anymore… anyone?
I got this from sysctl -a|grep ath
net.wlan.0.%parent: ath0
hw.ath.hal.swba_backoff: 0
hw.ath.hal.sw_brt: 10
hw.ath.hal.dma_brt: 2
hw.ath.hal.version: 0.9.20.3
hw.ath.txbuf: 200
hw.ath.rxbuf: 40
hw.ath.regdomain: 0
hw.ath.countrycode: 0
hw.ath.xchanmode: 1
hw.ath.outdoor: 1
hw.ath.calibrate: 30
dev.ath.0.%desc: Atheros 5212
dev.ath.0.%driver: ath
dev.ath.0.%location: slot=13 function=0
dev.ath.0.%pnpinfo: vendor=0x168c device=0x0013 subvendor=0x168c subdevice=0x2051 class=0x020000
dev.ath.0.%parent: pci0
dev.ath.0.smoothing_rate: 95
dev.ath.0.sample_rate: 10
dev.ath.0.countrycode: 156
dev.ath.0.regdomain: 32924
dev.ath.0.slottime: 9
dev.ath.0.acktimeout: 48
dev.ath.0.ctstimeout: 48
dev.ath.0.softled: 0
dev.ath.0.ledpin: 0
dev.ath.0.ledon: 0
dev.ath.0.ledidle: 2700
dev.ath.0.txantenna: 0
dev.ath.0.rxantenna: 1
dev.ath.0.diversity: 1
dev.ath.0.txintrperiod: 5
dev.ath.0.diag: 0
dev.ath.0.tpscale: 0
dev.ath.0.tpc: 0
dev.ath.0.tpack: 63
dev.ath.0.tpcts: 63
dev.ath.0.fftxqmin: 2
dev.ath.0.fftxqmax: 50
dev.ath.0.monpass: 24I don't know what I can do with this but I see both dev.ath and hw.ath and dev.ath seems to have regdomain and contrycode but not hw.ath...??? Help!
Cheers
David -
Found the following:
dturbo Enable the use of Atheros Dynamic Turbo mode when communicating
with another Dynamic Turbo-capable station. Dynamic Turbo mode
is an Atheros-specific mechanism by which stations switch between
normal 802.11 operation and a ``boosted'' mode in which a 40MHz
wide channel is used for communication. Stations using Dynamic
Turbo mode operate boosted only when the channel is free of non-
dturbo stations; when a non-dturbo station is identified on the
channel all stations will automatically drop back to normal oper-
ation. By default, Dynamic Turbo mode is not enabled, even if
the device is capable. Note that turbo mode (dynamic or static)
is only allowed on some channels depending on the regulatory con-
straints; use the list chan command to identify the channels
where turbo mode may be used. To disable Dynamic Turbo mode use
-dturboIt looks like the driver is miss behaving because here it says it should not be enabled by default. I tried to set the channel back to auto and the do a ifconfig ath0 -dturbo but after the reboot it's back to channel 6 with turbo enabled. the -dturbo does not seem to do anything.
Could we disable turbo mode with systcls or prevent the system from selecting channel 6?
Could it be that the Wireless configuration->Standard dropdown control of the pfSense Web Administration is not writing the proper configuration when you choose 802.11g?