Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] systemd und wpa_supplicant mit fester IP  (Read 1786 times)

Offline Geier0815

  • User
  • Posts: 588
[DE] systemd und wpa_supplicant mit fester IP
« on: 2014/07/16, 23:32:50 »
Moin Moin,

nach dem Einbau einer WIFI-Karte und der Konfiguration von wpa_supplicant mit passenden Eintrag in der /etc/network/interfaces kam das device nach einem reboot nicht hoch. Erst ein "ifup wlan0" als root hat es zum Leben erweckt. journalctl lieferte keine wirklichen Erkenntnisse. Also ein bißchen gesucht und im arch-wiki fündig geworden wie man systemd und wpa_supplicant zusammen bringt. Da einige Pfade unter debian anders sind hier eine kurze Anleitung falls noch jemand das brauchen kann:

Als erstes eine /etc/wpa_supplicant/wpa_supplicant.conf anlegen, ssid und psk selbstverständlich anpassen:
Code: [Select]
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="NETZ-NAME"
    psk="STRENGSKY-GEHEIMSKY"
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    auth_alg=OPEN
}

Dann in /etc/network eine network-wireless@wlan0 anlegen, IPs müßt ihr an eure Gegebenheiten anpassen
Code: [Select]
address=192.168.1.2
netmask=24
broadcast=192.168.1.255
gateway=192.168.1.1

und zu guter Letzt unter /etc/systemd/system eine network-wireless@.service bauen
Code: [Select]
[Unit]
Description=Wireless network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/network/network-wireless@%i

ExecStart=/sbin/ip link set dev %i up
ExecStart=/sbin/wpa_supplicant -B -i %i -c /etc/wpa_supplicant/wpa_supplicant.conf
ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/sbin/ip route add default via ${gateway}

ExecStop=/sbin/ip addr flush dev %i
ExecStop=/sbin/ip link set dev %i down

[Install]
WantedBy=multi-user.target

Nun noch
Code: [Select]
systemctl enable network-wireless@wlan0.service
systemctl start network-wireless@wlan0.service

und et voila wlan0 kommt nach einem reboot sauber hoch. Wer mit einem network-manager arbeitet, kann sich solche Verrenkungen selbstverständlich sparen. Da der Rechner stationär steht, weiß ich nicht wie gut das Ganze funktioniert wenn man mehrere network-einträge in der wpa_supplicant.conf drin hat. Evtl wäre auch /etc/network/interfaces.d/ der "richtigere" Ort für die network-wireless@wlan0, da weiß ich nicht wie die Konventionen sind.
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?