Send connman mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.01.org/mailman/listinfo/connman
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."
Today's Topics:
1. Re: Error "wifi: No carrier" only to connman (Jun Nie)
2. Re: Error "wifi: No carrier" only to connman (Daniel Wagner)
3. Re: Stale Wifi service and network not being destroyed?
(Henrik Persson)
4. Re: disconnect_code == 1 from wpa_s results in wrong state in
wifi tech (Henrik Persson)
----------------------------------------------------------------------
Message: 1
Date: Mon, 11 Mar 2019 16:41:53 +0800
From: Jun Nie <[email protected]>
To: Daniel Wagner <[email protected]>
Cc: connman <[email protected]>
Subject: Re: Error "wifi: No carrier" only to connman
Message-ID:
<CABymUCNXk0JY--4QU-DesJ=5eamdjte1oq4odgdwnfgy1cb...@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Daniel Wagner <[email protected]> ?2019?3?7??? ??4:07???
>
> On 07.03.19 05:16, Jun Nie wrote:
> >> At least wpa_s is well known to be buggy, so the simplest thing is to
> >> swap wpa_s with a newer or older version and see if you get a different
> >> behavior.
> >
> > I switch wpa_s version from 2.7 to 2.6, I still see the bug. 2.5 fail
> > to pass build on yocto. Then I swith dbus_1.12.10 to dbus_1.12.8,
> > still see the bug. So I guess it is not due to version issue. I am
> > working on IMX7D platform, while on another IMX8 platform with same
> > user space software, this bug is observed. I am not sure whether it
> > due to any configuration of wpa_s or dbus?
>
> I don't think this is D-Bus related. Well, at least we know now for sure :)
>
> What WiFi chip is used on the IMX7D and IMX8 platform? Is it the same or
> a different one? Also which kernel version are you using? Is it one of
> those infamous Freescale kernels?
Both boards have QCA chip and share the same driver. Kernel version is
4.14.103. There
is some NXP patches based on 4.14.103 commit. But I do not think this
issue is due to kernel
or driver issue because iwlist command works well when connmanctl has issue.
I did not finish porting iwd to my yocto platform yet due to ell
version issue. But I just find that WiFi works OK on boot up if I
specify a settings file instead of depends on connman to generate it.
Do you have any idea?
+[global]
+OfflineMode=false
+
+[WiFi]
+Enable=true
+Tethering=false
+
+[Bluetooth]
+Enable=true
+Tethering=false
+
+[Wired]
+Enable=true
+Tethering=false
Jun
>
> In case the driver is buggy you could try to monitor the interaction
> between wpa_supplicant and the kernel using iwmon:
>
> https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/README#n182
>
> So we or better you a just debugging one layer lower now :)
------------------------------
Message: 2
Date: Mon, 11 Mar 2019 09:53:37 +0100
From: Daniel Wagner <[email protected]>
To: Jun Nie <[email protected]>
Cc: connman <[email protected]>
Subject: Re: Error "wifi: No carrier" only to connman
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8; format=flowed
> Both boards have QCA chip and share the same driver. Kernel version is
> 4.14.103.
So there is no surprise. They should behave the same.
> There is some NXP patches based on 4.14.103 commit. But I do not think this
> issue is due to kernel or driver issue because iwlist command works well when
> connmanctl has issue.
You can't compare iwlist with connmanctrl directly. iwlist works
directly on the Kernel APIs. You see what the kernel reports to
userland. ConnMan relies on wpa_supplicant to work correctly.
> I did not finish porting iwd to my yocto platform yet due to ell
> version issue.
I see you have Yocto fun as well :)
> But I just find that WiFi works OK on boot up if I
> specify a settings file instead of depends on connman to generate it.
> Do you have any idea?
If you start with an fresh installation, all technologies are disabled
by default (except ethernet).
> +[global]
> +OfflineMode=false
> +
> +[WiFi]
> +Enable=true
> +Tethering=false
> +
> +[Bluetooth]
> +Enable=true
> +Tethering=false
> +
> +[Wired]
> +Enable=true
> +Tethering=false
This enables all technologies, which is the same as calling 'connmanctl
enable wifi' after ConnMan has started.
------------------------------
Message: 3
Date: Mon, 11 Mar 2019 12:14:12 +0000
From: Henrik Persson <[email protected]>
To: Daniel Wagner <[email protected]>
Cc: "[email protected]" <[email protected]>
Subject: Re: Stale Wifi service and network not being destroyed?
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"
Hi Daniel,
On 2019-03-10 19:53, Daniel Wagner wrote:
>> network->{driver,device} being NULL explains why -EIO is returned. I'm
>> thinking
>> that should not happen. I also found another connman_network when digging
>> into what the supplicant interface was seeing, and that's not the same
>> network
>> that the service holds a reference to..
>
> network->driver is set to NULL in network_remove(). I don't thin
> network_probe() is involved in your scenario. That would indicate that
> wpa_s decided to remove the network.
Yeah, and then added again at some later point. But the service was
never updated. I'm trying to debug another strange behavior that I
haven't reported yet, where I get in a state when trying to connect to a
AP with a hidden SSID and I always get -EIO on that connection attempt,
unless I wait for a few (milli)seconds before calling Connect over DBus
after the Services changed dbus notification arrives. I think that it
might be a race between the service getting updated once, triggering my
connect()-attempt and then being updated again which is blocked in
update_from_network() since we're connecting. Adding a timer and just
waiting a bit makes everything work again, so.. I guess the same thing
might happen here.
It feels strange that a service with network->driver set to null is
still returned in the list, and obviously still has a refcount..
>> Any pointers, suggestions, comments, etc that could either tell me that
>> I'm doing something wrong interacting with connman, or where to look
>> further?
>
> I think trying to get hold on the logs would be a good starting point,
> so the connman log and the wpa_supplicant log. Furthermore, set the
> CONNMAN_SUPPLICANT_DEBUG environment variable. That should give you
> what ConnMan thinks wpa_supplicant is doing.
Sure. I'm enabling debug and will try to enable the supplicant debug as
well. Good tip.
> BTW, which version of wpa_s are you using?
# wpa_supplicant -v
wpa_supplicant v2.6
Which is the one in yocto which seems to be pretty much 2.6 with some
patches for the KRACK attack. I could try getting 2.7 in there..
>> I'm on connman 1.35 btw because of reasons, but I didn't find anything
>> in the connman history since that point that should have fixed this. But
>> I'm gladly proven wrong.
>
> I suggest to give the current HEAD a try, we never know :)
I've now moved up to 1.36 at least. Should I feel brave enough to push
HEAD to a few thousand of our customers? :)
--
Henrik Persson
Verisure Innovation AB
------------------------------
Message: 4
Date: Mon, 11 Mar 2019 16:37:27 +0000
From: Henrik Persson <[email protected]>
To: Daniel Wagner <[email protected]>
Cc: connman <[email protected]>, Olof Winge
<[email protected]>
Subject: Re: disconnect_code == 1 from wpa_s results in wrong state in
wifi tech
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"
Hi,
On 2019-03-10 19:39, Daniel Wagner wrote:
>> In wifi.c:interface_state() line 2546 or so it says that we assume
>> that reason 1 is because we are blocked. We also seem to assume that
>> this is thrown when we are connecting, so we call
>> connman_network_set_error(network,
>> CONNMAN_NETWORK_ERROR_BLOCKED). This trickles down into
>> service.c:service_indicate_state() line 5795 or so where
>> connman_agent_report_error() is called. In my case I do have an
>> agent registered, so that call will return -EINPROGRESS which will
>> make service_indicate_state() to return then and there, calling SOME
>> of the functions below on completion, but not
>> __connman_notifier_disconnect(), which would ultimately have
>> triggered the technology change to connected=false.
>
>
> Okay, so we leave service_indicate_state() to early and get the state
> machine into inconsistent state. I digged a bit through the history
> and I didn't find any good explanation why we return early.
>
> I suppose we should do something like (completly untested):
[...]
> connman_agent_report_error() will do a log entry if something goes
> wrong. So we don't have to log it here. So could silenty go ahead and
> update the state machine.
The patch applied, I'll test it and see if it improves things. That
disconnect reason doesn't happen very often though, so might take a
while.. It doesn't seem to break anything in the happy-flow-case so
that's a good start. :)
--
Henrik
------------------------------
Subject: Digest Footer
_______________________________________________
connman mailing list
[email protected]
https://lists.01.org/mailman/listinfo/connman
------------------------------
End of connman Digest, Vol 41, Issue 12
***************************************