Отключить контроль скорости в беспроводном драйвере Linux

Мне нужно оценить производительность нескольких беспроводных карт с разными битрейтами. Я узнал, что алгоритм «менестрель» непрерывно регулирует эту скорость.

  1. Может ли кто-нибудь указать мне, «как я могу вручную установить скорость передачи данных для этих беспроводных карт»?

ПРИМЕЧАНИЕ. Я использовал

iwconfig wlan0 rate 54M fixed 

но это бесполезно.

(См. Https://superuser.com/questions/870779/iwlist-wlan0-bitrate-says-unknown-bit-rate-information/ )

  1. Является ли это какой-либо помощью для меня?

    CONFIG_MAC80211_HAS_RC = у

1) Команда

 iwconfig wlan0 rate 54M fixed 

неэффективен [1], так как само ядро ​​Linux вызывает один из двух алгоритмов управления скоростью по умолчанию:

  1. менестрель (и / или minstrel_ht)
  2. PID

Вы можете проверить, какой из них выбран для вашего интерфейса, проверив вывод «dmesg».

В случае, если алгоритм «minstrel / minstrel_ht», чтобы вручную установить ставки, выполните следующие действия с терминалом (как пользователь root)

 # 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. Я хотел бы знать, можно ли это каким-то образом избежать.

Благодарности: Спасибо @bcopeland и @johill за # linux-wireless за руководство!