A while back, I did an Arch install in Virtual Box. The install went pretty smooth and specifically, the wired network connection worked out of the box. Great, no having to screw around or waste a bunch of time, it just auto connects on boot up and did what it should. Quote from Arch Wiki: “A DHCP service is already enabled for all available devices“. Over time, I ended up installing a couple different DE’s / WM’s to check the current state of some alternatives to xfce. Down the road another month or so, I decided I should install network manager. I’ve installed it several times in Arch over the years without issue via referencing the Arch wiki.
This time the difference being systemd. Shouldn’t be a problem I thought. I was sure the wiki would be updated to reflect the changes brought about by the switch to systemd. Well, unfortunately, I found this to not be the case this time. I found myself trying to follow the wiki, but it seemed, the wiki was steering me in different directions, giving up just enough info in bits and pieces for me to realize I’d have to go off and search or study other subject. The Arch wiki on networkmanager turned out to be quite incomplete and not straight forward compared to other subjects I’ve used in the wiki.
I just wanted to install network manager. I didn’t want to combine it with educating myself on all the details and inner workings of systemd and systemctl, along with all the related commands, systemd terminology, how to set up or disable service files or whatever, etc, etc.
After struggling for an afternoon to get network manager and my network connection functional, I thought to myself, somethings missing in the wiki, but what? Although not entirely clear to me at the time, why, a last ditch effort to get NM working was to switch the default installed dhcp program to a different one from the regular repos. Viola! Although this got it working, I came to later learn that it was a workaround solution at best.
If the wiki had included the relevant missing material, something along these lines:
The Section Below Is Shown As An Example And Does Not Contain Proper Commands
1) use systemctl to show a list that may contain the names of services that will conflict and keep network manager from working. here is the command to show the list #systemctl aaa bbb ccc
2) this is a list of the above mentioned conflicting services: dddd, eeee, ffff, etc
3) when a conflicting service is found, here are example systemsctl commands to fix things: # systemctl 111 222 333 # systemctl 444 555 666
End Of Example Section
Something as clear as this was deemed wiki clutter by Arch. The user is evidentially expected to navigate to the systemd wiki section or man pages, then learn the proper systemctl commands to be implement in this use case. As for the list of conflicting services, again, one was expected to gather that important info from some other source!
I believe this is unacceptable! A good source of info such as a wiki for an OS needs to contain detailed, condensed, and complete information. I tried to bring this to the attention on the appropriate wiki section, but was shut down. This motivated me to, among other things, to put the appropriate info for my use case below. A more common situation would have found dhcpcd, which will also stop network manager from working.
I was told I should have remembered and was in fact expected to remember upon installing Arch, any network services enabled in systemd! I guess my memory isn’t as sharp as required as I had actually forgotten this insignificant detail from the months between the Arch install and the later installation of networkmanager, MY BAD!
To get network manager running on a systemd Arch xfce install
First, install the following packages:
$ sudo pacman -S networkmanager network-manager-applet xfce4-notifyd
Next, using systemctl, check for any other network related services running:
# systemctl --type=service
You must stop and disable any network services listed so as to not to conflict with networkmanager. For example, my system had “net-auto-wired.service” listed.
I issued the following commands to stop and disable it. You’ll need to modify these according to what you find on your system.
# systemctl disable net-auto-wired.service
# systemctl stop net-auto-wired.service
Now lets enable and start network manager:
# systemctl enable NetworkManager
# systemctl start NetworkManager
This info would be in the networkmanager section of the Arch wiki if allowed.