Как отсоединить беспроводной интерфейс от точки доступа? - PullRequest
0 голосов
/ 21 октября 2008

Я пытаюсь сделать скрипт, который спит моя беспроводная карта в Linux. Для этого я использую deepsleep команду iwpriv:

iwpriv wlan0 deepsleep 1

Проблема в том, что эта команда работает, только если беспроводная карта отключена и отсоединена. Когда он подключен, проблем нет, потому что, если я отключаюсь, он автоматически отключается. Но если он отключен, иногда он автоматически связывается (но не подключается) с незашифрованными сетями, поэтому я не могу выполнить команду iwpriv. Единственное исправление, которое я нашел, - это сначала изменить режим на Ad-Hoc, а затем на Managed перед сном карты:

iwconfig wlan0 mode ad-hoc
iwconfig wlan0 mode managed
iwpriv wlan0 deepsleep 1

Но я думаю, что это немного сложно.

Существует ли более прямой способ отсоединения беспроводной карты в Linux?

Ответы [ 3 ]

1 голос
/ 29 ноября 2008

Многие драйверы используют соглашение, согласно которому связывание с NULL AP отключается от текущей AP. Добавьте к этому небольшую задержку, и вы можете получить то, что хотите. Например,

iwconfig wlan0 ap 00:00:00:00:00:00
sleep 1
iwpriv wlan0 deepsleep 1

Как правило, для отключения от точки доступа не требуется более 250-500 миллисекунд, но команда фракционного сна (например, сон 0.25) не переносима.

0 голосов
/ 21 октября 2008

Разве это не разобщится, если вы выполните ifconfig wlan0 down?

0 голосов
/ 21 октября 2008

У меня нет исправления, но вы можете попробовать установить ESSID карты в произвольную строку и надеяться, что ни одна точка доступа поблизости не использует этот ESSID. Это должно предотвратить автоматическое подключение к любой найденной незашифрованной сети. Не решение, но, возможно, лучший лейкопластырь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...