[Решено] Отпадание интернета при работе от батареи

Всем привет!

Помогите пожалуйста разобраться: имеется противный AR9285 Wireless Network Adapter, установлена ОС Кубунту 11.04. Суть проблемы в следующем: при переходе на работу от батареи скорость интернета значительно падает, а клиенты ICQ перестают работать.

Чтение форумов привело меня к выводу, что виноват Wi-Fi адаптер, а именно его режимы энергосбережения. Получается он между отправками пакетов переходит в сон, буферизируя данные, укрупняя тем самым передаваемые пакеты и делая реже необходимость опроса адаптером точки доступа. Это и не дает нормально работать ICQ клиентам и снижает скорость интернета.

Нашел команду, как отключать режим энергосбережения

sudo iwconfig wlan0 power off

После отключения энергосбережения адаптера Kopete держит связь как от сети, без единого обрыва.

После перезагрузки энергосбережение опять включается. Подскажите пожалуйста, где искать хвост этого энергосбережения и как его отключить насовсем на этой машине (желательно не скриптом в автозагрузку, который будет его выключать, а насовсем - в конфигах самого адаптера)?

Кроме того, нашел на просторах интернета такой вариант решения проблемы медленного интернета с драйверами ath9k

# echo "options ath9k nohwcrypt=1" > /etc/modprobe.d/ath9k.conf

но описания, что это за команда нигде не нахожу, все пишут это как решение проблемы падения скорости интернета, но ничего не поясняют. При этом этого файла ath9k.conf в указанной папке нет, после выполнения команды он появляется с единственной строчкой options ath9k nohwcrypt=1 внутри. Кто скажет, что это и для чего и влияет ли он на что-то (лично я не заметил), может быть это только убунты касается?

0
dyug - 20 Август, 2011 - 11:16

Первое - смотреть в настройках поверменежмента или в консоли в сторону аспи (где именно, я не помню, ибо у меня нет такой проблемы)
Тебя должен интересовать режим перехода на батарею, где то там в скриптах можно добавить и эту команду.
Или найти глобально запрет сохранения энергии для влан адаптера.

Второе - параметр отключает чиповое(хардварное) криптование, которое на некоторых типах чипов успешно тормозит (ибо просто не хватает производительности чипа), и передает криптование на процессор системы.

К сожалению, мы так и не услышали начальника транспортного цехаточное название чипа, а без этого можно получить только общие рекомендации, которые я выдал.

0
Dimooon85 - 20 Август, 2011 - 11:53

То есть второе если никакой разницы нет можно откатить путем удаления файла отсюда /etc/modprobe.d/ath9k.conf (ну раз его там и небыло)?

По поводу адаптера я же написал AR9285 Wireless Network Adapter, или нужна другая инфа, тогда подскажите как ее получить?

0
dyug - 20 Август, 2011 - 13:30

Второе - ответ да.
ЭЭ сорри, я почему то при просмотре прошлячдел и реши что это модель ноута. :-(
Нет, такого у меня нет, не знаю где смотреть..

0
pro100chaynick - 20 Август, 2011 - 15:50

такае же беда на ветре 135 (rt3090) правда тлько при отключении бп при включенном вайфае
если включить при работе от батареи то все ок
решение проблемы то же не найти - может кто подскажет куда копать

0
Dimooon85 - 20 Август, 2011 - 20:09

Тут я вычитал, что при загрузке системы выполняется скрипт /etc/acpi/power.sh и он же выполняется при переходе на питание от сети и обратно на батарею. Помогите сообразить - куда и как в этот скрипт запихнуть команду iwconfig wlan0 power off, чтобы он выполнялся только при загрузке но не выполнялся при переходе от сети на батарею и обратно? Если сделать так:

#!/bin/sh
iwconfig wlan0 power off

то оно, как и следовало ожидать не работает.

Анализ файла rc.local показал, что скрипт power.sh в нем не указан, и как автор статьи по ссылке пришел к выводу, что он запускается при старте системы - непонятно. Может этому скрипту не хватает прав на исполнение? Может проще тогда уж создать скрипт Wireless_Powersave_Off и закинуть его в rc.local?

И еще, если вручную через терминал отключить энергосбережение карты, то после перехода в ждущий / спящий режим, перезагрузки или выключении компьютера он опять включается сам.

Как и где указать правильно эту команду? Неужели демон надо использовать?

0
dyug - 21 Август, 2011 - 08:58

гмм, забавненько, в письме на почту был скрипт приведен полностью, в здесь он куском..
Если ты хочешь, чтоб та команда отработала, то тебе его нужно ставить ПОСЛЕ pm-powersave, ибо именно он отрабатывает уменьшение потребления энергии...
Ибо она то отработала, но после него выполнился pm-powersave battery, который собственно и перевел влан адаптер в режим сохранения энергии. :-)

Я ориентировался на письмо, полученное в почту, с подпиской на комментарии.

0
dyug - 21 Август, 2011 - 08:40

Отвечаю сразу всем:
Рц.локал выполняется ОДИН раз при старте системы.
При отключении батареи выполняются скрипты из каталога /etc/acpi/
в подкаталоге events лежат сами действия.
из чего можно сделать вывод, что при переходе на батарею выполняется
# /etc/acpi/events/battery
# Called when AC power goes away and we switch to battery
event=battery
action=/etc/acpi/power.sh

и дальше по путям..

В частности:
в файле /etc/acpi/power.sh указано, что грузится файл /usr/share/acpi-support/policy-funcs с сохранением шелла (точка с пробелом в начале), потом проходят проверки,и в конце выполняется собственно файл pm-powersave с передачей параметра battery
вот туда вам и нужно рыть.

Мне лично, в утро воскресенья, это делать ПРОСТО лень, ибо я уже и так часть работы за вас сделал, господа.
ибо на моем ноуте (с которого я сейчас пишу дома) этой проблемы нет.

0
Dimooon85 - 21 Август, 2011 - 10:56

Все бы хорошо, но вот тут я прочел и из Вашего комментария понял, что если внести команду на отключение энергосбережения wlan в power.sh после pm-powersave battery, то при загрузке компьютера он должен сработать, равно как и при смене источника питания, но это полумера, поскольку при переходе в ждущий режим и выходе из него вновь включится энергосбережение, а скрипт не будет отрабатывать до следующего его вызова загрузкой ОС или сменой источника питания. Собственно вопрос: как так происходит, что после ждущего режима энергосбережение снова включается если скрипт power.sh не обрабатывается в этот момент?

Попробую по приведенной ссылке сделать демона, который будет отслеживать состояние сетевого адаптера каждые 10 сек и соответственно выполнять либо одну либо другую команду (в моем случае она будет единой - выключать режим энергосбережения адаптера хоть при питании от батареи хоть при питании от сети). Получается такому демону не страшен ни уход в сон ни в спящий режим, т.к. после пробуждения он вновь проверит, от какого источника работает компьютер и выполнит соответствующую команду. Не вариант, все равно не поможет.

Но все же хотелось бы не таких костылей а придумать что-нибудь с power.sh или найти как отключить этот режим навсегда, чтобы он не включался командой pm-powersave из скрипта power.sh

Dyug, спасибо за ответы.

0
Dimooon85 - 21 Август, 2011 - 10:28

Проверил. Вставил в power.sh после pm-powersave battery команду iwconfig wlan0 power off. После загрузки ноутбука, отключенного от сети энергосбережение беспроводного адаптера не выключается. При включении питания от сети оно выключается, при отключении снова включается.

Вот чего в логах (/var/log/pm-powersave.log) нашел:

А вот содержание самого этого файла

Сдается мне что истина где-то рядом и надо что-то изменить в этом файле, либо вырезать функцию переключения энергосбережения, либо заменить в конце строку "true) wireless_powersave on ;;" на true) wireless_powersave off ;;...

0
dyug - 21 Август, 2011 - 10:31

Наверное, скорее всего вы на правильном пути.
Как я уже говорил, у меня такой проблемы нет, и я не искал пути решения этой проблемы... :-)

0
Dimooon85 - 21 Август, 2011 - 10:52

Ураааааааа (ой чуть не выругался), я нашел решение!!!

Вот тут последний пост - действительно нужно править файл /usr/lib/pm-utils/power.d/wireless, делаем это конечно же так

sudo kate /usr/lib/pm-utils/power.d/wireless

и правим его в части следующих параметров (то, что нужно изменить выделено жирным):

case $driver in
ipw2100) iwpriv_ac="set_power 0"
iwpriv_batt="set_power 0"
iwconfig_ac="power off"
iwconfig_batt="power off";;
ipw3945)
iwpriv_ac="set_power 6"
iwpriv_batt="set_power 6";;
iwl*) if [ -f "/sys/class/net/$1/device/power_level" ]; then
iwlevel_ac=0
iwlevel_batt=0
else
iwconfig_ac="power off"
iwconfig_batt="power off"
fi;;
*) iwconfig_ac="power off"
iwconfig_batt="power off";;

Далее сохраняем и перезагружаемся - все, теперь никакого отпадывания интернета при переходе на питание от батарей (фактически мы выключили энергосбережение беспроводного адаптера, который в этом режиме между передачей пакетов уходил в сон, буферизируя данные, что и приводит к неработоспособности сети)

0
dyug - 21 Август, 2011 - 11:19

ну логичненько, логичненько...
Я тут пока занимался лечением домашней точки доступа ВиФи, Вы разобрались с проблемой
С чем поздравляю. :-)

Лечение точки доступа закончилось ее заменой, ибо похоже она сдохла..
Но не важно,все равно новая уже лежала в коробке, мне просто было лень ее заменить.. :-)

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры