禁用 Linux 无线驱动程序中的速率控制

禁用 Linux 无线驱动程序中的速率控制

我需要评估一些无线卡在不同比特率下的性能。我发现“minstrel”算法不断调整这个速率。

  1. 有人可以告诉我“如何手动设置这些无线卡的比特率”吗?

注意:我使用了

iwconfig wlan0 rate 54M fixed

但那没有用。

(请参见https://superuser.com/questions/870779/iwlist-wlan0-bitrate-says-unknown-bit-rate-information/

  1. 这对我有帮助吗?

    CONFIG_MAC80211_HAS_RC=y

答案1

1)命令

iwconfig wlan0 rate 54M fixed

效率低下[1],因为 Linux 内核本身会调用以下两种默认速率控制算法之一:

  1. 吟游诗人(和/或吟游诗人_ht)
  2. PID

您可以通过检查“dmesg”的输出来验证为您的接口选择了哪个。

如果算法是“minstrel/minstrel_ht”,要手动设置费率,请从终端执行以下操作(作为根用户)

# echo 'index' > /sys/kernel/debug/ieee80211/phy0/rc/fixed_rate_idx 

其中“索引”是允许的“速率索引”。您可以尝试使用小整数。这会在几秒钟内将速率调整为某个固定值。

参考: http://lxr.free-electrons.com/source/net/mac80211/rc80211_minstrel.h#L113

[1] 我需要有人对这种“低效率”发表评论。

2)开关

CONFIG_MAC80211_HAS_RC=y (and similar switches around it in the 'kernel .config file')

可以玩。然而,

Failed to select rate control algorithm

这是我在执行此操作后在“dmesg”输出中发现的一条消息,并且没有无线接口工作。我相信 ath*k 驱动程序中存在对这种“速率控制”算法的依赖。我想知道是否可以通过某种方式避免这种情况。

致谢: 感谢 #linux-wireless 的 @bcopeland 和 @johill 一路以来的指导!

相关内容