LINUX.ORG.RU
ФорумAdmin

hostapd: по отдельности всё стартует...

 ,


0

1

Сделал из старого ноута точку доступа для раздачи инета с 3g свистка. Проблема с wifi: не могу настроить чтобы всё поднималось со стартом системы.

1) netcfg поднимается первым и тут же падает потому что в системе нет wlan0 (??). Видимо wlan0 появляется с некоторым опозданием. Добавлял через systemctl enable netcfg@wlan0. BTW, в конфиге интерфейс как ethernet указывал, иначе оно сразу после подъёма пытается цепляться к открытым точкам доступа. Да ещё и с NOCARRIER=yes, но это уже мелочи.

2) hostapd: поднимается и тут же падает потому что wlan0 опущен (netcfg-то не смог поднять интерфейс).

Что делать? Неужели свои юниты писать? Проблема осложняется тем что netcfg только недавно научился ждать отдельных девайсов: https://github.com/brain0/netcfg/blob/working/systemd/net-auto-wireless@.service . В общем, похоже, стартовые скрипты пилить и пилить.

пока как-то так....

#/etc/systemd/system/wlan0-up.service

[Unit]
Description=start wlan0
After=sys-subsystem-net-devices-wlan0.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/sleep 2
ExecStart=/sbin/ip link set wlan0 up
ExecStart=/sbin/ip a add 192.168.0.1/24 dev wlan0
ExecStop=/sbin/ip link set wlan0 down

[Install]
WantedBy=network.target
WantedBy=dnsmasq.service
WantedBy=hostapd.service

true_admin ★★★★★ ()

Бм, да вроде все логично делаешь.
Системд это конечно..
А если интерфейсы простым тем же ifconfig'ом поднимать или обязательно хочется сделать как красивей?
В дебиан это происходит так:
wlan0 описывается в /etc/network/interfaces
Запускаются hostapd и dnsmasq
Применяется правило iptables

anonymous_sama ★★★★★ ()

Немного оффтопа...

В бубунте 10.04 была полная жопа с зависимостями сервисов от сетевых интерфейсов. В 12.04 вроде более-менее выпрямили...

Deleted ()
Ответ на: комментарий от anonymous_sama

А если интерфейсы простым тем же ifconfig'ом поднимать

В итоге так и сделал. Пока единственный вопрос который мучает это как понять что wlan0 появился в системе. Вроде как через After=sys-subsystem-net-devices-wlan0.device, но без sleep 2 оно не поднимается у меня. Зато я нашёл свежий баг на эту тему, он уже пофикшен, осталось ждать новых релизов systemd и netcfg.

В общем, systemd я разлюбил.

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

Вроде как через After=sys-subsystem-net-devices-wlan0.device, но без sleep 2 оно не поднимается у меня

Даже не знаю, это слишком systemd спефично для меня. Помню что еще давно приходилось делать костыли вида поднял интерфейс-упустил интерфейс-поднял интерфейс, всякие проверки на bash, поднимать роуты в определенном порядке от фазы луны. Но сейчас везде dhcp, и роуты добавляются сами в 98% случаях, defaultroute встают правильно, все делается без участия или с минимальным участием, для пользователей работает nm, который кстати уже начал спокойно и беспроводные сети с шифрованием поднимать, а не только открытые.
Короче даже не знаю.

единственный вопрос который мучает это как понять что wlan0 появился в системе

Очевидно же, он либо появился либо не появился :3

anonymous_sama ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.