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
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-----------------------5e7917237d76c7dc16f6a97bdd813965
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
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 292 |
Nodes: | 16 (2 / 14) |
Uptime: | 208:56:26 |
Calls: | 6,618 |
Files: | 12,168 |
Messages: | 5,317,117 |