Replace Network Manager with ConnMan


How to install ConnMan


Switching from Network Manager to ConnMan:

This is a general guide to replacing Network Manager with ConnMan. This guide explains how to setup a WiFi connection with ConMan. ConnMan can of course also be used with a LAN connection, but is more widely used with WiFi.

Start the process by installing ConnMan alongside NetworkManager.

If you require Bluetooth and VPN functionality make sure you have bluez and openvpn installed as well.

Install connman:

sudo pacman -S connman

There are various GUI frontends for ConnMan. The one I recommend is cmst (see the ConnMan Archwiki link for other GUI alternatives).

Install cmst:

sudo pacman -S cmst

Enable/Start ConnMan and temporarily shutdown Network Manager with these commands:

sudo systemctl enable connman.service
sudo systemctl start connman.service
sudo systemctl stop NetworkManager
sudo systemctl daemon-reload
cmst &

Once you have started cmst you will need to change various cmst settings to enable your WiFi connection. CMST is very different than Network Manager, so it may take you a bit to figure out how to get your connection set up properly. The following recommendations are only my own personal cmst setting preferences. Your WiFi connection may require different settings to connect properly.

Ensure you have the cmst tray icon set to be "Shown" in your systray option settings.

Then, right click on the cmst system tray icon:

Select "Technologies", and then deselect "Wired" and ensure WiFi is selected on the menu.


Then, open the cmst control panel by left clicking on the cmst tray icon.

In the cmst Status tab:

Be sure your Wifi's "Power" button is in the On position.

Under your Wifi's "ID:Password" field you need to press the ID:Pass button and then enter your Wifi password.


In the cmst Wireless tab:

Click on your prefered connection's name from the list of those available.

Then click on the Connect button.


In the cmst Preferences tab, enable the following settings:

Use Start Options ---> Start Minimized

Retain state

Enable ToolTips (Interface)

Enable System Tray Popups

Notification Daemon

Retry Failed Connection

Enable Autostart


Hopefully you are now connected and you may now close the cmst configuration page.


Once you have connman and cmst installed and working properly you can disable Network Manager in a more permanent manner.

Mask (completely disable) Network Manager:

sudo systemctl mask NetworkManager.service

Mask (completely disable) Network Manager dispatcher:

sudo systemctl mask NetworkManager-dispatcher

If you have the NetworkManager-wait-online.service enabled, then mask it as well:

sudo systemctl mask NetworkManager-wait-online.service

Restart your computer after making changes to the services.


If you want to switch back to Network Manager again in the future the changes are easily reversible. Running any of the above commands you used again with "unmask" instead of "mask" will re-enable the NetworkManager services. Then simply disable or uninstall connman and cmst and your system should be returned to its original state.


For more in depth information on Connman refer to the Archwiki:

https://wiki.archlinux.org/index.php/ConnMan


12 Likes

Great tutorial. I'm going to try it today.

Sick of NMs silliness.

1 Like

add instructions to replace wpa_supplicant with iwd also

IWD works very well with ConnMan, but it also brings a lot of extra complications in the install procedure. It is best to uninstall wpa_suplicant with IWD (and then reversing the install process is not so minor). I just thought I would keep things simple for anyone wishing to test out Connman. They can always read the Archwiki procedure for installing IWD if they are so inclined. Perhaps I'll do additional instructions for that later on.

What are the benefits of using ConMan instead of the Networkmanager?
Before I try it I would like to know if it is worth the hassle.

1 Like

If you use wifi, a lot of people have issues with Network manager's frequent changes that often introduce bugs. The major complaint with some adapters is dropped connections. Some wifi adapters have much better connectivity with wicd or connman.

Unless you are experiencing issues then there's no pressing reason to switch. Yesterdays update introduced a NM bug for me that broke my wifi. I had to downgrade NM to restore connectivity. I don't like being in a partial update situation, so I figured I'd rather switch than fight.

1 Like

Apart from the problems you (and others) experienced is there also a different reason why you might switch? I mean something like:
more stable connection, maybe even a faster connection, etc.

Yes, for some people that experience regular dropped connections connman may completely eliminate the problem. Connman also starts in 2 seconds compared to an average of 10 for NM. For some people that is an advantage when mounting shares as the connection is up sooner.

I did not really mean to have the connection up and running faster, but a higher throughput (more Mb/s).

I don't get drop-outs normally. What I get is long waits for connection times when I turn the computer on and if I'm switching to my secondary wifi, it takes forever for it to show all the connections. Forever in this case is like 10 - 30 seconds.

This seems to be another excellent bit of work from you, for which you should be roundly congratulated. The following is not in any way intended to be criticism of your work, but a "fwiw".

There's no WiFi in my Tower, but there is of course in Lappy. Lappy has Manjaro KDE + Enlightenment. Lappy's KDE's NM simply never ever gives me any WiFi hassles [i've actually marvelled at it, coz in prior years other distros' NM WiFi were horrible (eg, Mint MATE)]. Otoh Lappy's E uses ConnMan iirc, & its WiFi reliability is, frankly, distinctly aggravating. To be fair though, it's been probably at least a year since i last used Lappy's E [i mean, Plasma is just so Great, *wink*], so maybe in the meantime its CM has become much better...?

1 Like

I wouldn't think faster speeds are likely, but You never really know till you try I guess. :man_shrugging:

use iwd then it connects faster than wpa_supplicant

wifi is managed
by iwd or wpa_supplicant
connman or network manager only act as intermediate

Check on which connman frontend your E install is using. Generally cmst is the most highly regarded, but it is a Qt app so perhaps a different frontend is used on that install. Maybe there are some performance differences there. Not sure because I have only used it in Qt based DE's. That being KDE and LXQt environments.

The change over to connman for Frank did not go well. :rofl:
I spent about an hour tinkering with it and I've come to the conclusion that it does not like my usb wifi.
So I switched back to NetworkMismanager.

However, it went perfectly on Craptop. The router it connects to is literally 10 feet away but through a concrete wall and it drops connection all the time with NetworkMismanager.
So I followed the tutorial and :boom:! No more dropped connections! :partying_face:

1 Like

Awesome, glad to hear someone found this useful. Good for you.

1 Like

Boy, that interface for cmst is very different. Takes a bit to get used too.

Yes it does, and it probably confuses the hell out of most used to Network Manager. That's kind of why I mentioned it might take some time to figure out how it worked.

Once you've used it for a bit it seems rather normal, but it is a bit of a shocker the first time you use it.

I don't see the section on uninstalling wpa_supplicant.
https://wiki.archlinux.org/index.php/Iwd

The recommendation comes from ConnMan page of Arch wiki:

https://wiki.archlinux.org/index.php/ConnMan#Using_iwd_instead_of_wpa_supplicant

I disabled and masked wpa_supplicant, which also works. :slight_smile:

2 Likes

Forum kindly sponsored by Bytemark