Как автоматически запустить wpa_supplicant при запуске Debian

Как автоматически запустить wpa_supplicant при запуске Debian

Я хотел бы запустить wpa_supplicant -D wext -i wlan0 -c /etc/wpa_supplicant.confпри запуске Debian (уровни запуска 2-5). Я нашел некоторые расплывчатые инструкции из связанного вопроса, в котором говорилось, что нужно поместить скрипт /etc/init.d/и затем создать на него символическую ссылку из соответствующих /etc/rcRUNLEVEL.d/каталогов. Однако я заметил, что уже есть некоторые файлы с именем "wpasupplicant", которые, вероятно, запускаются при запуске:

/etc/network/if-down.d/wpasupplicant

/etc/network/if-post-down.d/wpasupplicant

/etc/network/if-pre-up.d/wpasupplicant

/etc/network/if-up.d/wpasupplicant

Все они являются символическими ссылками на один и тот же скрипт, /etc/wpa_supplicant/ifupdown.sh. В начале есть комментарий, в котором говорится, что он "[...] позволяет ifup(8) и ifdown(8) управлять процессами wpa_supplicant(8) и wpa_cli(8), работающими в режиме демона". Однако ближе всего к вызову wpa_supplicantсамого себя он подходит так (в functions.sh):

WPA_SUP_BIN="/sbin/wpa_supplicant"
[snip]
start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \
    --name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \
    -- $WPA_SUP_OPTIONS $WPA_SUP_CONF
[snip]
start-stop-daemon --stop --oknodo $DAEMON_VERBOSITY \
    --exec $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE

Означает ли это, что можно безопасно создать скрипт init.d для wpa_supplicant, и если да, то как он будет выглядеть?

Главная информация:

  • Debian Сжатие (5.0)
  • официальный пакет wpasupplicant (v0.6.10-2.1)

Полное содержимое моей системы functions.shи ifupdown.shнаходится здесь (конечно, в зависимости от времени безотказной работы моей системы — это пятилетний ноутбук, который очень любит перегреваться):

функции.sh

ifupdown.sh

решение1

Если ваша цель — настроить беспроводной интерфейс при запуске (а не помещать команду wpa_supplicantв скрипт по другим причинам), вы можете использовать /etc/network/interfacesи сгенерировать обычный файл конфигурации wpa_passphraseдля достижения этого результата.

В /etc/network/interfaces(предполагается, wlan0что это ваш беспроводной интерфейс и конфигурация wpa_passphraseнаходится в /root/your-wpa.conf):

allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-conf /root/your-wpa.conf

В моей системе в начале строки "wpa-conf" стоит табуляция (не пробелы). Возникли проблемы с вводом табуляции для веба при вводе этого ответа. Не уверен, имеет ли это значение.

Мне не нужно было ничего редактировать или делать с файлом WPA conf. Это то, что я получаю от команды

wpa_passphrase myssid mysecret >wpa.conf

ВидетьКак использовать интерфейс WiFiна Debian.org и /usr/share/doc/wpasupplicant/README.wpa_supplicant.conf.gzлокально.

Я проверил это на Джесси, и у меня больше не осталось систем Squeeze, но я полагаю, что вы обновили их за 4 года с момента, как задали вопрос.

решение2

Отредактируйте файл wpa_supplicant.conf и добавьте его в /etc/network/interfaces

http://wiki.debian.org/WPA#Why.3F

Связанный контент