rfkill

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
f0b
Сообщения: 77

rfkill

Сообщение f0b »

Привет!

Есть:
Утилитка rfkill, которую нужно использовать каждый раз после перезагрузки для включения wifi и bluetooth.

Как надо:
При включении ноутбука wifi и bluetooth должны быть включены, но при необходимости хард клавишей погасить или поднять снова.

Система Salckware 14.1. Не могу найти\понять где эта утилита настраиватся и как ей задать необходимый алгоритм. Возможно, я не там ищу?

Спасибо.

в этом мире все относительно...
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1348

Re: rfkill

Сообщение bormant »

Если что-то нужно выполнить при загрузке, например
rfkill unblock 0
rfkill unblock 1
можно вписать это в /etc/rc.d/rc.local. rfkill это не сервис, это команда, меняющая состояния программной блокировки устройства.
Включение/выключение устройства хард-клавишей зависит от наличия соответствующего обработчика на уровне acpi или обработки клавиш иными механизмами.
Кстати, что говорит
rfkill list
на старте, а также как меняется его вывод при использовании хард клавиш?

В состояние программной блокировки может вмешиваться NetworkManager, по крайней мере в части WIFi устройства.
Спасибо сказали:

Аватара пользователя
f0b
Сообщения: 77

Re: rfkill

Сообщение f0b »

bormant писал(а):
12.11.2013 15:43
Кстати, что говорит
rfkill list
на старте,

Код: Выделить всё

# rfkill list
0: hp-wifi: Wireless LAN
    Soft blocked: yes
    Hard blocked: no
1: hp-bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: no
2: hp-gps: GPS
    Soft blocked: yes
    Hard blocked: yes
3: phy0: Wireless LAN
    Soft blocked: yes
    Hard blocked: no

а также как меняется его вывод при использовании хард клавиш?

Код: Выделить всё

# rfkill list
0: hp-wifi: Wireless LAN
    Soft blocked: yes
    Hard blocked: yes
1: hp-bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: yes
2: hp-gps: GPS
    Soft blocked: yes
    Hard blocked: yes


Хард-клавиша одна на wifi и bluetooth. Значит, она во включенном состоянии при запуске системы, т.е.
Если что-то нужно выполнить при загрузке, например
rfkill unblock 0
rfkill unblock 1
можно вписать это в /etc/rc.d/rc.local
?
в этом мире все относительно...
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1348

Re: rfkill

Сообщение bormant »

Разрешаю ;-) вписывайте.
rc.local выполняется последним в череде сценариев инициализации.
Однако, это не гарантирует того, что кто-то ещё (не будем показывать пальцем, хотя все догадались, что речь о NetworkManager или даже udev) может позже это состояние поменять. Но нужно ведь с чего-то начинать, правда?
Спасибо сказали:

Аватара пользователя
f0b
Сообщения: 77

Re: rfkill

Сообщение f0b »

bormant писал(а):
13.11.2013 17:08
Разрешаю ;-) вписывайте.
rc.local выполняется последним в череде сценариев инициализации.
Однако, это не гарантирует того, что кто-то ещё (не будем показывать пальцем, хотя все догадались, что речь о NetworkManager или даже udev) может позже это состояние поменять. Но нужно ведь с чего-то начинать, правда?

каэш )
в этом мире все относительно...
Спасибо сказали:

Аватара пользователя
f0b
Сообщения: 77

Re: rfkill

Сообщение f0b »

bormant писал(а):
13.11.2013 17:08
Однако, это не гарантирует того, что кто-то ещё (не будем показывать пальцем, хотя все догадались, что речь о NetworkManager или даже udev) может позже это состояние поменять.

Так и есть, при перезагрузке системы устройства блокируются, но rc.local срабатывает, когда это уже не нужно, ведь получение адреса от dhcp происходит на заблокированной карточке. :)


P.S. NM не пользуюсь. Сетевые настройки в rc.inet1.conf.
в этом мире все относительно...
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1348

Re: rfkill

Сообщение bormant »

Пропишите вызов в /etc/rc.d/rc.netdev, он вызывается как раз перед настройкой сети.
Спасибо сказали:

Аватара пользователя
f0b
Сообщения: 77

Re: rfkill

Сообщение f0b »

bormant писал(а):
14.11.2013 20:08
Пропишите вызов в /etc/rc.d/rc.netdev, он вызывается как раз перед настройкой сети.

Такого файла не нашел. Создал, прописал, сделал исполняемым - не работает... (
в этом мире все относительно...
Спасибо сказали:

Аватара пользователя
bormant
Сообщения: 1348

Re: rfkill

Сообщение bormant »

"Не работает" -- это я вас чуть обманул (на самом деле писал по памяти и спутал с параметром _netdev из fstab), но и вы, согласитесь, не проявили должной инициативы.

В качестве извинений за допущенную ошибку немного текста ниже.

grep -R rc\\.netdev /etc/rc.d/
без сомнения мог "сорвать покровы" и указать на /etc/rc.modules, который обычно симлинк на /etc/rc.d/rc.modules-$(uname -r), в котором, в свою очередь:

Код: Выделить всё

\
# First, if setup probing found a network card, there may be an 'rc.netdevice'
# file that we should run to load the network module:
if [ -x /etc/rc.d/rc.netdevice ]; then
  . /etc/rc.d/rc.netdevice
fi
Сам rc.modules вызывается из /etc/rc.d/rc.S:

Код: Выделить всё

# Priority is given first to a script named "rc.modules.local", then
# to "rc.modules-$FULL_KERNEL_VERSION", and finally to the plain "rc.modules".
# Note that if /etc/rc.d/rc.modules.local is found, then that will be the ONLY
# rc.modules script the machine will run, so make sure it has everything in
# it that you need.
if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules.local:"
  /bin/sh /etc/rc.d/rc.modules.local
elif [ -x /etc/rc.d/rc.modules-$(uname -r) -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules-$(uname -r):"
  . /etc/rc.d/rc.modules-$(uname -r)
elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules -a -L /etc/rc.d/rc.modules ]; then
  echo "Running /etc/rc.d/rc.modules -> $(readlink /etc/rc.d/rc.modules):"
  . /etc/rc.d/rc.modules
elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules:"
  . /etc/rc.d/rc.modules
fi
Ну а /etc/rc.d/rc.S вызывается init-ом на single уровне выполнения (см. /etc/inittab).

Вполне может оказаться, что rc.netdevice ещё слишком рано для rfkill, попробуйте, расскажете.
Спасибо сказали:

Аватара пользователя
f0b
Сообщения: 77

Re: rfkill

Сообщение f0b »

bormant писал(а):
15.11.2013 18:09
но и вы, согласитесь, не проявили должной инициативы.


я просто не успел этого сделать ))

bormant писал(а):
15.11.2013 18:09
Вполне может оказаться, что rc.netdevice ещё слишком рано для rfkill, попробуйте, расскажете.


вполне вовремя, устройства включаются при загрузке до присвоения IP-адреса.

такой "сюрприз" с беспроводными устройствами из-за нового ядра?
в этом мире все относительно...
Спасибо сказали: