Open CyrilBrulebois opened 2 months ago
We decided to get rid of dhcpcd
which seems to be the cause for some issues (having competing daemons managing the network), without waiting on the introduction of the pirogue-admin
component,
While working on it, it was spotted that dhcpcd
's being stopped would lead to wlan0
's getting deconfigured. That means the PiRogue, after a full dist-upgrade
(during which it's not expected to be fully functional), would stay unusable until a reboot (or some manual steps).
On the short term, I'm adding code to ensure the configuration is here, using an hardcoded and unconditional ip address add
call.
If we wanted to maintain the initial status quo (almost everything set up, except packet forwarding), we should move that ip address add
call outside the if
block, so that wlan0
is configured (as it was when dhcpcd
was installed, configured, and running).
Data point: with the virogue
approach, everything seems to be functional on Pi 4 and Pi 5 as soon as pirogue-base
is configured (at the very end of the installation process), as it uses pirogue-admin
now, to set the configuration based on autodetection results.
At the moment, we advertise the following steps:
pirogue-base
Given some user reports, it seems that maybe some of them might have been issued before the reboot.
Having checked what happens with the 2.1.0 release (on Pi 3, 4, and 5), the state is as follows:
dhcpcd
is started, andwlan0
is configured as10.8.0.1/24
;hostapd
is started;ip_forward
sysctl parameter is not enabled, and phones would report “No internet connection” after joining the PTS SSID and getting configured through DHCP.The last part is easily explained: a snippet is shipped in the relevant directory, but those settings are not reloaded (e.g. via
systemctl restart systemd-sysctl
).I'm not sure we want to change the status quo at this point: rebooting is of course the easiest way to make sure all components are started with a proper configuration. This is going to be revisited with the upcoming switch to
pirogue-admin
as a central way to configure all components.