Здравствуйте! Я использую trisquel (ubuntu), нужно настроить wifi с wpa_supplicant, вместо NetworkManager (который хранит пароль вместо хеша, как wpa_supplicant).
1) Я отключил в systemd сервис NetworkManager.
2) Скнофигурировал и успешно подключился к Интернету через wpa_supplicant & dhclient
# cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/run/wpa_supplicant
ctrl_interface_group=0
update_config=1
network={
ssid="homewifi"
scan_ssid=1
proto=WPA2
key_mgmt=WPA-PSK
psk=hashmyhash
}
# ifconfig wlp2s0 up
# wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf
# dhclient wlp2s0 &
# ping fsf.org
..пингуется, интернет есть..
3) Написал systemd юниты для dbus, но работает только 1 wpa-pre.service
# cat /lib/systemd/system/wpa-pre.service
[Unit]
Description=Raise wlp2s0
DefaultDependencies=no
After=local-fs.target apparmor.service systemd-sysctl.service systemd-modules-load.service
Before=wpa_supplicant.service wpa-post.service
[Install]
WantedBy=multi-user.target
[Service]
Type=oneshot
ExecStart=/sbin/ifconfig wlp2s0 up
# cat /lib/systemd/system/wpa_supplicant.service
[Unit]
Description=WPA supplicant (wlp2s0)
#Wants=network.target
After=wpa-pre.service dbus.service
Before=wpa-post.service
[Service]
Type=dbus
#Type=oneshot
BusName=fi.epitest.hostap.WPASupplicant
#ExecStart=/sbin/ifconfig wlp2s0 up
ExecStart=/sbin/wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf
#ExecStart=/sbin/dhclient wlp2s0
[Install]
WantedBy=multi-user.target
Alias=dbus-fi.epitest.hostap.WPASupplicant.service
# cat /lib/systemd/system/wpa-post.service
[Unit]
Description=Dhclient (wlp2s0)
#Wants=network.target
After=wpa-pre.service wpa_supplicant.service
[Service]
Type=dbus
#Type=oneshot
#BusName=fi.epitest.hostap.WPASupplicant
BusName=fi.epitest.hostap.wpapost
#ExecStart=/sbin/ifconfig wlp2s0 up
#ExecStart=/sbin/wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf
ExecStart=/sbin/dhclient wlp2s0
[Install]
WantedBy=multi-user.target
Alias=dbus-fi.epitest.hostap.wpapost.service
# reboot
# ifconfig
lo ...
wlp2s0 Link encap:Ethernet HWaddr xx:xx:xx:xx
UP BROADCAST MULTICAST MTU:1500 Metric:1
...
..интерфейс поднят...
# systemctl status wpa_supplicant.service
● wpa_supplicant.service - WPA supplicant (wlp2s0)
Loaded: loaded (/lib/systemd/system/wpa_supplicant.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Вс 2018-08-26 09:18:19 MSK; 1min 15s ago
Process: 906 ExecStart=/sbin/wpa_supplicant -B -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf (code=exited
Main PID: 906 (code=exited, status=0/SUCCESS)
авг 26 09:18:19 me systemd[1]: Starting WPA supplicant (wlp2s0)...
авг 26 09:18:19 me wpa_supplicant[906]: Successfully initialized wpa_supplicant
авг 26 09:18:19 me systemd[1]: Started WPA supplicant (wlp2s0).
...wpa_supplicant не работает или отрабатывает и отключается...
# systemctl status wpa-post.service
● wpa-post.service - Dhclient (wlp2s0)
Loaded: loaded (/lib/systemd/system/wpa-post.service; enabled; vendor preset: enabled)
Active: failed (Result: timeout) since Вс 2018-08-26 09:19:49 MSK; 57s ago
Process: 963 ExecStart=/sbin/dhclient wlp2s0 (code=killed, signal=TERM)
Main PID: 963 (code=killed, signal=TERM)
авг 26 09:18:49 me dhclient[963]: DHCPDISCOVER on wlp2s0 to 255.255.255.255 port 67 interval 14 (xid=0x8b6a592f)
авг 26 09:19:03 me dhclient[963]: DHCPDISCOVER on wlp2s0 to 255.255.255.255 port 67 interval 7 (xid=0x8b6a592f)
авг 26 09:19:10 me dhclient[963]: DHCPDISCOVER on wlp2s0 to 255.255.255.255 port 67 interval 7 (xid=0x8b6a592f)
авг 26 09:19:17 me dhclient[963]: DHCPDISCOVER on wlp2s0 to 255.255.255.255 port 67 interval 16 (xid=0x8b6a592f)
авг 26 09:19:33 me dhclient[963]: DHCPDISCOVER on wlp2s0 to 255.255.255.255 port 67 interval 16 (xid=0x8b6a592f)
авг 26 09:19:49 me dhclient[963]: DHCPDISCOVER on wlp2s0 to 255.255.255.255 port 67 interval 17 (xid=0x8b6a592f)
авг 26 09:19:49 me systemd[1]: wpa-post.service: Start operation timed out. Terminating.
авг 26 09:19:49 me systemd[1]: Failed to start Dhclient (wlp2s0).
авг 26 09:19:49 me systemd[1]: wpa-post.service: Unit entered failed state.
авг 26 09:19:49 me systemd[1]: wpa-post.service: Failed with result 'timeout'.
Как я понял, есть типы юнитов Oneshot - которые отрабатывают один раз, и Dbus - которые продолжают работать после запуска. Но не получается.
BusName=fi.epitest.hostap.WPASupplicant
- непонятно, просто это скопировано из интернета
Alias=dbus-fi.epitest.hostap.WPASupplicant.service
- просто скопировано
BusName=fi.epitest.hostap.wpapost
- по аналогии с wpa_supplicant сделал юнит для dhclient
Как правильно настроить unit wpa_supplicant.service и wpa-post.service с запуском dhclient?