我使用外部 23dBm 天线和带有 Atheros AR9285 芯片的 Ubiquiti SR71-E 在约 150 米的距离内连接到 eduroam。我的系统是 Debian Jessie 服务器 - 因此连接由 wpa_supplicant 管理。身份验证超时导致连接稳定性问题。迁移到反向移植内核 4.7.0 解决了这些问题。
但是现在内核正在降低 (Cisco) AP 所宣传的 tx-power。该函数可以在以下位置的“has_80211h_pwr”和“has_cisco_pwr”下找到:
http://lxr.free-electrons.com/source/net/mac80211/mlme.c
问题是
iwconfig wlan0 txpower XX iw dev wlan0 set txpower fixed XXXX
只允许将 txpower 设置在 0 和新限制之间。由于 AP 公布的限制为 8dbm,因此连接被强制转到 1 Mb/s,并且仍然有较高的“Tx 过度重试”和“无效杂项”计数。
答案1
这是一个补丁,当将 txpower 设置为“固定”时,它可以忽略来自 AP 的烦人的 802.11h 帧。
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index d6a1a46..f3ee9ab 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -61,7 +61,8 @@ bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata)
if (sdata->user_power_level != IEEE80211_UNSET_POWER_LEVEL)
power = min(power, sdata->user_power_level);
- if (sdata->ap_power_level != IEEE80211_UNSET_POWER_LEVEL)
+ if (sdata->ap_power_level != IEEE80211_UNSET_POWER_LEVEL &&
+ sdata->vif.bss_conf.txpower_type != NL80211_TX_POWER_FIXED)
power = min(power, sdata->ap_power_level);
if (power != sdata->vif.bss_conf.txpower) {