Как я могу предотвратить включение управления питанием iwconfig?

Я затронут этой ошибкой: 869502.

Обходной путь, который, по-видимому, останавливает панику ядра, - отключить управление питанием wlan0:

sudo iwconfig wlan0 power off

Однако, кажется, что автоматически отключается управление питанием, когда я отключаю кабель питания, и я думаю, что во многих других случаях тоже.

Есть ли что-то, что может быть причиной этого? Кто-нибудь знает, как я могу это предотвратить?

11 ответов

Решение

Беспроводное управление питанием осуществляется с помощью pm-utils, Вы можете отключить его любым из следующих способов:

Создать файл в /etc/pm/config.d, Я назвал это черным списком:

gksu gedit /etc/pm/config.d/blacklist

и внутри файла держите:

HOOK_BLACKLIST="wireless"

Если вы хотите отключить любые другие ловушки, ловушки по умолчанию расположены в /usr/lib/pm-utils/power.d/,

ИЛИ ЖЕ

Вы можете просто создать пустой хук в любом /etc/pm/sleep.d или же /etc/pm/power.d, Посмотрите, какой из них работает для вас. т.е.

Просто делать

sudo touch /etc/pm/sleep.d/wireless

ИЛИ ЖЕ

sudo touch /etc/pm/power.d/wireless

Тип iwconfig и посмотрите на вывод. Вы должны увидеть название вашего чипсета, а также то, включено или выключено управление питанием. Если это не говорит, это вероятно выключено.

Чтобы отключить управление питанием, перейдите к /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf и ты увидишь

[connection]
wifi.powersave = 3

Изменить 3 к 2 и перезагрузите компьютер.

Тогда беги iwconfig и если это сработало, вы должны увидеть Power Management:off,

Источник: https://sites.google.com/site/easylinuxtipsproject/internet

Если отключить управление питанием для вашего беспроводного интерфейса, вы увеличите скорость интернета следующим образом:

sudo iwconfig wlan0 power off

Чем сделать постоянную команду запуска следующим образом:

  1. cd /etc/pm/power.d

  2. sudo gedit wifi_pwr_off

    Откроется пустой файл, скопируйте в него код ниже:

    #!/bin/sh 
    /sbin/iwconfig wlan0 power off
    
  3. Сохраните файл, не забудьте

    sudo chmod +x wifi_pwr_off
    

    и перезагрузите.

Мой предпочтительный способ - добавить следующую строку в /etc/network/interfaces в настройки моего беспроводного интерфейса:

post-up iwconfig wlan0 power off

Вот полный пример:

auto wlan0
iface wlan0 inet static
 address 192.168.1.2
 network 192.168.1.0
 netmask 255.255.255.0
 broadcast 192.168.1.255
 gateway 192.168.1.254
 post-up iwconfig wlan0 power off
 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Обратите внимание, что man interfaces говорит о поведении post-up может измениться в будущем.

Другой подход заключается в добавлении явной директивы (wireless-power) контролировать управление питанием в /etc/network/interfaces файл конфигурации (например, отключить его для wlan0 с DHCP):

auto wlan0
iface wlan0 inet dhcp     
  wireless-power off

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

sudo gedit /etc/rc.local

И добавил следующую строку перед exit 0:

( sleep 30 && iwconfig wlan0 power off )&

Это отключает управление питанием через 30 секунд после входа в систему...

Изменить: На самом деле этого было недостаточно. Я продолжал пробовать кучу вещей, включая /questions/29930/upravlenie-pitaniem-po-besprovodnoj-svyazi-ne-mozhet-otklyuchitsya-v-xubunu-1504/29934#29934 которые, я думаю, решили мою проблему (надеюсь).

Лучший подход (по крайней мере, в Ubuntu 16.04) - создать /etc/network/if-up.d/wifi-powerman-off со следующим содержанием:

#!/bin/sh

IWCONFIG=/sbin/iwconfig
WLAN_IFACE=<your wireless device here>

if [ ! -x $IWCONFIG ]; then
    exit 1
fi

if [ "$IFACE" = $WLAN_IFACE ]; then
    $IWCONFIG $IFACE power off
fi

и установите его как исполняемый файл. Управление питанием будет отключено при следующем подключении к сети.

Это хорошо работает с NetworkManager.

Я создал следующую службу systemd, чтобы ПОСТОЯННО убивать управление питанием в WiFi через перезагрузки. Проверено и известно для работы. Просто вставьте приведенный ниже скрипт bash в файл, chmod 700 файл и sudo ./yourFileName.sh:

if [ -d /root/scripts ]; then
    mkdir /root/scripts
fi

apt-get -y install iw
apt-get -y install wireless-tools

cat <<EOF> /root/scripts/pwr-mgmnt-wifi-disable.sh
#!/bin/bash
iw dev wlan0 set power_save off
EOF

chmod 700 /root/scripts/pwr-mgmnt-wifi-disable.sh


cat <<EOF> /etc/systemd/system//pwr-mgmnt-wifi-disable.service
[Unit]
Description=Disable WiFi Power Management
Requires=network-online.target
After=hostapd.service

[Service]
User=root
Group=root
Type=oneshot
ExecStart=/root/scripts/pwr-mgmnt-wifi-disable.sh

[Install]
WantedBy=multi-user.target

EOF

chmod 644 /etc/systemd/system/pwr-mgmnt-wifi-disable.service

systemctl enable pwr-mgmnt-wifi-disable.service
systemctl start pwr-mgmnt-wifi-disable.service

Если вы используете laptop-mode-tools, затем вы можете отключить беспроводное управление питанием, редактируя /etc/laptop-mode/conf.d/wireless-iwl-power.conf (Ubuntu 14.04):

# Control Intel IWL wireless power?
# Set to 0 to disable
CONTROL_IWL_POWER=0

Отличный совет. sudo iwconfig wlan0 power off, кажется, единственный способ обеспечить стабильную работу моего модуля ath9k (с ядром 3.2 - любопытно, что в ядре> 3.5 проблем не возникает, но с ядрами из-за проблем с приостановкой на ram/ диском К сожалению, amd64 не работает, к сожалению. . .:-()

Почему бы не открыть crontab и добавить команду при загрузке/перезагрузке. Это кажется самым простым и универсальным методом:

      sudo crontab -e

а затем добавить

      @reboot iwconfig wlan0 power off

Возможно, вам сначала нужно установить iwconfig: sudo apt install wireless-tools

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