Bonjour à tous, J'utilise des rPI 3 comme point d'accès WiFi. Cela fonctionne bien, mais depuis la dernière mise à jour de Debian, il y a comme un problème lors du démarrage et je suis contraint de démarrer les services à la main. Ça m'amuse cinq minutes, pas plus... :-(
Jusqu'ici, ces machines utilisaient un script rc.local qui n'est plus appelé. Ce script se terminait pas : rfkill unblock 0 ifup wlan0 iptables-legacy -t nat -A POSTROUTING -s 192.168.11.0/24 -j MASQUERADE dhcpd exit 0 Aujourd'hui, lorsque je démarre un rPI, je me retrouve avec une interface wlan0 qui est bloquée par défaut (soft) : root@abel:~# rfkill ID TYPE DEVICE SOFT HARD 0 wlan phy0 blocked unblocked 1 bluetooth hci0 blocked unblocked root@abel:~# Là, je ne comprends pas. L'interface est _toujours_ active lors de l'extinction et systemd.restore_state vaut par défaut 1. Si je lance successivement : rfkill unblock 0 ifup wlan0 hostapd -B -P /run/hostapd.pid /etc/hostapd/hostapd.conf dhcpd je récupère une borne WiFi fonctionnelle. J'ai donc écrit dans /etc/systemd/system les choses suivantes : root@abel:/etc/systemd/system# cat rfkill.service [Unit] Description=rfkill Before=ifup@wlan0.service After=systemd-rfkill [Service] Type=oneshot ExecStart=/usr/sbin/rfkill unblock 0 [Install] WantedBy=network.target root@abel:/etc/systemd/system# cat route.service [Unit] Description=Wlan route After=networking.service [Service] Type=oneshot ExecStart=/usr/sbin/iptables-legacy -t nat -A POSTROUTING -s 192.168.11.0/24 -j MASQUERADE [Install] WantedBy=network.target root@abel:/etc/systemd/system# cat dhcpd.service [Unit] Description=dhcpd After=route.service [Service] Type=forking ExecStart=/usr/sbin/dhcpd [Install] WantedBy=network.target Si route.service et dhcpd.service sont appelés, pas moyen que rfkill.service soit appelé au bon moment. Il faut pourtant qu'il soit appelé _après_ systemd-rfkill (qui merdoie) et avant que l'interface wlan0 soit montée par ifup.service. Lors du démarrage, systemd provoque un timeout sur rfkill.service et merdoie sur hostapd.service (là, ce n'est pas un timeout, mais des lancements de hostapd en boucle parce que wlan0 n'existe pas). Une idée pour corriger la chose, parce que je ne comprends pas trop. Bien cordialement, JKB