Alterar o tipo para forking em vez de dbus funcionou para mim:
[Service]
Type=forking
Eu tenho um comportamento estranho que não posso consertar sozinho. Estou executando um Raspbian Stretch Lite em um RPi2. Como dongle WiFi eu uso um Realtek RTL8188EU (drivers são de diretório temporário).
Por padrão, ele cria a interface wlan0, mas não tenta se conectar ao ponto de acesso. A configuração está correta porque um dongle WiFi diferente funciona bem.
Aqui, meu arquivo /etc/wpa_supplicant/wpa_supplicant.conf
:
country=IT
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1
update_config=1
network={
ssid="ssid"
scan_ssid=1
psk="password"
key_mgmt=WPA-PSK
}
Depois de muitos testes, encontrei um comando de trabalho:
wpa_supplicant -u -Dwext,nl80211 -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
A emissão deste comando a partir do console leva ao comportamento esperado (ou seja, ele se conecta ao AP). Mas se eu colocar essa linha no serviço systemd:
$ cat /etc/systemd/system/multi-user.target.wants/wpa_supplicant.service
[Unit]
Description=WPA supplicant
Before=network.target
After=dbus.service
Wants=network.target
[Service]
Type=dbus
BusName=fi.epitest.hostap.WPASupplicant
#ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
ExecStart=/sbin/wpa_supplicant -u -Dwext,nl80211 -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B
[Install]
WantedBy=multi-user.target
Alias=dbus-fi.epitest.hostap.WPASupplicant.service
não funciona, quero dizer que não se conecta. Mesmo se eu manualmente (re) iniciar o serviço systemd.
O que pode impedir o comportamento correto ao iniciar o mesmo comando do systemd?
A propósito, se puder ajudar, mesmo quando ele funcionar (após a emissão manual do comando do console), o comando iw list
não produzirá nada.
Alterar o tipo para forking em vez de dbus funcionou para mim:
[Service]
Type=forking