Как я могу предотвратить включение управления питанием 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
Чем сделать постоянную команду запуска следующим образом:
cd /etc/pm/power.d
sudo gedit wifi_pwr_off
Откроется пустой файл, скопируйте в него код ниже:
#!/bin/sh /sbin/iwconfig wlan0 power off
Сохраните файл, не забудьте
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