You are not logged in.

#1 2017-01-10 14:57:02

josephemorgan91
Member
Registered: 2017-01-08
Posts: 24

Strange behavior with connman and systemctl - No carrier error

Hey guys, I've been working on getting this sorted out for a few hours and I'm posting here as a last resort.

The weird behavior I'm getting can be reproduced by starting connman as

$ systemctl start connman

I get some text that says authentication is required, and a prompt for my root password. It says authenticating as root, and seems to load connman fine.
systemctl reports that connman.service is loaded and running correctly, however when I try to use

$ connmanctl scan wifi

I get an "Error: No Carrier"

This had me pulling my hair out for a while. I tried

$ rfkill list

Which returned that there were no hard blocks or soft blocks.

I finally found a forum post with a similar issue, the solution was to run systemctl start connman as sudo. I don't see why this would have different behavior, as running it with unelevated privileges asks for authentication anyway, but I'm the first to admit that I don't know everything and thought I'd give it a shot. I stopped the connman service and restarted it with sudo, but still had the no carrier error.

I noticed something that seemed very strange to me, though. The output of rfkill list now showed my wifi as soft locked. Running

$ rfkill unblock all

did the trick and after that, my wifi worked fine. However, connman still needs to be started with sudo to avoid the "No Carrier" error, and every time I start it with sudo it softblocks my wifi.

The issue I'm having now is that I've enabled connman with systemctl to start at boot, but it seems to be starting it in whatever way it starts when you don't start with sudo. systemctl shows it as loaded, active and running, but I get the no carrier error. I have to sudo reload the service and then run rfkill unblock all, which kind of destroys the purpose of having it load at boot in the first place imho.

Also, maybe irrelevant, but originally when I was trying to get connman to work at all, I read the output from rfkill and it showed some proprietary dell wifi module in addition to the regular wifi module (called phy0). A search on the name of the dell wifi module showed that it causes a lot of issues, and it's safest to just disable it, which I did following those instructions. It was only after doing this that I was able to get connman to work at all.

One mistake I may be making is that I can't be sure there isn't a conflicting network manager running that's interfering. I'm on a very fresh arch install with i3 and not much else. I disabled wpa_supplicant through systemctl, but I'm not sure if that was even necessary. Is wpa_supplicant a conflicting network manager? It didn't have an effect either way, and it looks like it's loading somehow regardless of

$ systemctl is-enable wpa_supplicant

showing that it's disabled. I'm guessing connman must be starting, but I don't know.

I've tried this over about a dozen full reboots to verify that it's consistent and isn't caused by something I'm doing beforehand during the same session.

tl;dr
1) connman gives "No Carrier" unless explicitly started with sudo
2) When explicitly started with sudo, connman soft blocks my wifi, requiring me to rfkill unblock all
3) Enabling connman to start on boot doesn't explicitly start it with sudo, which gives no carrier until I stop it and restart it with sudo.

I just want my wifi to work when I start my laptop, anyone have any ideas?

Last edited by josephemorgan91 (2017-01-11 11:55:15)

Offline

#2 2017-01-10 15:56:41

ajbibb
Member
Registered: 2012-02-12
Posts: 142

Re: Strange behavior with connman and systemctl - No carrier error

Try putting yourself in the "wheel" and "network" groups, then reboot.

To find out what services are running try:

systemctl list-units

It may also be helpful to post the output of that command here if my first suggestion does not work.

I'm not anywhere near my laptop at the moment, but I'm almost positive there is nothing you need to do with wpa-supplicant other than have it installed.  ConnMan will take over all other configuration, so no starting, stopping, enabling, disabling or configuring it is required outside of ConnMan.

Offline

#3 2017-01-10 16:47:10

josephemorgan91
Member
Registered: 2017-01-08
Posts: 24

Re: Strange behavior with connman and systemctl - No carrier error

Holy smokes, man, that totally did it. I'm blown away.

Care to explain what that did and why you thought of it? This should be in the documentation haha.


Thanks a ton

Last edited by josephemorgan91 (2017-01-10 16:58:12)

Offline

#4 2017-01-10 17:06:00

ajbibb
Member
Registered: 2012-02-12
Posts: 142

Re: Strange behavior with connman and systemctl - No carrier error

Edit your first post and prepend "[Solved]" to the title.

I found it by accident, it has been years and probably a remanant of having used Network Manager once upon a time.  Whenever I do a new install I always put myself into those two groups and don't think twice about it.  My guess is it is wheel, but if you use CMST to administer ConnMan you'll need to be in network for full functionality.

In the more recent versions of ConnMan the developers have made a definite effort to limit what ConnMan can do and where it can go without proper permissions.  If you start putting VPN configurations in your home directory (as I did) make sure the ENTIRE path is world readable.   Otherwise no joy. 

I'll look at adding something in the Wiki tonight, unless you beat me to it.

Offline

#5 2017-01-11 12:03:18

josephemorgan91
Member
Registered: 2017-01-08
Posts: 24

Re: Strange behavior with connman and systemctl - No carrier error

ajbibb wrote:

Edit your first post and prepend "[Solved]" to the title.

I was embarrassed that I asked this when it's clearly in the "Read before posting" sticky, so I removed the question from my post, but I still appreciate the reply.

Okay, so I had this marked at solved but I'm reverting it because it's still acting a little strange. Would it be wrong to mark it as [mostly solved]?

Today, after booting up my laptop, I did a quick ping of google.com to make sure everything was still peachy. Got the no carrier error again, but as I expected, it was just because somehow my wifi module had be soft blocked again. It seems like somehow, connman is doing this whenever it's started correctly. I'll probably just add rfkill unblock all to my /etc/profile.d/ and forget about the issue, but I'm a little curious if anyone has any input on why that would be happening and if there's a cleaner way to fix it.

Also, thanks for the wiki edit. I'm not confident enough with my terminology or phrasing to do it justice, I'm glad someone with more experience is taking care of it though smile

Edit: Maybe related?

I noticed that

ip link

had previously reported that why wifi connection was called wlan0, but after this reboot it's showing wlp2s0. I remember that a couple days ago, it showed wlp2s0 as well. Seems to be switching back and forth, which is causing some minor problems with a script or two. I'm looking into a solution and it's not really a priority, but I thought that maybe the two issues were connected?

Last edited by josephemorgan91 (2017-01-11 12:07:31)

Offline

Board footer

Powered by FluxBB