Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Создать скрипт регулирующий мощность wi-fi при загрузке ноутбука  (Прочитано 871 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sven76

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Здравствуйте! Нужно создать скрипт который будет стартовать вместе с загрузкой ситемы и уменьшать мощность wi-fi.
Для этого создаю исполнительный файл /usr/sbin/my_wifi_power.sh
в файле скрипт устанавливающий мощность wi-fi в 5 мВт:
#!/bin/bash
ifconfig wlan0 down
iwconfig wlan0 txpower 5mW
ifconfig wlan0 up

Чтобы скрипт исполнялся при старте ситемы в файле конфигурации /etc/rc.local указываю, перед строчкой exit 0, путь  /usr/sbin/my_wifi_power.sh
 Теперь о проблеме. Если не делать запуск скрипта при загрузке системы, а запустить его в ручную то мощность с 23 dBm уменьшаеться до 7 dBm (сторчка Tx-Power при вызове команды iwconfig wlan0), значит скрипт работает. Однако нужно перезагрузить wi-fi сеть, иначе браузер не загружает страницы. Для это в Xubuntu щелкаю мышкой по значку wi-fi, нажимаю рядом со своей сетью остановить, потом нажимаю запустить, и сеть нормально работает. Можно ли модифицировать скрипт, чтобы не нужно было пререзапускать сеть в ручную?
 И ещё. Если указать загрузку скрипта при старте систем, то wi-fi вообще нету, даже не отображается список сетей. Как можно исправить ситуацию?
« Последнее редактирование: 10 Сентября 2015, 18:40:09 от sven76 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Ещё один любитель ковырять rc.local. Что, другого места не нашлось?
Пропиши это же самое в настройки драйвера.
Либо задействуй скрипты менеджера сети.
И учись читать логи. Там найдёшь ответ на вопрос "почему нету".
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sven76

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Настроил, может кому пригодится. В файле /etc/NetworkManager/dispatcher.d/01ifupdown указал путь к скрипту. Для наглядности привожу часть файла:

# Run the right scripts
case "$2" in
    up|vpn-up)
   export MODE="start"
   export PHASE="post-up"
#############################################
        /home/sven/my_wifi_power.sh         # путь к скрипту регулировки мощности wi-fi
#############################################
    exec run-parts /etc/network/if-up.d
   ;;
    down|vpn-down)
   export MODE="stop"

После загрузки из таблицы маршрутизации исчез default шлюз, поэтому пришлось добавить ещё одну команду в скрипт:

#!/bin/sh
ifconfig wlan0 down
iwconfig wlan0 txpower 5mW
ifconfig wlan0 up
route add default gw 192.168.1.1 wlan0

Теперь всё работает.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Незачем было ничего писать в /etc/NetworkManager/dispatcher.d/01ifupdown
Вы попросту сломали возможное будущее обновление пакета своими действиями.
Вам надо было прочитать файл, понять что он делает, а потом создать ваш скрипт в /etc/network/if-up.d, откуда он бы его радостно запустил.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sven76

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Этот вариант я тоже пробовал, но скрипт помещённый в каталог /etc/network/if-up.d не работает, мощность после загрузки не меняется.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Как назвали скрипт, был ли он исполнимым?…
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sven76

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Скрипт исполняемый, назвал my_wifi_power.sh     

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Вот потому и не выполнился.
man run-parts
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sven76

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
AnrDaemon спасибо за помощь.
Всё получилось. Нужно создать исполняемый скрипт /etc/network/if-up.d/mywifipower с соответствующими правами:
ls -l /etc/network/if-up.d/

-rwxr-xr-x 1 root root  549 Янв 18  2013 000resolvconf
-rwxr-xr-x 1 root root  881 Дек 30  2013 avahi-autoipd
-rwxr-xr-x 1 root root  484 Дек 30  2013 avahi-daemon
-rwxr-xr-x 1 root root 1675 Янв 28  2014 ethtool
-rwxr-xr-x 1 root root  117 Сен 14 23:00 mywifipower
-rwxr-xr-x 1 root root 1298 Апр  3  2013 ntpdate
-rwxr-xr-x 1 root root 1483 Янв  6  2013 upstart

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Я бы на вашем месте в скрипте проверял, какой интерфейс дёргается.
А то вы на каждый подъём любого интерфейса передёргиваете wifi.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.248 секунд. Запросов: 25.