29

Is it possible to get Network Manager working on Raspbian? It's easy to install with:

sudo apt-get install network-manager

but I couldn't get it to manage any of my connections. Unfortunately, it looks like only a old version of NM is available in the Debian repo.

2
  • If you want some graphical interface to manage network connections, try wicd-curses. blog.ubidots.com/setup-wifi-on-raspberry-pi-using-wicd provides a tutorial.
    – bigbang
    Commented May 21, 2015 at 7:21
  • Try to purge the packages openresolv and dhcpcd5. I did it and NM started working without issues.
    – rkachach
    Commented Oct 6, 2020 at 10:04

6 Answers 6

34

I have found how to get NetworkManager (and systemd-resolved) working on Raspbian 9 (Stretch). NetworkManager is very useful when you need to manage multiple VPN connections with split DNS, wifi networks and other advanced network settings directly from the Pixel Desktop.

Here is how to do it:

  1. Install the needed packages with the following command:

    sudo apt install network-manager network-manager-gnome openvpn \
    openvpn-systemd-resolved network-manager-openvpn \
    network-manager-openvpn-gnome
  2. Remove unneded packages:

    sudo apt purge openresolv dhcpcd5
  3. Replace /etc/resolv.conf with a symlink to /lib/systemd/resolv.conf:

    (do not execute this command on Raspbian 10, it will break your DNS)

    [only for Raspbian 9, not 10]
    sudo ln -sf /lib/systemd/resolv.conf /etc/resolv.conf
  4. Now go to the top of your screen and reconfigure the panel:

    1. Open "Panel Settings"
    2. In "Panel Applets" remove the "Wireless & Wired Network" item.
    3. The network manager applet should appear after a reboot.
10
  • 2
    Thank you! The purge step was vital. Without that, nmcli showed all my devices as "unavailable" and it couldn't control them.
    – Luke
    Commented Nov 5, 2017 at 6:31
  • 2
    You don't actually need openvpn.
    – Zimano
    Commented Jul 20, 2018 at 9:13
  • 2
    @luke The purge step isn't vital at all. NetworkManager just doesn't touch managed devices (like those configured in /etc/interfaces)
    – Zimano
    Commented Dec 18, 2018 at 14:56
  • 4
    This answer would be better without step 3. I've just tested it on a fresh Raspbian Buster install (September 2019 version) on a Raspberry Pi 4 Model B. Step 3 is redundant and breaks the DNS. Commented Dec 17, 2019 at 4:44
  • 1
    How do I reverse step 3? These steps broke my ethernet connection.
    – Steve W
    Commented Jan 29, 2020 at 18:19
14

This page ranks quite highly in search results for people looking for networking help on Raspberry Pi. Unfortunately, the steps detailed here are out-of-date as of Feb 2020.

At that point in time, to get Network Manager handling wifi on current Pi OS:

sudo apt update
sudo apt install network-manager network-manager-gnome

Check /etc/network/interfaces - it should be empty except for an include from /etc/network/interfaces.d. Now edit /etc/dhcpcd.conf and add:

denyinterfaces wlan0

edit /etc/NetworkManager/NetworkManager.conf:

[main]
plugins=ifupdown,keyfile
dhcp=internal

[ifupdown]
managed=true

Restart, and you should have Network Manager in your menu bar, handling the wifi interface.

I've a few more details of what I did to make this work in this gist, including an alternative approach using a configuration file in /boot.

Unfortunately, I can't confirm that any of this still works as I no longer have access to the corporate network which requires Network Manager. But comments on the gist suggest that it's worked for at least some others. Good luck!

6
  • 1
    I had been on your gist some few minutes ago. Now I find you here. Thanks for writing the gist and reporting on SE.
    – joaquin
    Commented Sep 24, 2020 at 18:57
  • Another approach that may be of interest is systemd-networkd; there's a comprehensive Q&A on how to set that up here for Raspberry Pi. It also works for those that run "headless" - or the "Lite" version of the distro.
    – Seamus
    Commented Oct 9, 2020 at 5:14
  • You are truly my lord and saviour =). Switching over to NetworkManager is probably the easiest way to get WiFi settings working in GUI, if using Gnome.
    – cyqsimon
    Commented Jun 24, 2021 at 15:58
  • This is the answer for Raspbian 10. Thanks! Commented Jun 28, 2021 at 21:25
  • And Raspbian 11
    – Dan
    Commented Apr 14, 2022 at 7:49
9

Try using wicd:

sudo apt-get install wicd

Wicd is a network manager application (wireless and wired), it a good alternative to Network Manager

5
  • 9
    It would be helpful to at least try to explain how wicd is going to help the OP. Feel free to edit your post accordingly.
    – Ghanima
    Commented Apr 20, 2015 at 17:18
  • 1
    raspberrypi.stackexchange.com/a/9750/894 WICD curses exaplined
    – Piotr Kula
    Commented Dec 17, 2015 at 13:08
  • 2
    This does not attempt to answer the question, the OP asked how to install NetworkManager (not "a network manager") on Raspbian. wicd presents an easy TUI for managing networking, but so does nmtui that comes with NetworkManager. I don't see how acknowledging that wicd can be used for managing networks relates to the question of how to install NetworkManager.
    – Zimano
    Commented Jul 20, 2018 at 12:00
  • 1
    WICD does not work properly on raspbian Stretch. It continually doesn't bring the WLAN back up after disconnection saying that you have to "manually do it" making it useless. Development seems to have been abandoned as there haven't been updates for years. Commented Jul 21, 2019 at 6:14
  • wicd is still a python2 programm - don't use it until there is a python3 port
    – schnedan
    Commented Oct 9, 2020 at 16:49
3

Chien's answer will create a non persistent change and dhcpcd will restart after after reboot. The clash will give the device two IPs per interface.

A persistent solution would be:

sudo apt install network-manager
# for gui systems "sudo apt install network-manager network-manager-gnome"
sudo systemctl stop dhcpcd.service 
sudo systemctl disable dhcpcd.service
sudo service network-manager restart
2

As of today (2023), Raspberry Pi OS (former Raspbian) comes with NetworkManager support, but it is disabled by default. To enable, run those commands:

sudo apt update
sudo apt install network-manager network-manager-gnome

# This command will enable NetworkManager, without needing to jump through GUI:
sudo raspi-config nonint do_netconf 2
sudo reboot

After reboot (for GUI), NetworkManager will be used.

And nmcli will work as expected, e.g. nmcli dev wifi will scan and list all visible WiFi APs.

1
  • Seems the service has been renamed to NetworkManager, for when it comes time to start/restart/stop it.
    – Brad
    Commented Feb 12 at 1:07
0

The following worked for me:

sudo apt install network-manager network-manager-gnome
sudo service dhcpcd stop 
sudo service network-manager restart

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.