Group,

After I finally, painfully, figured this out and can get the wifi to reconnect when the SSID radio goes down then comes back up. So I am running and I notice a lot of log spam where it is now scanning the ethernet port even though the wifi is connected. I believe this is because I now have 'BackgroundScanning=true' and have the default of 'SingleConnectedTechnology = false'.
I have a question, though, would it be reasonable if the BackgroundScanning flag could be  = true,ethernet,wifi,bluetooth as opposed to just = true,false? I ask as I can imagine that there would be a situation where a user would want the bt or wifi to scan if it became disconnected, but the ethernet port can be easily unplugged/replugged to trigger a reconnection...

Keith

On Fri, Oct 2, 2020 at 1:08 PM KeithG <ys3al35l@gmail.com> wrote:
Daniel,

I finally figured it out. With connman 1.38, I get it to reconnect if I down the interface *and* if I reboot the router.

What I noticed when looking at the logs was that after the disconnect, nothing was telling iwd to reconnect. iwd wasn't nor was connman. it just sat there. I looked again at the /etc/connman/main.conf and noticed that there was a setting:
BackgroundScanning = true

I uncommented this line and now it manages the interface as designed. I do not know why it took me so long to figure this out, but it now connects. Does this mean it always periodically scans? If so, it may be nice to only do this if it is not connected.

Thanks for your patience with me.

Keith

On Thu, Oct 1, 2020 at 7:27 PM KeithG <ys3al35l@gmail.com> wrote:
Daniel et al

Still at this. I gave up on the RPI for now and am working on 2 laptops with full blown Arch desktop. One laptop has a broadcom card and the other an intel. I get the same result on both. If I let NetworkManager/iwd manage the network the laptops reconnect as soon as the SSID reappears. Same if I let systemd-networkd control it. If I let connman manage the network, though, it will never reconnect to the SSID. This is with connman 1.37 and 1.38. and 1.38.r21. If I turn off the interface: 'ifconfig wlan0 down' then back 'up', the laptop disconnects then reconnects immediately. If I turn off the radio on the router, though, it never reconnects by itself. If I type 'connmanctl services' I get a single service listed as opposed to a list of a bunch of SSIDs. If I wait, it sometimes will eventually populate that list and even list the 'known network' but will not connect. On these laptops, I have been able to get it to reconnect if I type 'iwctl station wlan0 scan' as well. If this does not work, it will connect if I bring the interface down then back up.

The attached logs are simultaneous from a 'connected on the wlan' state. From here I powered down the radio on the router then powered it back up. From the logs, it looks like it disconnects then ceases scanning. It waited in this state for many minutes (15?) As soon as I typed 'iwctl station wlan0 scan' it connects and I am back online.Which component is supposed to initiate the scan when it is offline? This was on the laptop with the broadcom card and no ethernet conneccted.

The Arch package is built according to this package:

Keith




On Thu, Oct 1, 2020 at 2:29 AM Daniel Wagner <wagi@monom.org> wrote:
On Wed, Sep 30, 2020 at 08:40:28PM -0500, KeithG wrote:
> I am at a loss as to how to help resolve this and really want to help get
> it resolved.
> It appears that connman1.38 will initiate a scan via 'connmanctl scan wifi'
> even though it does not report that it has scanned. The git version
> (1.38.r23) will report on the cli that it has scanned. So, that is an
> improvement.

6b391cfd294d ("iwd: Synchronize station scanning property with scan
state") fixed this. Please next time if something doesn't work update
first to the development version to replicate the problem. This avoids
wasting time for everyone.

> If I use either 1.38 (the current Arch Linux package) or build it from git,
> I cannot ge tthe Rpi or my laptop to reconnect when the ssid is rebooted
> even though the 'services' for the SSID
> show that it is 'autoconnect' and monitor-connman shows that is 'ses' it.
> Is there some main.conf setting that I have wrong?
>
> main.conf:
> FallbackNameservers = 8.8.8.8,8.8.4.4
> DefaultAutoConnectTechnologies = ethernet,wifi
> AllowHostnameUpdates = false
> AlwaysConnectedTechnologies = ethernet,wifi
> AutoConnectRoamingServices = true
>
> As I said previously, the only modifications to the build of the connman
> package under Arch are that it adds that dbus 'Agent' bits and also that it
> deletes the tmpfiles.d in the package that calls out a /var/run directory
> because Arch uses /run/. Other than that it is built under Arch as it is
> called out in the git to be built.

This should be fine. Don't think this is a problem.

> From my testing, ./monitor-connman seems to 'see' the ssid return, but will
> not reconnect after the router is rebooted.
>
> If I use systemd-networkd and iwd, it reconnects every time. With connman
> and iwd, I get no reconnect over a reboot.

I've redone my test with

  AlwaysConnectedTechnologies = ethernet,wifi
  SingleConnectedTechnology = false

and pulling the ethernet cable and disabling/enabling the wifi
network. ConnMan reconnected to both networks.