Действительно отключить энергосбережение в Linux Wi-Fi

У меня есть ноутбук с Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34) (с помощью iwlwifi модуль ядра). Хотя power_save (параметр модуля) отключен, я вижу контрольные кадры 802.11, содержащие пакеты управления питанием, уведомляющие точку доступа о том, что она переходит в спящий режим. Точка доступа прекращает отправку пакетов на ноутбук, пока не увидит другой пакет от ноутбука.

Как действительно остановить ноутбук от отправки энергосберегающих пакетов на точку доступа? (Или, в качестве альтернативы, как я могу помешать точке доступа соблюдать их?)

Я уверен power_save отключен, так как когда я включил его, пакеты энергосбережения отправляются гораздо чаще (почти каждую секунду).

Точка доступа работает hostapd с ath9k Водитель. И точка доступа, и ноутбук работают под управлением Debian Wheezy с ядром 686-pae 3.2. Я пытался поставить 3.10 драйвер iwlwifi на ноутбук, но без изменений.

РЕДАКТИРОВАТЬ: я попробовал на другом ноутбуке с другим iwlwifi Набор микросхем Intel Corporation Centrino Ultimate-N 6300 (rev 35) и это точно не имеет этой проблемы. За каждым энергосберегающим пакетом следует нулевой пакет QoS без энергосбережения, поэтому точка доступа предположительно останавливает отправку пакетов на долю секунды.

РЕДАКТИРОВАТЬ: я попробовал другую Wi-Fi мини-PCIe карту в первом ноутбуке, но она, кажется, заблокирована, поэтому другая мини-PCIe карта не может быть обнаружена ОС.

2 ответа

iwlwifi Модуль использует iwlmvm модуль для обработки прошивок.
Вы должны установить это для энергосберегающего контроля. Вам нужно установить

options iwlmvm power_scheme=1

Я взглянул на исходный код для iwlwifi. В заголовке iwl-modparams.h есть этот бит кода:

* struct iwl_mod_params
*
* Holds the module parameters
*
* @sw_crypto: using hardware encryption, default = 0
* @disable_11n: disable 11n capabilities, default = 0,
*      use IWL_DISABLE_HT_* constants
* @amsdu_size_8K: enable 8K amsdu size, default = 0
* @restart_fw: restart firmware, default = 1
* @wd_disable: enable stuck queue check, default = 0
* @bt_coex_active: enable bt coex, default = true
* @led_mode: system default, default = 0
* @power_save: disable power save, default = false
* @power_level: power level, default = 1
* @debug_level: levels are IWL_DL_*
* @ant_coupling: antenna coupling in dB, default = 0
*/

Это говорит о том, что правильный способ отключения энергосбережения

insmod iwlwifi power_save=true

что в точности противоположно выводу modinfo. Я бы попробовал.

Другие вопросы по тегам